LINUX.ORG.RU
ФорумTalks

php vs python

 , ,


1

4

почему люди не пишут веб просто на пхп?

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

для скриптов было еще ничо, а потом начался веб. И вот тут стало уже совсем непонятно зачерта питон нужен, если нужен. Я понимаю профит от Жабы, например - можно заюзать stateful программирование. От кложуры - можно писать многопоточность без баттхерта. В конце концов от Хацкеля, на котором написан самый быстрый в мире сервер. Но от питона.... ничего не меняется! Код такой же (отступы vs скобочки - не играет роли), общие принципы построения фреймворка - те же, даже перфоманс и то примерно тот же (никакой).

ищу ну хоть какие-нибудь профиты от использования питона перед похапэ, помогите найти?

под «пхп» понимаются версии 5.4+ с использованием symfony2/yii2 с соблюдением PSRов. Под «питоном» понимается то, что качается с сайта питона, с испольованием джанги или что вы любите с неукоснительным соблюдением всех взаимоисключающих PEPов и друг книг чорной магии

//с удивлением не обнаружил в правилах ЛОРа запрет на холиворы. wut?

//линукс тут при том, что собрать все модули похапэ и питона под вендой - занятие для истинных садомазо

★★★★☆

Последнее исправление: stevejobs (всего исправлений: 3)
Ответ на: комментарий от stevejobs

«реальные проекты» не аргумент, т.к. их писали разные люди. Может те, кто писал PHP-версию просто не шарили, а питонщики - шарили.

А для тебя не является показательным факт, что пхпшники систематически не шарят, а питонщики столь же систематически шарят? Меня бы это заставило задуматься.

Кстати, питоновские объекты риальне дешевле похапешных. Попробуй сделать бенчмарк с созданием кучи инстансов и вызовом их метода, да и сравнить, за которое время кто справится. Еще можно память посчитать, но тут, по-моему, большой разницы не будет.

shimon ★★★★★
()

почему люди не пишут веб просто на пхп?

Потому что люди пишут на нормальных ЯП. На питоне пишут только студенты-недоучки.

от питона.... ничего не меняется! Код такой же (отступы vs скобочки - не играет роли),

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

общие принципы построения фреймворка - те же, даже перфоманс и то примерно тот же (никакой).

Перфоманс гораздо быстрее ПХП. Про какие «общие» принцыпы каких фреймворков ты говоришь?

Siado ★★★★★
()

Знаешь, полтора года назад или даже раньше был какой-то товарищ, который ругался, какое же говно этот ваш пистон. В качестве примера приводилась функция, 1 в 1 передранная с си. Я вот думаю, может, ты пытаешься писать на питоне как на яве, у тебя не получается, и в результате испытываешь будвайзер?

shimon ★★★★★
()
Ответ на: комментарий от Bad_ptr

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

Можно подумать что пэхэпэ при этом стал хорошим. Вообще есть же четкий критерий отличать хорошие IT-сущности (стандарты/языки/подходы/парадигмы и т.п.) от плохих, негодных: Если это используется в web, значит это полный отстой и дно.

Suntechnic ★★★★★
()
Ответ на: комментарий от menangen

Во первых yii2 еще не вышел, а у вас уже проект на нем)). Во вторых зачем вам там понадобилось клонировать целый проект на другом ЯП? В третьих те кто писал на пхп могли быть а) наркоманами б) писали с нуля по вашим кривым ТЗ.

Если уж хочешь обосрать ЯП/фреймворк, то давай нормальные бенчмарки фреймворков с аналогичным кодом на нем (хотябы вывод хелловорлд чтоли). А то у тебя получается что питон почти в 4 раза быстрее пхп оказывается))

ppy ★★★
()
Ответ на: комментарий от Suntechnic

Если это используется в web, значит это полный отстой и дно.

Но ведь в web можно использовать всё что угодно, у чего есть stdin и stdout или сокеты.

PolarFox ★★★★★
()

Можно было и получше вбросить.

Смотрю, ссылку на фрактал отсоса уже привели.

Deleted
()

я смотрю, тут затронули вопрос производительности... я просто оставлю это здесь

Ford_Focus ★★★★★
()
Ответ на: комментарий от PolarFox

Если это используется в web, значит это полный отстой и дно.

Но ведь в web можно использовать всё что угодно, у чего есть stdin и stdout или сокеты.

Вы оба мои кумиры!

zekka
()

тем что

$q = true and false

$q = true && false

Сравни $q

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

Debasher ★★★★★
()
Ответ на: комментарий от reprimand

Все дело в программистах.

«Не говорите мне, что «хорошие разработчики могут писать хороший код на любом языке», или что «плохие разработчики что-то там ещё». Это ничего не значит. Хороший плотник может забить гвоздь камнем или молотком, но где вы видели плотников забивающих что-либо камнями? Один из факторов, определяющих хорошего разработчика, это способность выбрать подходящие инструменты. Не говорите мне, что разработчик обязан помнить тысячи странных исключений и неожиданных поведений. Да, это обязательно в любой системе, потому что компьтеры сосут. Только это не значит, что нет верхнего предела фигни в системе. В PHP нет ничего кроме исключений, и это не круто, если борьба с языком занимает больше усилий нежели написание самой программы. Мои инструменты не должны создавать мне не позитивную работу.»

Debasher ★★★★★
()
Ответ на: комментарий от Ford_Focus

в чистом виде PHP быстрее Python

Ни разу. В варианте числодробилки Python работает в 2-3 раза быстрее, при работе с объектами скорости примерно равны, но Python 2.7 чуть шустрее.

https://github.com/Balancer/benchmarks-fib-obj/wiki/Результат-теста:-i3-2.2ГГц

KRoN73 ★★★★★
()
Ответ на: комментарий от stevejobs

Непонятно вот что, почему PHP скатывают в Жаву? У нас уже есть одна полноценная жава.

У нас есть Java с динамической типизацией и минимальным оверхедом на стартапе?

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

Java с динамической типизацией

Эм… ну… JavaScript? ☺

PolarFox ★★★★★
()
Ответ на: комментарий от shimon

С пхп на задачах такой сложности можно сдохнуть.

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

Вот типичный код Django (я работал и с ним) — это реально сложно. В голове много лишних сущностей приходится держать и много лишней писанины при разработке требуется.

KRoN73 ★★★★★
()
Ответ на: комментарий от xsektorx

apc тогда уже, хз, чего этот злосчастные еакселератор пихают куда ни попадя

Я на apc пару раз наступал на весьма неприятные грабли, типа нормальной работы на тестовых серверах или под пиковыми тестами, но падениями всей системы при длительной работе под боевой нагрузкой.

Когда-то давно и с eaccelerator были проблемы.

Так что исторически сижу на xcache, этот ни разу не подводил.

KRoN73 ★★★★★
()
Ответ на: комментарий от ppy

Если уж хочешь обосрать ЯП/фреймворк, то давай нормальные бенчмарки фреймворков

Есть отличная и огромная работа на http://www.techempower.com/benchmarks/#section=data-r8&hw=i7&test=query

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

Кстати, как я понимаю, под Python сегодня нет инфраструктуры, типа Composer у PHP. Конечно, есть eggs, но они глобальны и требуют системного доступа, в то время, как под PHP можно держать актуальные тебе локальные наборы компонентов.

KRoN73 ★★★★★
()
Ответ на: комментарий от KRoN73

и минимальным оверхедом на стартапе?

в отличие от пыха - жава конкретно в этом плане не ущербна и жава-сайт нужно стартовать 1 раз. А не дергать сервер на каждый чих. Загрузил в память состояние - и живи с ним хоть до конца света. Для разработки надо перезагружать, но не так уж часто, ибо JVM частично поддерживает hot swap байткода без остановки, а эту фичу умеют все нормальные IDE (тот кто пытается писать жаву в блокноте - лютый ССЗБ).

с динамической типизацией

аннотации, геттеры-сеттеры, фиксированная пакетная система, инструменты статического анализа итд итп - всё куда скатывают пхп - конечно же это фичи динамической системы! (табличка «ирония»). А чего стоят лямбды, которым нужно _вручную_ в скобочках в сигнатуре перечислить переменные, которые они утянут из локального контекста - вот это динамика! (табличка «сарказм») Предлагаю запилить следующую фичу - статический анализ пути исполнения на основе новомодных аннотаций (Java Checker Framework, нутыпонел), чтобы триумф динамики свершился окончательно!

stevejobs ★★★★☆
() автор топика
Ответ на: комментарий от KRoN73

типа Composer у PHP

Composer, кстати, явно передрали с Maven. Причем, к сожалению, передрали не 1-в-1, а по собственному разумению. И теперь уверенно шагают по граблям, по которым Мавен шел много лет. Ну так-то это отлично, Maven для PHP, всё правильно пацаны сделали, просто меня удручает какой свалкой это станет в ближайшем будущем.

stevejobs ★★★★☆
() автор топика
Ответ на: комментарий от stevejobs

в отличие от пыха - жава конкретно в этом плане не ущербна и жава-сайт нужно стартовать 1 раз

А ещё — каждый раз, когда вносятся изменения в код. Мы же тут с точки зрения разработки спорим, вроде. Иначе вопрос синтаксиса вообще теряет смысл.

KRoN73 ★★★★★
()
Ответ на: комментарий от Siado

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

Это ты, видимо, быдлокод на питоне просто не видел.

aiive
()
Ответ на: комментарий от aiive

Это ты, видимо, быдлокод на питоне просто не видел.

Но на Python, всё же, быдлокод писать сложнее. Косвенно даже по http://www.99-bottles-of-beer.net/language-python-808.html оценить можно :)

Другое дело, что контекст спора тут, всё же, ИМХО не о среднем уровне программирования, а о выборе языка для квалифицированного программиста. И тут различия между PHP и Python не так велики. Хотя последний, конечно, аккуратнее.

KRoN73 ★★★★★
()
Ответ на: комментарий от Krieger_Od

спасибо за ссылку на очередную контест-площадку.

питон прост - т.е шаблоные ( в части списков/кортежей и прочей классики) задачки из таскбуков имееют в питоне видимо наиболее простой вид.

qulinxao ★★☆
()
Ответ на: комментарий от stevejobs

* после повяления composer в экосистеме php он в целом начал доганять python по инфраструктуре;
* на php просто орава разработчиков на любой кошелек (зачастую, это единственная причина, по которой бизнес выбирает php).
* в php сейчас вливают сотни нефти всякие фейсбуки.

все это вместе дает php серьезные шансы догнать питон по технологичности в web.

лично для меня _серьезным_ недостатком php по сравнению с питоном является то, что:
1) у php обширное легаси плохого дизайна (ака «фрактал плохого дизайна»);
2) нет никаких инструментов для многопоточности (поэтому нельзя, например, средствами языка оборвать какойнить конекшн таймаут раньше, чем тебе его отдаст драйвер);
3) php не существует нигде за пределами веба.

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

VladimirMalyk ★★★★★
()
Последнее исправление: VladimirMalyk (всего исправлений: 3)
Ответ на: комментарий от alex_the_v

Пых в свое время был скроен на коленке наркоманами
Питон - ... хоть как-то рассуждать о достоинствах-недостатках

Ты про тот питон, что был придуман на досуге по угару и назван в честь клоуна?

Sense
()
Ответ на: комментарий от aiive

Это ты, видимо, быдлокод на питоне просто не видел.

Ну кто знает. Покажи пример того, в чем так уж затруднительно разобраться.

Siado ★★★★★
()
Ответ на: комментарий от Debasher

я где-то уже слышал такую точку зрения. Даже ссылка на статью оригинального автора глубоко в закладках валяется. Но суть не в этом. Такие проблемы возникают при аутсорсинге, или при работе/отладке чужого кода. У меня работает веб сервер, в котором httpd.conf и php.ini настраивал лично я. Поэтому некоторые «коллизии и борьба», как говорил тот человек (и вы) у меня не возникают. Ибо бОльшую часть проектов разрабатываю лично я, и я хорошо знаю как код, так и настройки. В PHP огромную, и с вашей точки зрения, негативную роль сыграло сближение веб сервера и скриптового языка.

Вы во многом правы, но так же и не правы. Все зависит от конкретной ситуации. Кстати. человеческий фактор никогда не стоит отрицать. И я не считаю PHP хорошим языком, я ищу достойную ему замену в данный момент (обоже только не ASP.NET!)

reprimand ★★★★★
()

а потом начался веб

веб? на питоне? Бррр... что ж вы на ночь людям такие вещи рассказываете...

next_time ★★★★★
()
Ответ на: комментарий от KRoN73

Там какой-то парад словоблудия, всё что ты хочешь - делается.

Делается не так как в композере. Потому что жава = блобы. Ну да, в дебиане делается не как в генту. Связался с установкой блобов - будь любезен свой репозиторий, подписи пакетов, итп

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

И в том, что у вас в пхп вообще коммунизм. Как композер работает с закрытыми библиотеками на пхп? Никак не работает, потому что их нет.

stevejobs ★★★★☆
() автор топика
Ответ на: комментарий от KRoN73

Конечно, есть eggs, но они глобальны и требуют системного доступа, в то время, как под PHP можно держать актуальные тебе локальные наборы компонентов.

virtualenv

Deleted
()

считается мэйстримным пониманием функциональщины

Да там вообще нет функциональщины, ни в каком смысле, там лямбды кастрированные, нет first-class functions. Кто такое сказал? Мож имелось в виду, что там легко навелосипедить ФП?

anonimous
()
Ответ на: комментарий от VladimirMalyk

нет никаких инструментов для многопоточности (поэтому нельзя, например, средствами языка оборвать какойнить конекшн таймаут раньше, чем тебе его отдаст драйвер)

на самом деле многопоточность в php есть, тут можно почитать(http://www.reddit.com/r/PHP/comments/1jo517/multithreading_in_php_with_pthreads/) если интересно.

Другое дело, что это пока не особо используют =(

aiive
()
Ответ на: комментарий от KRoN73

Ты столько лет топчешь планетку, а про virtualenv не слышал?

shimon ★★★★★
()
Ответ на: комментарий от aiive

Эх, жаль что под php-daemon переносить код тяжело...

Это могло бы реально поднять производительность сложных проектов.

vel ★★★★★
()

Питон – язык общего назначения. Когда он создавался, никакого веба ещё не было. Он подходит для математики, моделирования, научных исследований.

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.