LINUX.ORG.RU
решено ФорумTalks

Почему php считается плохим языком программирования?


1

1

Хоть я только начинаю на нем писать, но на мой взгляд он довольно таки хорош.

Плюсы:

- Легок в изучении

- Обширная документация, разжеванные примеры

- Хостинг дешевле

- Процесс кодинга подобен процессу творчества

- Динамическая типизация

- eval()

Много негативных отзывов насчет безопасности и стабильности. Но почему тогда Вконтакте и другие крупные порталы не падают по десять раз в сутки? Возможно, говнокодинг и есть проблема PHP, но, если удерживать себя в рамках простых правил, то выйдет очень даже неплохо.



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

это достоинство php или недостаток? ИМХО это вообще не аргумент в техническом споре.

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

Seraph

Мне показалось или вы завидуете?

популярность фконтакте и лицокниги ну никак не зависит от ЯП. Даже то, что эти сайты обрабатывают запросы 100500 хомячков в секунду - это заслуга sql. Php тут не причём. Если я и завидую, то только тому, что данные господа - классные и дальновидные бизнесмены. Дуров просто вовремя слизал саму идею, которая пришлась к месту и ко времени. А заслуга php тут разве что в оперативности - на php можно за одну ночь найти 100 быдлокодеров, которые этой-же ночью напишут 100500 строк быдлокода. И это будет даже работать (не очень гладко, но будет). С пайтоном так не получится.

Seraph

конкретно эти, как вы выразились, г-ны имеют вполне живые кучи денег потомучто вовремя послали модные тренды IT

да, но вообще говоря, сам php к этому относится чуть менее, чем никак.

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

п1. - no comment

Seraph

2) юзай последние достижения (SPL, Namespaces, phar)

ага. «последние». Пеши ищо.

Seraph

3) мысли алтернативно(прим.: обход массива намного дешевле делать через коллбэк)

это просто кривизна стандартной библиотеки php. Причём наверняка, это исправят в следующих, и ваш код будет тормозить. Потому как все обходят массивы специальным оператором foreach, а callback нужен для немногих специальных случаев, и в 99% ИМХО вообще не применяется.

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

Даже то, что эти сайты обрабатывают запросы 100500 хомячков в секунду - это заслуга sql

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

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

note173

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

...программистов SQL и менеджеров по железу. А php тут не причём. Потому как я уверен, что работа этих сайтов реализована точно не через файлы в фс и не через php-array.

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

На таких масштабах mysql ничем не лучше других баз, здесь проблемы с масштабированием и распределенностью.

В контакте, кстати, не только mysql. Вообще, у них очень сложный бэкенд, но я в этом не очень разбираюсь. Тут на форуме есть человек, знакомый с внутренностями поближе.

note173 ★★★★★
()

Плюсы:

- Легок в изучении

Нет. Если лёгок в написании «hello, world» то всё равно си-подобный синтаксис - это не идеал. А если лёгок в написании простых вещей - то это самым вопиющим образом не так.

- Обширная документация, разжеванные примеры

Видел я этот php.net. Место гиблое, а некоторых банальных вещей я там и не смог найти.

- Хостинг дешевле

Не смешно.

- Процесс кодинга подобен процессу творчества

Процесс кодинга подобен процессу наполнения чистого листа неструктурированным хламом. Кто-то называет это творчеством, я это называю беспорядком.

- Динамическая типизация

- eval()

А какой скриптовый язык это не умеет?

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

Я не слышал их имен, но я слышал имена Марка Цукерберга и Павла Дурова, их соц. сети написаны на PHP.

Очень смешной аргумент. Когда они писали на PHP - их никто не знал особо, особенно первого. Но когда появились пользователи - пришлось затыкать дыры в том, что есть. Их соцсети популярны вовсе не потому, что написаны на php.

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

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

кем утверждается? оО полуанонимным оналитиком с ЛОРа?

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

заслуга sql

Да ладно??? Мы говорим о языке запросов или о СУБД? Кстати, ни лицокнига, ни контакт не используют ни sql в чистом виде, ни СУБД в чистом виде. И там и там свой узкозаточенный софт

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

худшего выбора, чем использовать тоже php, и придумать сложно.

А что используют правильные поцоны? Питон или руби?

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

Мне кажется, там от симфони осталось только название :) Это как Яндекс, который вроде как использует джангу, а по факту чуть ли не 80% кода переписали под себя

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

Ладно, про руби вежливо помолчим.. А есть что-нибудь подобное на питоне? Хотя там больше заслуга редиса, нежели аппликейшена

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

note173

На таких масштабах mysql ничем

где я писал про mysql? Я писал про то, что на долю php там остаётся очень простая работа - составить запрос, и вывести результат.

note173

здесь проблемы с масштабированием и распределенностью.

эти проблемы только у sql. У php проблем нет. И если его заменить скажем на C++, то проблем тоже не будет. И работать будет также. Только писать дольше, и обслуживать сложнее.

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

Хотя там больше заслуга редиса, нежели аппликейшена

Во всех подобных системах заслуга, в первую очередь, бэкенда. И он же — бутылочное горлышко. Иначе бы давно вымер не только PHP, но и Python с Ruby :)

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

Да, разумеется. Две большие разницы. Вы меня не совсем поняли.

Допустим, у нас какой-то блок кода (например, метод) должен возвратить список. Он может оказаться пустым, а может что-то содержать.

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

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

кодеров, для которых синтаксис С просто и понятен на порядок больше. Причём у 95% тех, для которых прост и понятен синтаксис пайтона имеют стаж <5 лет.

речь не о простоте синтаксиса. У ассемблера он ещё проще. Я говорил об уровне типичных проектов. Я много лет ковыряюсь в софте и, за оочень редким исключением, вижу весьма запутанные исходники любительского уровня. Возможно, кроме pep-8 нужны ещё пару док по написанию прог.

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

Правильные пацаны используют то, что позволит им написать быстро, качественно, с первого раза, и с простой возможностью большую часть или всё оперативно изменить.

PHP тут явно не среди лидеров. Или пусть мне покажут аналог известного «wiki на bottle.py за 23 минуты»

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

кодеров, для которых синтаксис С просто и понятен на порядок больше. Причём у 95% тех, для которых прост и понятен синтаксис пайтона имеют стаж <5 лет.

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

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

и дают строго детерминированный результат. В отличие от php.

Это где empty для нуля даёт true в одних случаях, и false в других? :) И где кроме == требуется ещё и === (типа с намёком «а у нас длиннее»? :)

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

true_admin

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

ну и что? новички всегда пишут запутанный быдлокод. На любом ЯП. Часто он ещё и работает. Чем проще код - тем выше мастерство программиста.

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

deb

Это где empty для нуля даёт true в одних случаях, и false в других? :) И где кроме == требуется ещё и === (типа с намёком «а у нас длиннее»? :)

ну типа того.

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

Новички, которые выбирают php для веб-программирования, взамен более простого, удобного и понятного bottle.py - это как пользователи, которые выбирают Windows вместо Debain и т.п. для того, чтобы пользоваться только браузером и почтой. Им кто-то сказал, что это модно и единственный разумный выбор, а альтернатив они и не знают. :(

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

только думают, что могут проектировать веб-приложения.

фикс :)

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

Ну, не то, чтобы старое... Python будет того же возраста примерно :) Только 22 года назад о нём мало кто знал.

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

s/не то, чтобы старое/не то, чтобы новое/ :)

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

возможен другой вариант - на сервере нет пайтона, но есть php. Или новичок для своего хелуворлдного сайта выделенный сервер должен арендовать? Именно об этом наверное и говорил ТС в первом посте. Кроме того, а если работаешь не в одиночку?

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

возможен другой вариант - на сервере нет пайтона, но есть php. Или новичок для своего хелуворлдного сайта выделенный сервер должен арендовать?

GAE

Кроме того, а если работаешь не в одиночку?

Банда новичков-рецидивистов? Скорее всего, в случае с php эта бригада освоит технологию «ftp», и будет заливать файлы на сервер по-очереди. А в случае с python - высок шанс освоить mercurial или bzr.

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

на сервере нет пайтона, но есть php.

а если наоборот(как у меня)? На сервере есть пайтон, но нет php? Или новичок для своего хелуворлдного сайта выделенный сервер должен арендовать? :P

Смех-смехом, а питон входит в дефолтную поставку большинства (если не всех) актуальных дистров. В отличие от. Другое дело допускает ли хостинг wsgi итп. Нормальный - допускает.

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

ты упустил шанс стать бородатым дядькой и работать в гугле :)

«Как бэ», Гвидо на 17 лет меня старше, когда я в первый класс пошёл, он уже институт заканчивал :D

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

deb

GAE

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

deb

Банда новичков-рецидивистов?

почему? А если новичок с опытным кодером должен работать?

deb

Скорее всего, в случае с php эта бригада освоит технологию «ftp», и будет заливать файлы на сервер по-очереди. А в случае с python - высок шанс освоить mercurial или bzr.

абсолютно монопенисуально. Сначала ftp, потом DVCS, когда поймут, что ftp неудобно. ЯП тут не причём.

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

Сложно представить, чтобы python использовали через ftp. :)

почему? А если новичок с опытным кодером должен работать?

А если опытный кодер не знает php, а знает другой язык?

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

true_admin

а если наоборот(как у меня)?

ага. Так ты и пускаешь разных новичков на свой сервак.

true_admin

Смех-смехом, а питон входит в дефолтную поставку большинства (если не всех) актуальных дистров. В отличие от.

почему «в отличие от»? LAMP тоже всегда есть. Причём ИМХО установить его проще новичку.

true_admin

Другое дело допускает ли хостинг wsgi итп. Нормальный - допускает.

почему-то многие олдовые админы не любят пайтон. Не знаю почему. Если пхп они ставят для новичков, то сами пишут на какой-нить перловки. Ибо Ъ. А ниши для пайтона нет...

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

потому-что вы фанаты. Ну и кроме того, что там у вас, новичков не волнует.

Я вообще python не знаю практически. А php знаю весьма поверхностно.

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

deb

А если опытный кодер не знает php, а знает другой язык?

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

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

И да, в 90% случаях на свежеустановленном linux-дистрибутиве будет python.

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

хм... круто. А зачем тогда пайтон?

Потому что bottle.py довольно прост. Я первых пару нужных мне, но довольно простых проектов, смешно сказать, сделал вообще не зная python, как класс, и видя его до этого только на картинках.

Мне вообще bottle.py случайно попался. Но уже через некоторое время у меня исчез php, за ненадобностью. :)

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

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

А большинство php-разработчиков - на windows, что тоже о многом говорит...

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

deb

А большинство php-разработчиков - на windows, что тоже о многом говорит...

большинство вообще на виндовс. В частности и разработчики. И что?

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

А ниши для пайтона нет...

ещё как есть, иначе бы не было роста популярности. так же и рабочие места появляются. Поисковых запросов у питона всего в два раза меньше чем на пхп: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html (я пока не буду комментировать абсолютную позицию в рейтинге).

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