LINUX.ORG.RU

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


1

1

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

Плюсы:

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

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

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

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

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

- eval()

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


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

Lolwut? Вылезай из анабиоза.

Ramen ★★★★ ()

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

Низкий порог вхождения = много плохих программистов.

Shtsh ★★★★ ()

Потому что всё, что на нем не пишется, скатывается в говно стремительным домкратом. Чтобы писать хорошее пхп надо не есть жирную пищу, не пить крепких напитков, не трахаться, молиться, поститься и слушать радио «Столман Дэйли» на вершине тибетской части силиконовой долины.

stevejobs ★★★☆☆ ()

Плюсы:

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

eval()

Это даже для лора слишком толсто.

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

Чтобы писать хорошее пхп надо не есть жирную пищу, не пить крепких напитков, не трахаться, молиться, поститься и слушать радио «Столман Дэйли» на вершине тибетской части силиконовой долины.

Тщетная суета. В результате всё равно получится говно.

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

Что вы все тролль да тролль, лень на вопрос ответить так и скажи.

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

А что, уже есть исходники контакта для оценки качества кода?

age ()

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

А поцкаль и бейсик в средней школе преподают.

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

Java, C, C++ или вообще любой распространённый язык.

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

А где не так?

djambeyshik ★★★★★ ()

Пп. 2, 3 не являются свойствами языка. Всё, кроме, возможно, п. 3, присуще многим другим языкам.

Ну и вот.

vsemnazlo ()

Вот это -

eval()

было слишком толсто.

pi11 ★★★★★ ()

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

Какой же это плюс, это жирнющий минус, перечеркивающий собой все прочие достоинства любого ЯП!

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

О да, конечно же. Это неоспоримо. Ясен пень. Аргумент железобетонный, броня просто, да...

vsemnazlo ()

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

Когда столкнешся с проектом, написанным школьником на коленке, поймешь почему это зло.

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

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

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

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

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

Это ты еще лиспа не вкурил :)

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

В крупных проектах за нее надо убивать. Особо жестоким образом.

- eval()

А зачем?

Но почему тогда Вконтакте и другие крупные порталы не падают по десять раз в сутки?

Вопреки php ;) Почитай про все костыли в архитектуре пейсбука. Поделку на любой гадости можно довести до вменяемого состояния, только какой ценой?

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

Какой же это плюс, это жирнющий минус, перечеркивающий собой все прочие достоинства любого ЯП!

Ты соревнуешься с ТСом в толстоте?

geekless ★★ ()

Сто первый вброс на эту тему.

Ограниченность, негибкость, отсутствие нормальной стандартной библиотеки, работа с объектами в стиле plain C (через хэндлы/дескрипторы), каша в глобальном пространстве имен, малая скорость исполнения — это все свойства языка и платформы.

Плохие принятые практики написания кода — результат.

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

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

Какие плюсы у динамической типизации по сравнению со статической с автовыведением типов?

note173 ★★★★★ ()

mysql_real_escape_string
setAttribute

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

Теперь понятно ;) В общем, недостаток PHP следует из названия - personal home page. По сему предназначен только для быстрого написания персональных хоумпаг и ничего более масштабного.

puding ()

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

По-меньше слушай троллей и илитарных пистонописателей.

VirRaa ★★★ ()

Имхо, самое кривое в пхп, то что это язык шаблонов (например любая реализации mvc в нем выглядит чужеродно, а спагетти — велкам); а так же каждый гребаный запрос запускает скрипт, инициализирует среду (типа конфиги, классы, объекты всякие управляющие), пыхтит-отрабатывает и наконец-таки завершается (во всех приличных ЯП процесс обработки запросов происходит уже в подготовленном энвайронменте).

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

Какой же это плюс, это жирнющий минус, перечеркивающий собой все прочие достоинства любого ЯП!

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

kranky ★★★★★ ()

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

Миф. ВПСка стоит копейки, куда ещё дешевле?

почему тогда Вконтакте и другие крупные порталы не падают по десять раз в сутки?

memcached и куча прочих костылей.

/thread.

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

Так memcached снимает нагрузку с БД. При чём тут php?

Shtsh ★★★★ ()

- eval()

Ты забыл еще system, exec & passthru.

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

Чтобы писать хорошее пхп надо не есть жирную пищу, не пить крепких напитков, не трахаться, молиться, поститься и слушать радио

Странно. Пишу вполне хороший PHP, ем жирное, пью крепкое… и так далее по списку. Что я не так делаю? :)

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

А еще есть подозрение что у них кластера пых-серверов и дб-серверов

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

например любая реализации mvc в нем выглядит чужеродно

Можно пример? А то, может, я что-то упускаю?

а так же каждый гребаный запрос запускает скрипт, инициализирует среду (типа конфиги, классы, объекты всякие управляющие), пыхтит-отрабатывает и наконец-таки завершается

И в итоге получается быстродействие уровня Django :) Тесты же были…

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

В общем, недостаток PHP следует из названия - personal home page

Эта расшифровка появилась тогда, когда язык уже состоялся :D

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

Кэп?
Но это не отменяет того, что memcached - классная штука.

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

У тебя чистая душа. Ты не убиваешь грудных младенцев и не пьешь их кровь каждое четное число, угадал? Или детей не насилуешь, хотя бы маленьких, тоже вариант.

Или пьешь и убиваешь, но загладил вину жертвоприношениями духу PHP — написал фреймворк какой-нибудь...

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

Напишите мне стек, на котором могут лежать объекты разных типов, без костылей.

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

Могу врать, интересовался этим лет 7 назад

В общем, недостаток PHP следует из названия - personal home page

Эта расшифровка появилась тогда, когда язык уже состоялся :D

ЕМНИП, это первоначальная. А когда язык состоялся - PHP Hypertext Processor.

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

А какие сложности здесь вносит статическая типизация?

При использовании стеков на яве и c++ никаких неудобств не замечаю. Можно возразить, что объекты должны быть приводимы к одному типу — так это и при статической типизации в большинстве языков из коробки. Давай какой-нибудь пример посложнее.

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

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

buddhist ★★★★★ ()

Потому что позволяет копипастить куски не вникая в суть.

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

Ты в курсе сколько Дуров тратит на хостинг? У них серверов побольше чем у Википедии. И таки вконтактник иногда падает что странно учитывая количество серверов.

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

Точно же, ни один сайт-визитка без него не обходится.

Пример хороший, но и в c#/java/scala можно сделать костыли для реализации. А вот производительность и оверхед по памяти на динамических языках выше, возможности по ручной и JIT оптимизации ниже.

Скорость разработки vs. скорость исполнения, как всегда.

note173 ★★★★★ ()


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

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

- eval()



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

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

Так memcached снимает нагрузку с БД. При чём тут php?

А прочие костыли снимают нагрузку с php путем пре-рендера контента.

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

Вот как раз не всегда освобождает от лишних забот. Если тесты написаны, документация хорошая, разбиение на классы/методы/функции логично, то проблем нет. Только вот у средних программистов так не получается.

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

А еще статическая типизация иногда ведет к типизации головного мозга, как в хаскеле :)

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