PHP-разработчики, перешедшие на Python, лучше ли опыт? [закрыто]

18

Я планирую перейти на Python, и у меня есть еще несколько вопросов вместе с заголовком:

  1. У вас было больше удовольствия от python?
  2. Вы так же продуктивны, как при использовании PHP?
  3. что заставило вас перейти на python?
  4. Вы бы снова сделали проект на PHP? Если да, то почему?

Ваши ответы действительно будут полезны для нас, PHP-разработчики, желающие чего-то большего, я думаю:)

Спасибо заранее!

    
задан user295284 23.07.2010 в 16:59
источник
  • должен быть wiki сообщества –  SilentGhost 23.07.2010 в 16:48

8 ответов

17

Я был PHP-разработчиком около 5 лет, прежде чем переключиться на Python почти год назад. Опыт был в основном положительным; Я отвечу на ваши вопросы, но также перечислил несколько ошибок, с которыми я столкнулся.

  1. Определенно. Я постоянно нахожу удивительно мощные функции / выражения в Python, которые делают многое в небольшом количестве кода (но все же более читабельны, чем Perl).
  2. Намного продуктивнее. Это может быть только мой стиль, но инструменты функционального программирования Python, выражения генератора, понимание списков и т. Д. Позволяют мне правильно выполнять задачи с меньшим количеством кода и меньше времени, чем PHP.
  3. У меня был проект аналитики, которому нужен мощный пакет статистики, поэтому я пошел с Python + numpy. Затем я нашел Turbogears и полюбил синтаксис. В конце концов я обнаружил сопрограммы и совместную многозадачность, и их не вернется. Я использую бутылку , gevent и < href="http://gunicorn.org/"> gunicorn , чтобы вывернуть быстрые, быстрые, масштабируемые веб-приложения в рекордные сроки.
  4. Не, если бы я мог помочь. На данный момент синтаксис PHP - это многословный синтаксис «все - это длиннозначный вызов функции». Мне также сложно оптимизировать (каждая загрузка страницы переинтерпретирует исходный код в конфигурации по умолчанию).

Вот несколько из них, которые нужно знать:

  1. Для дешевых сайтов с низким трафиком гораздо сложнее найти веб-хост с хорошей средой python.
  2. Apache не является типичной настройкой для Python в моем опыте. Пакеты Python обычно представляют собой демоны, которые подвергаются публике с помощью обратного прокси-сервера в передней части ( nginx очень распространен ). Ряд корпоративных окружений перестают появляться в новых технологиях, таких как nginx. Это также требует некоторой корректировки, чтобы думать о ваших веб-папках как демонах, и сначала может потребоваться некоторое время, чтобы ваш демонанизм был правильным и последовательным.
  3. Если вы используете mysql, у вас будет некоторое переключение боли на некоторое время. Там просто нет библиотеки mysql Python, которая очень совместима с запросами mysql в стиле PHP. Например, большинство из них не используют простые «?» синтаксис для параметризованных запросов, поэтому вы не можете просто вставлять свои запросы (вы должны использовать printf-style «% s» и т. д.). Кроме того, только тот факт, что вам действительно нужно выбрать и установить библиотеку mysql, является дополнительным шагом над PHP. Это больше не беспокоит меня, так как я больше не использую mysql.

Это широкая тема с гораздо большим количеством слов, но я надеюсь, что это было полезно.

    
ответ дан sunetos 23.07.2010 в 17:05
источник
  • Как минимум в сообществе Django, Apache и mod_wsgi, возможно, являются выбором для развертывания. Если используемая вами среда совместима с WSGI, я бы порекомендовал ее попробовать, вместо того чтобы возиться с управлением демонами. –  thraxil 23.07.2010 в 19:25
  • В любом случае лучше использовать библиотеку ORM на Python, за исключением критически важных частей. –  Imran 23.07.2010 в 19:55
  • @Imran, это хороший момент. Я подумал о том, чтобы пойти на осложнения, с которыми я столкнулся с SQLAlchemy, но мой пост был уже давно. –  sunetos 23.07.2010 в 22:09
  • Что касается mysql ... Я ноб на python, но первое, что я пробовал, - заставить mysql работать, и это было довольно просто. def query (sql): import datetime import MySQLdb as mdb import sys con = mdb.connect ('localhost', 'user', 'pass', 'mydb'); с con: cur = con.cursor () cur.execute ("SELECT * FROM app") rows = cur.fetchall () для строки в строках: print row con.close () –  Dss 30.12.2014 в 16:28
4

Я постараюсь как можно лучше ответить на ваши вопросы:

  1. У вас было больше удовольствия от python?

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

Мне также нравятся все трюки python, чтобы сделать некоторые очень элегантные вещи в одной строке кода, такие как списки и библиотека itertools.

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

Я также нахожу unicode гораздо менее неприятным с python, особенно с python 3k.

  1. Вы так же продуктивны, как при использовании PHP?

Для простых веб-сайтов python может быть менее забавным для настройки и использования. Одна приятная особенность PHP, которую я пропустил с помощью python, - это смешивание PHP и HTML в одном файле. В Python есть много хороших языков шаблонов, которые делают это также легким, но они должны быть установлены.

  1. что заставило вас перейти на python?

Я разочаровался в множестве маленьких нюансов PHP, таких как странное целочисленное и строковое преобразование и так далее. Я также начал чувствовать, что PHP очень сильно раздувается множеством методов с непоследовательными схемами именования. Я часто обращался к документации PHP, несмотря на то, что большая часть библиотеки php была запомнена.

  1. Вы бы снова сделали проект на PHP? Если да, то почему?

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

    
ответ дан GWW 23.07.2010 в 17:55
источник
3

Я запускаю саморазвитый частный социальный сайт для более 100 пользователей. Python был абсолютно фантастичен для создания и управления этим.

  
  1. У вас было больше удовольствия от python?
  2.   

Наиболее определенно.

  
  1. Вы так же продуктивны, как при использовании PHP?
  2.   

В основном да. Стиль кодирования Python, по крайней мере для меня, намного быстрее и проще. Но python иногда не хватает встроенных библиотек и документации по PHP. (Но PHP в этом вопросе не имеет себе равных). Также требуется немного больше, чтобы работать под apache.

  
  1. что заставило вас перейти на python?
  2.   

Легче управлять кодом и более быстрой разработкой (хорошая поддержка IDE там, я использую WingIDE для python), а также улучшать свои навыки python, когда я переключаюсь на проекты, не основанные на веб-интерфейсах.

  
  1. Вы бы снова сделали проект на PHP? Если да, то почему?
  2.   

Возможно, если бы я работал над крупным профессиональным проектом. PHP настолько вездесущ в Интернете. У компании гораздо легче найти заменяющего PHP-программиста.

    
ответ дан Zarneth 24.07.2010 в 05:01
источник
3

Ну, я начал с PHP и недавно перешел на Python. Я бы не сказал, что я «переехал в», но я использую оба (еще PHP больше, но справедливый бит Python).

Я бы не сказал, что у меня больше «весело» с Python. Есть много действительно классных и легких вещей, которые я действительно хотел бы получить на PHP. Поэтому, я думаю, это можно считать «забавным». Но мне все еще нравится PHP, поэтому ...

Я более продуктивен с PHP. Я знаю PHP внутри и снаружи. Я знаю большинство маленьких нюансов, связанных с написанием эффективного PHP-кода. Я не знаю Python, что хорошо (я, возможно, написал 5k строк Python) ... Я знаю достаточно, чтобы делать то, что мне нужно, но не так глубоко, как PHP.

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

Я все еще делаю проекты PHP. Это мой лучший язык. И IMHO это лучше, чем Python в некоторых веб-задачах (например, сайты с высоким трафиком). PHP имеет встроенный многопоточный прослушиватель FastCGI. Python вам нужно найти один (есть куча там). Но в моих тестах Python никогда не мог приблизиться так же быстро, как PHP с FastCGI (лучший результат Py был на 25% медленнее, чем PHP. Самое худшее - несколько раз в разное время, в зависимости от библиотеки FCGI). Но это основано на моем опыте (что, по общему признанию, мало). Я знаю PHP, поэтому я чувствую себя более комфортно, делая большой сайт, чем я бы PY ...

    
ответ дан ircmaxell 23.07.2010 в 16:54
источник
  • Почему вы не используете mod_wsgi? –  S.Lott 23.07.2010 в 16:55
  • Довольно просто, я не использую Apache. Я использую либо Lighttpd, либо Nginx с настройкой FastCGI с балансировкой нагрузки (там, где есть несколько серверов приложений FastCGI. И я думаю, что это победит цель прокси-сервера от внешнего интерфейса до Apache на бэкэнде, чтобы обойти раздувание Apache и отсутствие приличного Диспетчер FCGI в PY (не то, чтобы я мог написать что-нибудь лучше) ... –  ircmaxell 23.07.2010 в 16:59
2

В прошлом году я переключил работу, чтобы уйти от PHP и работать на Python. Я очень доволен решением, которое я принял:)

Чтобы ответить на отдельные вопросы:

  
  1. У вас было больше удовольствия от python?
  2.   

Да!

  
  1. Вы так же продуктивны, как при использовании PHP?
  2.   

Более продуктивным я бы сказал. Но общий расширенный опыт программирования также имел что-то с этим.

  
  1. что заставило вас перейти на python?
  2.   

Ожидается, что вы не будете использовать все профессии, не связанные с PHP. (Photoshop / Веб-дизайн / Flash требуется для многих заданий PHP, а я ненавижу Flash). И мне очень понравился Python / Django.

4. Would you do a project again in PHP? If so, why?

Если это небольшой материал, который лучше сделать без каких-либо фреймворков, тогда да.

    
ответ дан Imran 23.07.2010 в 19:50
источник
1
  1. да
  2. да
  3. любопытство, поиск лучших языков и т. д. (на самом деле, я узнал их несколько параллельно много лет назад).
  4. да, если проект требует явно

Отказ от ответственности: я никогда не перешел из php.

    
ответ дан miku 23.07.2010 в 17:59
источник
1

Я никогда не работал с PHP (ничего серьезного) и не пришел из мира .NET. Проект, который я сейчас выполняю, требует много работы на Python, и я должен сказать, что мне это нравится. Очень легкий и «классный» язык, т.е. FUN!

.NET всегда будет моей женой, но Python - моя любовница;)

    
ответ дан Andre 23.07.2010 в 17:10
источник
  • моя жена твоя любовница ?? - извините, плохая шутка .. –  miku 23.07.2010 в 17:24
  • Sh # t бывает ... soz, ужасная шутка;) –  Andre 23.07.2010 в 17:47
1
  
  1. У вас было больше удовольствия от python?
  2.   

Да. Лот больше.

  
  1. Вы так же продуктивны, как при использовании PHP?
  2.   

Нет. Я думаю больше.

  
  1. что заставило вас перейти на python?
  2.   

Джанго.

  
  1. Вы бы снова сделали проект на PHP? Если да, то почему?
  2.   

Только если требуется .

    
ответ дан n00b 24.07.2010 в 14:19
источник