С точки зрения программиста, какой проект я должен выбрать Python вместо PHP для того, где оба могли бы сделать работу? - PullRequest
3 голосов
/ 03 декабря 2009

Я никогда раньше не использовал Python. Я использую php около 5 лет. Я планирую изучать Python, но пока не знаю зачем. Если я смогу подумать о проекте, который лучше сделать на python, я воспользуюсь им, чтобы изучить его.

Редактировать: просто чтобы добавить это как важное примечание, я имею в виду строго Linux, а не мультиплатформенность. Редактировать 2: Я надеюсь на объективные ответы, такие как конкретный проект, а не общее поле проектов и т. Д.

Ответы [ 8 ]

16 голосов
/ 03 декабря 2009

Python лучше подходит практически для всего, что не входит в специальную область PHP, которая занимается созданием веб-сайтов.

Если вам нужен список программных проектов, над которыми вы могли бы работать, посмотрите эту ветку: https://stackoverflow.com/questions/1022738/i-need-a-good-programming-project

5 голосов
/ 04 декабря 2009

PHP для сайтов. Python для всего остального, такого как инструменты командной строки, долгосрочные сценарии, демоны и так далее. Если вы пишете PHP-скрипт и вам нужны функции в расширении posix, совместно используемой памяти или других низкоуровневых вещах, то это, как правило, признак того, что Python лучше подходит. Это не значит, что PHP не может этого сделать, но Python делает это лучше и менее глючит.

Особенно, когда вы решаетесь использовать фоновые демоны для своего сайта, вам стоит взглянуть на Python. PHP имеет некоторые проблемы со сборкой мусора в длительных процессах, таких как демоны. Кроме того, некоторые функции намного проще и понятнее в Python (например, перенаправление STDIN, STDOUT и STDERR. PHP пропускает posix_dup2 ()). Также в Python есть темы: -)

Единственный раз, когда я теперь использую фоновые демоны PHP для своих сайтов, - это когда они могут повторно использовать значительные объемы кода (например, в средах MVC, таких как CakePHP).

Еще одним преимуществом Python является то, что для него существует множество библиотек, поскольку довольно легко создать оболочку Python для библиотеки C. Итак, в Python есть библиотеки, которых нет в PHP (OpenGL, multimedia, и так далее). Так что если вы в этих областях, Python становится очевидным выбором.

4 голосов
/ 04 декабря 2009

Я собираюсь ответить, основываясь исключительно на простоте программирования и поощрении передовых методов проектирования.

Я научился программировать на Perl и много лет писал веб-приложения с использованием CGI, что никогда не было приятным в первую очередь. Я всегда находил, что Perl был утомительным, чтобы получить право, и слишком легко ошибиться.

Когда я начал более серьезно разрабатывать веб-приложения, я обнаружил PHP. Переход с Perl на PHP был естественным прогрессом, потому что они используют одни и те же методологии и синтаксис. Мне понравилось, что PHP был настолько сильно установлен и широко использовался, и его было гораздо проще писать, чем на Perl. За исключением того, что, как и Perl, PHP слишком легко делает неправильные вещи и открывает новую эру плохо написанных и небезопасных веб-приложений.

Теперь ... Четыре года назад я обнаружил Джанго , который в то время находился в зачаточном состоянии, и это изменило мою жизнь. Я использовал это в качестве мотивации для изучения Python и не оглядывался назад ни разу. Я сейчас использую Python для всего:

  • Системное программирование (сервер конфигурации, мониторинг, оповещение)
  • Сетевое программирование (маршрутизатор / коммутатор автоматизация конфигурации, аудит, проверка синтаксиса)
  • Веб-приложения (не требуют пояснений)

Простота использования Python, элегантный синтаксис и тот факт, что он поощряет лучшие практики по умолчанию, - вот что меня возбудило и заинтересовало. Дайте Python шанс, вы не пожалеете об этом!

3 голосов
/ 03 декабря 2009

Проект, который вы хотите поддерживать в течение любого периода времени.

Мне пришлось поддерживать код PHP, и есть кое-что в том факте, что вы можете смешивать HTML и код, что превращает PHP-материал в кошмар.

Python имеет гораздо более высокий уровень абстракции и значительно облегчает написание более поддерживаемого кода и, что более важно, для обслуживания - читайте.

Все ИМХО конечно, поскольку это довольно субъективный вопрос.

2 голосов
/ 04 декабря 2009

Я использую php только по следующим причинам:

  1. Программное обеспечение, которое я использую для решения моих проблем, написано на нем (например, Wordpress . Не пытайтесь программировать все, иногда у вас много хороших вещей в php);
  2. Мне нужно / я хочу работать на множестве разных конфигураций серверов (многие люди используют общий хостинг, и не могут установить / не поддерживают Python, но php по умолчанию используется в любой веб-хостинговой компании) ;

Когда я могу выбрать (у меня есть контроль над серверной средой, и я не против фактора 2), я выбираю Python. То, что вы можете написать хороший код на php, не означает, что вы должны . Я скучаю по надежному языку, с хорошей обработкой исключений и множеством других преимуществ. Язык чистый, и вы даже можете бесплатно использовать Google App Engine , если хотите изучать Python.

Вы можете написать практически все, что пишете на Python, с помощью PHP. Но мне не нравится PHP, потому что вы часто используете функцию, и вы знаете, что вам нужно сконфигурировать свой php.ini или использовать непонятную функцию только после того, как у вас много головной боли с этой функцией.

ИМХО, по крайней мере, по моему опыту, PHP - это то, что вы привыкаете . А Python - это то, в что вы просто влюбляетесь: потому что это просто работает.

Я знаю, что эти последние параграфы могут быть личным мнением, но первые два фактора - нет. Просто выберите язык, который, по вашему мнению, стоит в этом случае.

1 голос
/ 04 декабря 2009

Если вы занимаетесь многопоточностью, выберите Python вместо PHP.

1 голос
/ 04 декабря 2009

В прошлом году с моей компанией был заключен контракт на создание веб-приложения, и клиент указал, что это должно быть сделано во Flex. Теперь это приложение должно быть веб-приложением, но у нас была уникальная возможность попробовать что-то новое.

Мы абсолютно не знали, что мы делали в то время, но это был большой опыт обучения. Я бы посоветовал попробовать что-то новое, когда у вас есть шанс, ошибиться и продолжить учиться.

Может быть сложнее, если вы хотите изучать Python случайно ... Попробуйте заставить кого-то заплатить вам за его использование.

1 голос
/ 03 декабря 2009

Все, что требует фоновой обработки, или любой значительный объем кода, который не просто показывает пользователю страницу. Python действительно хорош как язык сценариев, и написание сценария командной строки Python является обычным явлением; Написание PHP-скрипта для работы с командной строкой встречается редко.

...