Отвечая на этот вопрос , я уверен, что многие люди возражают, что PHP не лучший выбор для программирования на рабочем столе, и вместо этого рекомендовал бы что-то вроде Ruby или Python. Я подумал, что было бы интересно поговорить о том, почему.
Помимо аргументов о том, является ли PHP хорошим языком в целом, каковы ваши критерии хорошего языка программирования на рабочем столе (в отличие от веб-разработки)?
Вы говорите: «Помимо аргументов о том, является ли PHP хорошим языком в целом», – но я думаю, что это суть проблемы. PHP стал популярным как язык веб-разработки, поскольку он хорошо интегрируется с существующим стеком веб-инструментов (встроенный HTML, хорошая интеграция с Apache, встроенная поддержка MySQL и т. Д.) – не потому, что это хорошо продуманный язык, который легко работать (Кстати, это не так).
Если вы заберете Интернет и используете PHP для разработки настольных компьютеров, что у вас осталось? Слабо типизированный, неповторимый язык без поддержки пользовательских интерфейсов рабочего стола и ужасающий беспорядок стандартной библиотеки. Люди не используют PHP таким образом, потому что это просто не имеет смысла .
PHP разработан специально для создания веб-приложений. Хотя технически возможно создавать настольные приложения, используя это, вы действительно отшлифовываете углы, чтобы соответствовать квадратной привязке в круглом отверстии.
Существует так много языков программирования, предназначенных для настольных компьютеров в качестве цели, но просто не имеет смысла пытаться превращать PHP в мир, для которого это не предназначено.
Для перспективы: PHP – это моя работа
PHP для настольных приложений:
Простота распространения с настольного приложения с производительностью веб-приложения.
Это звучит как банальный ответ, но я думаю, что большинство людей не используют PHP в качестве языка программирования на рабочем столе, потому что люди не используют PHP в качестве языка программирования на рабочем столе.
Смысл в том, что вокруг графических пользовательских приложений с использованием PHP нет очень сильного сообщества, это повлияет на инструменты, которые у разработчика будут доступны, ресурсы, на которые он может пойти на помощь, а также на компанию или коммерческую работу, дополнительных программистов, которые будут имеют навыки, необходимые для работы с очень нишевым набором инструментов.
Выполняет ли $language_under_consideration
работу, которую я хочу, легче, чем $other_language
?
Например, я нашел php-интерфейсы для mysql отличным для быстрой работы БД. Я бы не хотел писать php для GUI-приложения на Windows, хотя ….
Поскольку он полностью ориентирован на веб-программирование, и хотя он может иметь необходимые инструменты для программирования на рабочем столе, существуют другие языки, которые намного более эффективны и эффективны для работы.
Лично мне не нравятся многие языковые принципы, поэтому я использую их только тогда, когда мне это нужно.
Он установлен по умолчанию на целевой платформе? Потому что, если это не так, тогда есть больше трений с усыновлением.
Я удивлен, что никто этого не сказал. Как веб-разработчик, я использую только PHP, потому что это то, что обычно запрашивают клиенты. Они хотят развернуть на любом хостинге, который они могут найти, и все веб-хостинга используют один общий знаменатель: PHP. Кроме того, мы делаем много кода стиля миссии спасения, где мы должны исправить сайты, уже написанные на PHP. Как честный разработчик не может рекомендовать PHP как платформу с чистой совестью для серьезного веб-разработки. Я бы никогда не выбрал PHP для любого проекта, веб-сайта или рабочего стола. Python отлично подходит для настольных приложений. Это более динамично, чем PHP, более рационально и более продуктивно.
Однако .. Что касается маленьких или средних настольных скриптов или движков, без GUI (то есть сценариев автоматизации и т. Д.), То PHP на самом деле очень силен .
Основная причина использования PHP для настольных сценариев: обучение ИТ-отдела скрипту – половина битвы. Если вы не являетесь также отделом ИТ (надеюсь, вы этого не сделаете), вам будет сложно запустить этот скрипт на любом компьютере под управлением Windows и Linux, если вы используете обычные настольные языки, такие как .NET. Библиотеки и зависимости, необходимые для других языков, делают их проблематичными для использования на большом наборе компьютеров с различными операционными системами.
Это основная практическая причина. Вот еще / детали:
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);
и найти неинициализированные переменные. Python также свободно набирается, и многие используют это (Dropbox был сделан на Python), поэтому я не вижу здесь аргумента. Это скорее несогласованность языка PHP. Помимо аргументов о том, является ли PHP хорошим языком в целом, каковы ваши критерии хорошего языка программирования на рабочем столе (в отличие от веб-разработки)? Спойлер: используйте .NET / Mono (mono – кросс-платформенная версия языка .NET) и код в среде MonoDevelop IDE, чтобы ваше приложение оставалось кросс-платформенным с 1-го дня. Для Mac часто вам нужно настроить настройки, так как это немного отличается, но вы можете работать с .NET, используя Xamarin Mac (который основан на Mono, но позволяет компонентам интерфейса MacOS): http://xamarin.com/mac
Если Mono / C # недостаточно худ из-за накладных расходов, загляните в Python с PySide. Если Python слишком медленный (хотя многие популярные приложения, такие как Dropbox, используют его), используйте C ++ и QT framework (используется Skype и многие другие). Я помню, что Delphi может быть еще одним хорошим вариантом, если он еще существует.
Что нужно помнить:
Я сделал полные приложения на всех этих языках, как для внутреннего использования, так и для массового распространения, и это мои 2центы.
Производительность – это мои критерии для настольного программного обеспечения. Но я считаю, что программное обеспечение для настольных компьютеров умрет когда-нибудь 🙂
Я большой сторонник использования PHP для быстрой разработки веб-приложений. Это легко узнать, есть огромное сообщество других пользователей, которые уже решили большинство проблем.
Однако в дополнение к тому, что упомянули другие пользователи, вы также можете рассмотреть огромное количество уязвимостей, которые у PHP уже есть ( http://www.securityfocus.com/vulnerabilities ).
Если бы некоторые из этих вещей были адресованы и, возможно, упакованы в нечто похожее на то, что мы видим в Adobe AIR, может быть хорошей основой для производства настольных приложений.
PHP – это новый perl, если вы собираетесь использовать его в качестве языка программирования вне веб-среды. Если я собираюсь писать приложения, я хочу, чтобы в нем работали достойные окружения. Без сторонних приложений отладка программ php может быть болью.
Я не вижу никакой разницы в использовании PHP для веб-приложений или настольных приложений, а просто в разных библиотеках. Qt и GTK + являются доступными для PHP, и если кто-то нашел время, чтобы написать такие привязки, это означает больше, чем кто-то использует его для рабочего стола.
На мой взгляд, успех PHP в Интернете объясняется тем, что нет действительной альтернативы: другими словами, PHP хуже. В настольном мире это не так повезло, и он должен конкурировать с более сильными соперниками … Я лично выберу тонны других языков перед PHP.