23 апреля 2012 в 11:33

Нелегкий выбор Python или PHP. А может и то и другое? из песочницы

Несмотря на название, в данной статье не будет «холиварных» высказываний, обзоров достоинств или недостатков языков. По большей части данная статья носит философский, исключительно субъективный характер с небольшой примесью личного опыта.

Выбор на самом деле действительно нелегкий. Изначально все проекты мы разрабатывали на PHP. Но со временем накапливалось недовольство данным языком. По большому счету не устраивала скорость разработки и комфортность работы с ним. Даже элементарно на уровне синтаксиса языка, приходится набирать много лишнего. Эти $ перед переменными, -> для доступа к методу или члену класса, и множество мелочей, которые раздражали, а иногда и бесили.

Формально, даже трудно передать, чем данный язык не устраивал. На любое утверждение или пример, найдется более грамотный специалист и поклонник PHP, который возразит: что надо делать не так, а вот так и все нормально будет, или вообще что это не проблема, а наоборот достоинство. Просто скажу так — этот язык перестал нравиться исключительно подсознательно, вот неприятно на нем писать и все. Не приносит работа удовлетворение.

Но удовлетворение удовлетворением, а старые проекты поддерживать и развивать придется на PHP, так как на переписывание тысяч строк кода, решиться не каждый. Да и смысла особого нет (если конечно не обнаруживаются какие-то критические конструктивные проблемы, которые упираются в недостатки языка). И язык не настолько уж и плох, а может даже в чем то и хорош, чтобы взяться за переписывание проектов на PHP.

Но новые проекты решили делать на Python, используя фреймворк Django. Чтобы прийти к такому выводу пришлось перелопатить довольно много форумов и блогов. Информации на самом деле мало, как и нормальных адекватных постов людей которые хорошо разбираются в обоих языках. В основном каждый хвалит свое болото или философски замечает «Что выбор зависит от задач проекта». Хотя большинство задач для веб проекта можно решить на обоих языках.

В процессе изучения вопроса «кто же на свете всех милее…», часто возникали мысли, а стоит ли вообще переходить куда-либо, такие ли уж большие преимущества у других языков, и стоят ли они трудозатрат на обучение, поиска новых специалистов и прочее. Идеальных языков нет и быть не может, поэтому, скорее всего у нового языка и соответственно новых фреймворков будут свои «подводные камни». Поэтому в конце пришли к совершенно обычному выводу, который и давали в форумах, наиболее умудренные опытом люди: пока сами не попробуем ответа на эти вопросы не получим.

Решили попробовать написать проект на питоне и использовать фреймворк Django. Причину выбрали довольно банальную — Яндекс хвалит питон. Так же нашли пару статей про использование Django в Яндексе. Отзывы больше положительные, чем отрицательные, и за несколько лет использования, разочарования в данном языке или фреймворке у них не последовало (по крайней мере, таких статей мы не нашли).

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

Проект только в начале пути, поэтому все подводные камни, наверное, впереди, по крайней мере, одна цель была достигнута. Работа снова стала приносить удовлетворение.

Но от PHP совсем мы отказываться не собираемся. Есть у него и своя очень приличная ниша в мелких, и может быть, средних проектах. Но Крупные мы планируем разрабатывать только на Python. По крайней мере, в ближайшем будущем.
–29
20079
21
kozlovsv 0,0

Комментарии (95)

+1
romy4 #
Решили попробовать написать проект на питоне… Причину выбрали довольно банальную — Яндекс хвалит питон. Так же нашли пару статей про использование Django в Яндексе. Отзывы больше положительные


Как-то не объективно совсем.

Было бы очень интересно услышать сравнение питоновского Django с какими-нибудь развитыми фреймфорками php.
0
jcrow #
Так не о фреймворке-то речь. Джанго не панацея и реализация проекта на этом фреймоврке тоже потребует значительных усилий, но в процессе работы не накапливается ненависть. Это не объективное, но важное отличие.
+2
romy4 #
Ненависть тоже бывает по разному поводу: синтаксис, библиотеки, поведение и т.д.
0
fenrirgray #
Я пришел к такому же выводу как автор топика после одного мелкого синтаксического недоразумения:
mysql_query(query, resource)
и
sqlite_query (resource, query)
sqlite_query (query, resource)

И когда вы переводите проект с sqlite на mysql, а там используются ДВА РАЗНЫХ ТИПА записи одного и того же, причем в основном первый, который не такой, как mysql, это просто бесит.

И да, это просто стало последней каплей среди всего того синтаксического бреда, что присутствует в пхп.
0
romy4 #
Есть такое дело.

Но в пхп есть одна интересная фишка. Все эти функции можно привести к одному виду, в принципе. Так как внутри они все регистрируются в специальных структурах, то параметры функций можно переставлять по своему усмотрению. Кто бы только написал такое расширение? :)
0
VolCh #
Я писал для себя обёртки для них прямо на пхп, который инклудил в каждый проект.
0
fenrirgray #
Ну по сути обертки я и использую, в частности doctrine, хотя можно было бы обойтись и просто PDO. То, что мне приходится работать с проектами в которых используются… мм… странные решения — это отдельная тема)
Понятное дело, что для пхп написано уже уйма всего, которое пытается устранить эти врожденные недостатки, но это костыли…

К тому же это только один пример из множества… А наличие ~10+ функций для сортировки? Да и практически для любого действия такое. И еще уйма, уйма мелких, но раздражающих «особенностей».
0
kozlovsv #
Согласен. Можно использовать обертки и костыли, и для старого проекта на PHP, где уже написано куча кода, конечно это выход из ситуации. Поэтому я тут и настаиваю, что скорее выбор чисто субъективен, и нет четких 100% критериев, по которым можно с уверенностью сказать да точно стоит переходить на Python, Rails и прочее. Нет таких критериев. Просто накипело. Кстати не факт что и в Pyhton нет таки «бесящих» мелочей. Кстати вот она уже наклевывается — это необходимость перезапускать дев сервер каждый раз, чтобы изменения, сделанные в коде вступили в силу.
+1
VolCh #
Точно не помню, но как-то это обходится. То ли не для любого изменения кода надо перезапускать, то ли есть тулза, чтобы не перезапускать. Надеюсь под дев-сервером вы имеете в виду встроенный сервер, а не полную имитацию продакшена?
0
kozlovsv #
Да, я имел ввиду встроенный сервер. Я заметил что, если править шаблоны то вроде сразу изменения отображаются, если править код отображений и моделей, то надо перезапускать. Еще непонятно зачем в Django отошли от общепринятой нотации MVC, Модель у них так и есть модель, контроллер почему то отображение (view), а view — у них называется шаблон. Немного путаница возникает.
0
VolCh #
Именно это и имел в виду. Где-то в доках есть точное описание, что ловится автоматом, а для чего нужен перезапуск.

Там есть идеологические тонкости. Тоже тема для большого холивара :)
0
mjr27 #
Тут-то как раз тонкостей мало.
Шаблоны перечитываются каждый раз (даже на продакшне, если не включить в настройках их кеширование).
Код — на дев-сервере перечитывается каждый раз (исключая внешние библиотеки). Бесящая мелочь — при ошибке в модели dev-сервер может упасть.
На продакшне код перечитывается при touch project.wsgi
Как-то так

> Еще непонятно зачем в Django отошли от общепринятой нотации MVC,
Холиварный вопрос. Отошли от классики в пользу прагматики (все равно во view редко бывает больше десятка строк).

Бесящие мелочи вылезут позже. Тормозные шаблоны, своеобразный ORM, dependency hell, неумение дропать констрейнты в InnoDB и описывать индексы в модели, допиливание админки бензопилой (особенно русские падежи доставляют)… Продолжать, наверное, не буду )

Но даже при этом django для большей части задач остается… Не серебрянной пулей, но, наверное, самым вменяемым фреймворком для шаблонных задач
0
kozlovsv #
По поводу своеобразного ORM. Тут согласен. Надо постоянно мониторить какие запросы SQL создаются к базе, особенно при обращении к связанным таблицам, а то может получится так, что при, вроде бы безобидной выборке 100 строк с обращением к полям дочерней таблицы (обычный по сути JOIN), ORM генерирует101 запрос к базе, 1 основной и по одному запросу к дочерней таблице. Правда стоит отметить, что об этой особенности, и как ее обойти есть упоминание в документации по Djanjo.
0
VolCh #
Суть не во фреймворках (их архитектуре, функциональности и т. п.), а в синтаксисе языка прежде всего и в стандартных типах и либах. Слабая типизация, да ещё с неочевидными приведениями типов, доллары, ->, {}, array() (пофикшено в 5.4), да банальное function (в python — def), да ещё без именованных параметров. То есть один и тот же алгоритм, мысль если угодно, выражается на python короче (это бог с ним), а главное понятнее, без лишнего мусора, не несущего семантической нагрузки.
+1
romy4 #
Я думал выбор состоит в том, какой инструмент лучше для задачи, а не какой красивее или где круче синтаксис.
+2
jcrow #
«Красивее» и «круче» это в итоге «быстрее» и «удобней». Это то, с чем разработчик имеет дело каждый день.
0
romy4 #
«Красивее» и «круче» это в итоге «быстрее» и «удобней»

Не очевидно. Нужны сравнения.
–1
VolCh #
По возможностям инструменты плюс-минус одинаковы, идеи одни и те же в основе лежат. Но банально кода писать меньше и проще его писать. Производительность труда выше.
+1
jcrow #
Да!
Я бы еще добавил последовательность в именовании сущностей. В питоне, с приобретением некоторой сноровки, можно писать имя функции/метода потому что таким_оно_должно_быть, а в пхп часто приходится лезть в документацию, потому что функции названы как придется.
0
ApeCoder #
Про роль синтаксиса в языке неплохо сказано в этом треде (прошу не воспринимать как оскорбление — это не моя манера выражаться, но тред клёвый)
0
kozlovsv #
Объективного сравнения фреймворков в принципе не существует, я по крайней мере не встречал. По большей части выбор фреймворка, несмотря на все технические сравнения и прочее все таки скорее субъективен. А то иначе давно бы нашли «самый лучший» фреймворк в мире и писали бы только на нем. Так же я отметил что проекты на PHP довольно зрелые, а на Django довольно молодой — поэтому опять же качественного сравнения привести не получится, надо сначала на Django тоже шишки понабивать, а потом уже и сравнения писать. Хотя я встречал уже сотню таких сравнений, и все они сводятся к обычному «холивару», а не хотелось бы
0
romy4 #
Сравнить не в ваакуме, а конкретно под вашу задачу. Что и как решает питон, а что пхп. Потому что действительно холивары и пиписькометры надоели.
0
VolCh #
Как можно объективно сравнивать такие параметры как «красота», «понятность» или «легкость деплоя». Максимум rps и количество строк вручную написанного кода может что-то сказать.
0
romy4 #
Можно. Как читать код
if(condition&&condition2&&condition3){doSomethingHere();if(a)AndDoMore();}
и
if ( condition && condition2 && condition3 )
{
    do_something_here();

    if ( a ) 
        and_do_more();
}

Но это особого смысла не несёт. Но например по Задаче в django это делается так-то, а в пхп так-то. Я считаю в джанго круче, потому его и использую.
+1
VolCh #
Объективно нельзя это сравнивать. Кто-то скажет первый вариант круче — меньше строк и символов, а кто-то второй (кстати не идеальный, по многим стайл гайдам if без {} не пройдёт даже автоматическую проверку) — сущности визуально отделены.
0
romy4 #
Кто-то скажет первый круче, если он обоснует, что в угоду уменьшения строк жертвует читабельностью, а не просто прихоть, что он так привык. Это, мне кажется, и есть объективность. Если он уверен, что его код только для него. Я к этому веду.
0
VolCh #
В угоду повышения производительности труда — меньше клавиш нажимать — это объективная оценка. Читабельность — субъективная.
0
romy4 #
Читабельность тоже объективная: поиск необходимого в большом коде, любой пропуск команд и повторный поиск — это трата времени. А если кто-то другой изучает код, то тем более трата времени.
Короче, давайте не спорить на эту тему. Я такой код если вижу, то даже не читаю его, а заставляю переделывать. Лишь в случае, когда разбирается проект в поддержке. Но там можно какой-нибудь beautifier натравить.
0
VolCh #
Трата времени — это объективно, да, в любом случае оно тратится. Но конкретная трата субъективна. Разве что статистику можно собрать.

Я бы вас и второй ваш вариант заставил переделывать — есть потенциальное место для ошибок при расширении действией, необходимых если a истинно. Да и просто: «считай, что человек, которому придётся изменять твой код знает где ты живёшь и является маньяком, склонным к насилию» или как там говорится — ему придётся две скобочки фигурных ставить…
0
vearutop #
В моем опыте набор кода значительно менее затратен чем придумывание. Кроме того IDE позволяет авто-дополнениями сильно сократить количество печати.
0
kozlovsv #
Вообще конкретика на данный этап уже начала вырисовываться, но пока фактов не хватает для полноценной и адекватной статьи, еще нет уверенности что вот тут действительно лучше у одного языка чем у другого. Но попозже конкретика будет, я обещаю.
0
romy4 #
Подождём-с, интересно же.
0
VolCh #
Скажем так, можно объективно сравнивать, что языки, что фреймворки по какому-то одному параметру (и то не по всем). Но если сравнивать по нескольким, то явного победителя скорее всего не будет, а вот весовые коэффициенты каждого параметра уже точно субъективны, холивары это подтверждают. Для кого-то важен синтаксис и целостность, для кого-то простота деплоя и куча продуктов на любой вкус.
+16
easterism #
О чем статья-то? Где конкретика? Или вы просто ждете, что «процесс разработки полностью стабилизируется»? «Что не нравилось в PHP как раз удовлетворяло в питоне»? Где практический пример, как было плохо на php, как стало хорошо на питоне.

–4
alexios #
Скоро люди вообще не будут писать на Хабр.
+12
romy4 #
Лучше не писать, чем писать ни о чём.
–3
kozlovsv #
Я написал что проект молодой и конкретика особо не сформировалась. Вдобавок так же я писал что на любой конкретный довод в пользу того или иного языка найдется парочку утверждений в обратном. В статье я по большей части хотел отразить то, что на самом деле выбор технологии гораздо более субъективен и нет абсолютно истинных четких критерием выбора той или иной технологии.
+10
Guedda #
Ну вот почему последние несколько статей — ведро воды и ничего более?
Давайте тогда уж все хабраюзеры напишут каждый по статье, как они тем или иным образом перешли с одного языка на другой, описывая только: Нам не понравилось, а вот в нем вроде как всё нормально, поэтому и решили писать отныне на нём.
Где подробности? Где тривиальные решения и сравнение двух языков?
Ну и наконец, извиняюсь, но у меня назревает один единственный вопрос:
Зачем эта статья и какая у нее польза для людей, читающих один из разделов, которые Вы указали?
0
VolCh #
Есть у него и своя очень приличная ниша в мелких, и может быть, средних проектах.

Посмотрите ещё на Flask — может и ниши для PHP не найдёте :)

А если серьезно, то имхо, большой (если не единственный остался) плюс PHP — развитые CMS и прочие «коробочные» продукты, с установкой которых на хостинге справится любой «обычный пользователь». Если продукт пишется с нуля (с фреймворком конечно же) и с учетом его поддержки, то выбирать PHP можно только если нет людей, знающих другие языки или способных их быстро освоить.
0
mjr27 #
Добавлю еще один плюсик. Это, вроде как, единственный язык, позволяющий на одном хостинге держать сотни не мешающих друг другу сайтов с посещаемостью в 3 калеки в сутки. mod_php — великая сила.
+1
Mox #
Я не то, чтобы против Django, просто хочу поделиться опытом про переписывание — проект, который я делал месяца на 2 PHP ( без фреймворков ), был переведен за 1 неделю на Rails, при этом сопровождать его стало гораааздо легче.
+2
Imenem #
Пытался пройти 10 километров, поджав одну ногу, на костылях. Шел неделю. Потом бросил костыли, одел кроссовки и не напрягаясь дошел за 2 часа. Идти стало гораааздо легче.
Уже много раз говорили, что фремворки нельзя сравнивать с чистым языком.
0
Mox #
Не было тогда еще никаких фреймворков, когда сайт оригинальный писался. И даже когда переписывался в 2007 — что то я не помню никаких PHP фреймворков, хоть как-то близких к Rails в то время
0
HighOctane #
В 2007 уже давно был CodeIgniter, CakePHP и были вполне рабочие версии Symfony и Zend Framework
PS: извиняюсь за некропостинг
0
AlexWinner #
PS: извиняюсь за некропостинг

Ничего страшного.
+1
kvf77 #
Вы извините, но это чушь. Когда вы писали проект — вы придумывали архитектурные решения, придумывали схему базы, рассматривали алгоритмы, разрабатывали логику приложения. А во втором случае тупо переписывали. Вам не кажется. что сравнение времени вообще в данном случае не в кассу? Ведь вы просто повторили первый проект, выбросив ЛЬВИНУЮ часть разработки. Какой смысл сравнивать изначальную разработку с тупым переписыванием кода?
0
Mox #
У меня нет ощущения, что я прямо сидел и придумывал этот проект что в первый раз, что во второй. Вообщем-то проекты, где нужно «придумывать» достаточно редки.
Обычно просто беру и делаю, что там придумывать то в вебе можно, связь один-ко-многим?
0
voff #
Немного непонятна позиция руководства в организации, о которой идет речь. Вы заставили разработчиков учить новый язык, начали поиск новых разработчиков (видимо взамен тех, что не захотели переучиваться), только потому, что вам «подсознательно» перестал нравиться php? Для таких радикальных мер, я бы, на месте вашего руководства, потребовал доводы по серьезней, чем нечто подсознательное и необъяснимое.
+1
VolCh #
Может автор сам руководство?
–1
kozlovsv #
Я являюсь руководством. И моей задачей в частности является снизить скорость разработки проекта. Читая форумы, на которых приводятся технические сравнение языков и фреймворков, понял, что большая часть — это переводы статей. А реалии разработки ПО за рубежом, несколько отличаются от наших. Читая статьи — сравнения «местного» производства, создавалось ощущение их однобокости. Можно найти статьи где рассказывается о абсолютном лидировании PHP над Python или наоборот. Да, в этих статьях конкретики вроде побольше чем в моей, но пользы наверное столько же. Каждый хвалит свое. На самом деле пока у меня лично нет однозначного решения что же все таки лучше, поэтому и сравнений нет никаких. На счет разработчиков. Большая часть разработчиков — фрилансеры, и на новые проекты все равно приходилось бы нанимать новых людей, так что никого не увольняли и насильно переучивать язык не заставляли. Учить новый язык по большей части из всей команды пришлось только мне. Просто появилась возможность начать новый проект с новой командой.
0
VolCh #
И моей задачей в частности является снизить скорость разработки проекта.

ОМГ!!! Обычно все стараются повысить скорость разработки, хотя бы чтобы на хабре было время пообщаться. А вы скорость снижаете. Зачем?!

P.S. Понимаю, что неудачно выразились. :)
0
kozlovsv #
Да да, именно неудачно. Спасибо что поправили :) Скорость конечно же хочется увеличить.
0
voff #
Я воспринимал статью как переход целой организации от одной технологии к другому, это было интересно и рискованно. Переход одного человека, на другой язык — совершенно неинтересен. Статья потеряла смысл.
0
kozlovsv #
Во первых, о полном переходе от одной технологии к другой речи не велось изначально. Просто пробуем писать новый проект на новой технологии и окончательное решение будет приниматься только после того, как станет понятно, что одна технология имеет ощутимые преимущества над другой. Но даже после этого старые проекты на PHP останутся, и никто переводить их на другую технологию не собирается. Пока по крайней мере. Во вторых, с чего вы взяли что статья — это переход одного человека на другой язык. Если вас смутили в комментарии мои слова
Учить новый язык по большей части из всей команды пришлось только мне
То я, как технический руководитель, посчитал для себя обязательным ознакомится хотя бы с азами языка и фреймворка.
+1
Joshua5 #
аргументация типа «мне не нравится синтаксис языка, поэтому язык говно».
+1
Stdit #
Насколько быстр Python? Сколько страниц Python может сгенерировать за секунду (без учёта времени подключения и работы БД) на среднем сервере (например Amazon ec2 small)? Каковы издержки на передачу данных? Преположим, что это стандартная страница на 50кб (шапка, подвал, меню из 10 пунктов, 20 комментариев пользователей) и код написан профессионалом, что среда настроена оптимально и всё то нужно стоит (кроме http — кеша).
0
kamiram #
на моем, python с django работает примерно на уровне php(с акселераторами). без django — раза в 1.5 шустрее
0
Stdit #
Какой это уровень, можно конкретные цифры, пожалуйста?
0
kamiram #
100-120 для ab -c 100 -n 1000
на не особо шустром vps
0
Stdit #
100-120 rps? Сложность страниц примерно одинаковая, и разницы между php и python практически нет, я правильно понял? И без django 170-180 rps? В принципе, неплохая скорость. Можно ли на основе этого сделать вывод, что при выборе между php и python скорость языка не является аргументом?
+3
VolCh #
Это вроде давно известный факт. Скриптовые языки вроде Perl (? тут не уверен, но счёл нужным упомянуть), PHP, Python и Ruby по скорости где-то на одном уровне находятся, если использовать «штатные» интерпретаторы. Скорость не аргумент вроде давно, как-то даже неприличным считается упоминать её в холиварах :) В пользу PHP основные аргументы: простота деплоя и, как следствие, дешевые хостинги, очень много готового кода (прежде всего «коробочные» продукты — CMS/F, форумы, магазины, игры и т. д.) и множество дешёвых разработчиков.
0
Stdit #
Оно понятно, но раз есть не «штатные» решения, было бы полезно услышать мнение питонщика с опытом. К слову, «простота» PHP и дешевизна разработчиков-джуниоров компенсируется ценой поддержки или полной переработки некоторых таких «решений». В среде питонщиков насколько такая ситуация распространена?
0
kozlovsv #
Преимущества в скорости работы какого либо из проектов написанных на PHP либо Python, находящихся на одном и том же сервере не обнаружено. Проекты не особо посещаемые, до 1000 уников в сутки. Так что острого вопроса скорости работы не стояло. А на счет нескольких PHP джуниоров или одного опытного питониста, тут сказать ничего не могу опыт — покажет. Но пока, все говорит о том, что опытный программист пока экономически более выгоден. Хотя опять же стоит отметить, что найти PHP программиста и проще и дешевле. Наверное из за большей конкуренции.
0
VolCh #
А вариант опытный php-программист не рассматривали? Мелькают вакансии на php-программистов с зарплатой от 100-130 тыс. руб.
0
kozlovsv #
Ну я думаю это уже по большей части не программист, а руководитель проекта, архитектор или системный аналитик.
0
VolCh #
Явно не кодер, но руководителями или аналиткой там, вроде, не пахло — обычный Senior (ака ведущий инженер-программист) с хорошим знаниями и опыта хайлоада и прочими не юниорскими качествами.
0
VolCh #
Питонщик с опытом вряд ли пользовался hiphop или даже phpdaemon в режиме true fastcgi.

При должной организации работы и использованием надлежащих инструментов не думаю, что разница в трудоемкости поддержки (цена человеко-часа — отдельный вопрос) будет значительна, ведь большую часть времени нормальный программист думает, а не ставит рекорды по скорости набора кода. Справедливости ради — субъективно, среди пхп-разработчиков (или их «менеджеров»?!) эти «должная» и «надлежащая» встречаются редко, лично для меня только в опенсорс проектах и то, далеко не во всех. Мои заказчики на предложение, например, внести приложение под контроль VCS и покрыть его тестами отвечали что-то вроде: «раз считаешь нужным — делай, но цена и сроки не изменятся».

К питонщикам (как к сообществу) не отношусь, изредка пишу для себя что-то на питоне (скрипты, автоматизирующие пользовательскую рутину (то, что когда-то писал на .bat) — баш не осилил, плагины для редакторов, где питон нативен), пробовал джангу на учебных проектах. В общем только в холиварах участвую, отстаивая точку зрения, что питон или руби много лучше PHP как языки, но для малого бизнеса, не имеющего хотя бы грамотного админа в штате, лучше заказывать свое первое представительство в вебе «чтобы было» лучше на PHP. Или закладывать в бюджет постоянный аутсорс, а не только разработку.
0
kozlovsv #
Если в разработке не используются Case средства, то время написания самого кода, тоже существенный фактор. Python радует тем, что кода пишется ощутимо меньше. На счет поддержки тоже не все так гладко. Одно дело если проект разрабатывается корпоративно, существует четкая иерархия разработчиков, если люди которые постоянно контролируют качество кода и прочее. А вот если таких людей нет, то один юниор программист может написать модуль так, что кроме него там никто не разберется. Говно код можно написать на любом языке, но Python по моему как то меньше способствует написанию этого говнокода.
0
VolCh #
По моему личному опыту никак не способствует. Я способен писать говнокод на любом языке если нет фидбэка оперативного. Правда, одни называют говнокодом лапшу, а другие кучу абстракций. Не знаю как угодить :( Но все удивляются, что код работает :)
–1
VolCh #
А с true fastcgi сравнивали? PHP и в 2 раза ускорение с ним даёт с symfony. То есть получается в ~1,5 раза быстрее чем python без django, если считать, что django и symfony одинаково тормозят.
0
kamiram #
я без наворотов php мерил. только несложный шаблон на quicky(убыстренный smarty)
+1
ilvar #
В более-менее динамических проектах все равно упирается в БД. Disqus и Instagram вполне нормально на джанге работают, и не жалуются.
0
mihmig #
Всё время мучает вопрос — а как в питоне начинающему «копипастить» примеры из уроков — ведь «табуляции» могут сбиться и код станет нерабочим (или хуже — неправильным)?
0
Riateche #
Нормально сверстанный код хорошо копируется. Кроме того, многие IDE поддерживают автокоррекцию отступов при вставке кода.
+1
VolCh #
Ручками набирать — это полезнее при изучении любого языка.
0
ApeCoder #
Один раз выбрать редактор, где она не сбивается
0
mihmig #
Вы (и вышестоящий комментатор) рановато нажали Ctrl+Enter — рекомендуемая среда разработки не отобразилась :)
0
ApeCoder #
Я в свое время учился на Far+Esc+Colorer+ExtCommand
+1
Wuron #
И о чем статья? Краткое ее содержание:
«Мы делали проекты на PHP, но он нам надоел. Перешли на Python — пока все нормально».
+2
akzhan #
Вот так бывает, когда Яндекс не Rails выбирает :)
0
DankoUA #
Еще одна неделя холивара php vs others?
+1
Stepuk #
Внимательно послушайте, что говорит этот человек (http://www.youtube.com/watch?v=uF17_nhMRK0), и тогда проблема «PHP или Python» перестанет Вас тревожить.
+1
kozlovsv #
Да, с такой аргументацией не поспоришь :)
0
neyronius #
Вот, кстати, отличное сравнение синтаксиса PHP/PERL/Python/Ruby.

hyperpolyglot.org/scripting
hyperpolyglot.org/scripting2
0
bo883 #
Как надоело унижение php, «такой он отстойный и неправильный» можно подумать будешь писать на другом языке сразу перестанешь писать «гомнокод». то не нравятся «$» то «{}» Я наблюдаю последнее время отсутствия базовых знаний «виды сортировок...» «ооп» «стеки, очереди, кучи...» зато обосрать язык всегда пожалуйста. А вообще парни крутые на раз и стали писать на другом языке, тут уже год основной проект кое-как в порядок привести пытаемся (700k пос/мес).
0
kozlovsv #
Я не заметил в данном топике унижение PHP, есть вещи которые не нравятся, но слова «отстойный» и «неправильный» я не произносил. В названии топика указано, что выбор непростой, что однозначно правильного решения пока не найдено, и определить какая технология лучше подходит для разработки Веб приложений не так просто. Поэтому ни о каком унижении PHP речи не идет. Говорится о том что он не устраивает в некоторых планах. Но согласитесь, язык действительно не идеален.
Понятно, что гораздо важнее знать азы программирования, и разработки структуры приложения, паттерны проектирования, основы СУБД, реляционной алгебры, и возможно дискретной математики, язык и фреймворк — всего лишь средство реализации, и если базовые знания программирования оставляют желать лучшего, то разницы, как каком языке пишет человек, действительно нету. Но у меня поверьте базовые знания есть, и изучить новый язык для меня не составляет никакой проблемы, и поэтому если язык меня не устраивает то я перехожу на новый. Не факт что Python устроит во всем, но по крайней мере будет с чем сравнивать. А вы считаете что стремление в поиске более продвинутой технологии это унижение старой?
0
bo883 #
Изучение нового это прекрасно. Смочь остаться на выбранной технологии/языке и т.д. почти победа. Дело не в том что то или иное средство лучше а в том что диктует бизнес, если вы сумеете продержатся в выбранных средствах/языке почет и хвала вам.(работали с perl,python,ruby но все равно не по своей прихоти со слезами на глазах вернулись к php)

За последние время огромное кол-во камней в огород php, просто надоело, язык не без изъянов но при этом он делает то что от него требуют, и не плохо. История повторяется на prel тоже жаловались, а посмотрите что сейчас происходит. да и python не без грешный конечно по сравнению с php он праведник но…

ЗЫ: контекст он и в Африке.
0
kozlovsv #
На счет «диктует бизнес», с Вами на 100% согласен. Если бы я писал этот пост год назад, то, наверное, камней в огород PHP, полетело бы гораздо больше, и пост, наверное, получился бы обильно сдобренный матом, но…, слезть с «иглы» PHP за год не получилось. Если проект делается на заказ и он не слишком крупный, то заказчика по большей части волнует – доступность, распространенность и дешевизна хостинга, доступность специалистов, способных поддерживать сайт. Слово PHP, многим заказчикам знакомо, как ни странно, даже если они ничего общего не имеют с IT, многие заказчики думают, что это вообще единственный язык для разработки сайтов. Но при слове Python или еще что то, заказчик настораживается, и уже относится к тебе недоверчиво…. В общем, спустя год, наступило некоторое смирение что ли, и к языку отношение уже немного другое. Как к мулу, его все бьют, пинают, а он знай себе, везет груз, и делает свое дело.
Но когда созрела задача написать собственный проект, то тут решили рискнуть и попробовать другую технологию.
0
shternberg #
Так сравнивали бы php + symfony2 с python + jango.

Иначе все описанные вами плюсы и минусы – это
бред малообразованного быдлокодера, который
открыл для себя MVC фреймврк.
0
kozlovsv #
Мы разрабатываем на php + CI и symfony2 изучать нет никакого желания, да и необходимости.
0
kvf77 #
А изучать новый язык конечно есть :)
0
kozlovsv #
Да есть. Сомневаюсь что переход с CI на symfony2 устранят те недостатки языка которые не устраивали нас. Как раз к фреймворку CI претензий нет никаких, он всем устраивает, не идеален конечно, но так скажем «очень приятен в общении», а вот к самому языку претензии есть, и мы приняли решение (довольно не простое), что нужно попробовать новый проект разрабатывать на новом языке + фреймворке. Чтобы хотя бы самим иметь представления и понять какая из этих двух связок PHP + СI или Python + Django в практическом применении лучше. Кстати особых проблем в изучении нового языка я не вижу. Гораздо сложнее освоить новый фреймворк, понять его структуру, ньюансы и прочее. Так что если брать трудозатраты на изучение новой связки Python + Django или нового фреймворка на PHP, то Python + Django не намного сложнее освоить. Еще хочу заметить что работающим у нас программистам на PHP не надо будет ничего переучивать, так как они сидят на старых проектах на PHP и работы там тоже хватает. Для нового проекта будут наняты другие программисты. Переучивать язык и фреймворк нужно мне, для более грамотного контроля за разработкой. Поэтому мне не обязательно становится гуру питона и джанго. Достаточно освоить азы.
PS. Кстати мы рассматривали в качестве альтернативы CI другие PHP фреймворки. В частности интерес вызвали Kohana — родственник CI и YII — в принципе тоже вполне достойные фреймворки. Один недостаток они на PHP :)
0
ajaxtelamonid #
CI с синглтон-моделью и невозможностью нормального автокомплита в IDE — это не полноценный фреймворк. Это все-таки уже вчерашний день. Имхо, стоит посмотреть современные php-фреймворки, а не переучиваться на другой язык. Кохана — ок, Симфони — ок. Laravel недавно появился интересный, с миграциями из коробки. Да даже Yii ок, хотя он инопланетный несколько.
0
kozlovsv #
В PHPStorm при соответствующих настройках автокомплит для CI отличный. Хотя на счет «вчерашнего дня» возможно вы и правы. Но я уже сказал что изучить новый язык не такая уж и проблема, гораздо большая сложность составляет изучения самомго фреймворка, и его тонкостей. Поэтому решив опробовать новый фреймворк, решили попутно и опробовать новый язык. А вдруг понравится :)

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.