Как стать автором
Обновить

Комментарии 35

PHP уже другой. 7 лет назад я боролся с magic quotes и другой дребеденью. Сейчас это самый классный язык для веб прототипирования. Экосистема огромная, хороший ООП, много инструментов.
Конечно специфичные вещи лучше сразу писать или потом переписывать на Go/Python, а если много интерактива в браузере — подумать над изоморфами на Nodejs + Vue/React. Тем не менее считаю что сейчас PHP в середине своего золотого века.

простите, а зачем переписывать с быстрого РНР на тормознутый питон?

интересно, а можно ли статически скомпилировать РНР скрипт с интерпретатором и всеми делами в один исполняемый файл (наподобие Go) — была бы тут конкуренция с go или нет?

Питон — проще с датасетами работать. Ну и переписывать это скорее к Go, не знаю что на питон можно переписать чтобы было оправдано по затраченному времени.
Скомпилировать — можно конечно, но смысла мало, да и паковать PHP extensions — такое себе)

На Python можно получить асинхронность из коробки, используя FastAPI, aiohttp или любой другой асинхронный фреймворк. Когда на PHP появятся полностью асинхронные фреймворки и библиотеки для работы с БД — неизвестно.
Соответственно асинхронное приложение на Python никак не может быть медленнее синхронного PHP при тех же ресурсах.

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

С помощью Numba, NumPy, Cython возможно малой кровью поднять скорость вычислений до заоблачных высот. Никто не использует голый CPython для тяжелых вычислений.

Безусловно язык уже давно не тот, что был раньше. И меня это конечно радует. Жаль только, что весомая доля разработчиков все ещё "та". Увеличить бы порог входа в язык, чтобы отсеять лишних)

Жаль только, что весомая доля разработчиков все ещё «та». Увеличить бы порог входа в язык, чтобы отсеять лишних)
Вряд ли это возможно в ближайшее время.
Те кто тянул/тянет серьезный уровень входа — шли/идут в java/c++/c#/kotlin и прочие языки, где всё то что php рождает сейчас как новые удивительные возможности давно уже принято как набившие оскомину стандарты.
Да, часть хороших разработчиков выбрали php по каким-то альтернативным причинам, кто-то как раз из-за простоты и вседозволенности, но опять же — эти параметры из php сейчас уходят, так что этой ЦА php становится менее интересным.
Сделает завтра кто-нибудь комплитор из java допустим в JIT-php вместо javaVM и всё:) Или из kotlin или из c#, благо там это не так что бы большой новостью будет — сделать компилятор во что-то еще.

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

Не очень понятно что вы хотели сказать, но наверное не получилось.
"Более сильные игроки" — это затшелая ява? Где фишки делаются через годы? А если бы на пхп то через неделю ?

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


Отчасти вы правы. Но я не думаю, что можно так однозначно утверждать, что в высокой лиге более сильные команды. И я уверен, что в среде php этих ребят не меньше. Взгляните хотя бы на вендоров symfony, laravel, yii (эти ребята явно знают, что делают). В конце концов, язык — это всего лишь инструмент. И то, что он так активно развивается даёт как раз таки шанс составить достойную конкуренцию (хоть пока и не в полной мере) в это высшей лиге. В конце концов, как там говорилось: "Москва тоже не сразу строилась".

НЛО прилетело и опубликовало эту надпись здесь

Извините, но среднестатистическому пхп разработчику при взгляде на ларавел те же самые рвотные позывы. Так что )

При этом код на Lumen с Doctrine вместо Eloquent уже будет приятно выглядеть.

Когда то мудрил symfony с eloquent )

Конечно, не все из перечисленных решений идеальны. Я не хочу поднимать спор, но говоря про eloquent, вы прежде всего должны говорить о паттерне active record в целом. К тому же laravel не заставляет вас использовать только его. Прикрутите доктрину, да хоть используйте фасад DB, это ваш выбор и только мастеру решать, как использовать инструмент. И конечно, все мы понимаем что java как язык тоже не эталон качества как и код отдельно взятых джавистов.

"Это ваш выбор", да всегда так говорят )
А По факту надо с active record работать хоть и не хочется.

И конечно, все мы понимаем что java как язык тоже не эталон качества как и код отдельно взятых джавистов.

Выкинь это из головы. Джава — СССССССАНАЯ хуита. Переубедите )

Блин, хотел плюсануть и промахнулся. И отменить нельза :(

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

А как вы предлагаете перевести файберы? Нити? Это threads. Волокна? Вот только не хватало...

Потоки, вообще то. Хоть бы открыли ваш любимый гугл и нашли контекст.
файберы — что это.
Вы же пишите не "энумы", а "перечисления".
"корутины" — это вообще за гранью добра и зла. Она так и называется "сопрограмма". И тд и тп. Хорош уже мусорить!
Хоть заминусите в хлам… Но когда мусор и не желание разобраться в вопросе в голове то оно и в коде и вообще, в жизни.

Вообще-то fibers это именно волокна (пруф), а потоки — это streams, совсем другое.


Если немного подумать, то легко вспомнить "фибергласс = стекловолокно", например, ну или правда Погуглить. Так что минусят вас заслуженно, хотя бы просто за стилистику общения ))

Routine — это не «программа», а «определенный порядок». Соответственно, ваша «сопрограмма» как Coroutine — это бред сивой кобылы в переводе с.
Выучите сначала сами свой собственный язык.
А может быть вам самим русский язык выучить?

То, что в IT «subroutine» на русский язык всегда и везде (кроме уж совсем клинических случаев невежества) переводится как «подпрограмма», вы, очевидно не знаете. И то, что термин «сопрограмма» — в качестве эквивалента английского «coroutine» — появился в русском языке задолго до вашего рождения, тоже не в курсе.

Сопрограммы в языках программирования появились 62 года назад и в русском языке всегда назывались именно сопрограммами. А «корутины» возникли несколько лет назад — стараниями неучей, бросившихся переводить английские материалы о вошедших в моду сопрограммах.
Т.е. включить мозги и подумать, что между «routine» и «программа» все таки есть разница, вам груз вашего опыта бухгалтерии на фортране не позволяет?
Вам про устоявшуюся в русском языке десятилетия назад терминологию — которую вы не знаете и кичитесь своим незнанием. А вы в ответ про «груз опыта бухгалтерии на фортране». Поток демагогии и ни слова по существу вопроса.
Знаете, когда старику нечем гордиться — он гордится возрастом. Хотя в этом нет никаких поводов для гордости. Продолжайте дальше гордиться вашей дремучей терминологией. Dixi.
Нахамили — и в кусты. И, очевидно, гордитесь тем, что только на хамство и способны.

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

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

А можете пожалуйста дать направление, почему это плохо на виртуальном хостинге?

Обычно на виртуальных хостингах одновременно работает несколько сайтов, под которые не получится создать единый файл прелоадинга. Да и виртуальный хостинг скорее всего не позволит менять эту настройку

PHP развивается в однозначно верном направлении. Единственное — непонятно, почему это развитие — какая-то по сути мимикрия под другие языки. Не видно никаких собственных оригинальных идей в языке, которые и разработчикам бы давали стимул оставаться на php долгое время, и давали бы какие-то сильные аргументы в пользу php при выборе целевой платформы. Те же fiber'ы — в лучшем случае будут калькой с Golang, Crystal и Julia, короткие замыкания похожи на те, что в Julia, именованные аргументы — ну понятно, уже почти везде есть… В результате получается такой язык «подсмотри всё лучшее у других», но это лучшее в нём появляется с запаздыванием ровно по той причине, что это заимствование, а не оригинальная идея, которая бы «витала в воздухе» и была бы реализована в php и других языках примерно в одно и то же время.
При этом не заимствуются какие-то разумные вещи, которые давно у всех есть, но требуют кардинальной переработки концепции языка. В том же Crystal (ну и, понятное дело, в Ruby) «всё есть объект» и там ООП — ключевая органичная концепция, так что даже если разработчик пишет в «процедурном стиле» — в действительности он всё равно оперирует объектами. Для php же сбоку сторонними разработчиками приделываются, например, обёртки над массивами для того, чтобы массив был нормальным объектом, со свойствами и методами и не нужно было пользоваться чем-то явно legacy в 10-м поколении вроде функций array_*.
С другой стороны, конечно, в таком подходе с плагиатом чужих решений есть и существенный плюс: php консолидирует интересные возможности других языков, при этом не наступая на их грабли: классы очень похожи на реализацию в Java, но без многословности и прямолинейной принудиловки относительно использования ООП и только его, в php теперь завезут fiber'ы, но язык избавлен от маразма Golang в части ООП, которого нет, но кому-то кажется, что он там есть, в php есть мощные средства достаточно низкоуровневой разработки, которых нет и никогда не будет в julia (хотя наверное и мультидиспатчинга в php не стоит ждать когда-либо :)).
Сам я очень внимательно слежу за развитием языка и очень рад тому, что такие «человекопонятные», дружелюбные языки как php и тот же crystal развиваются — в пику откровенно людоедским вещам типа Rust'а.
непонятно, почему это развитие — какая-то по сути мимикрия под другие языки

Странно что непонятно, это же буквально вся история php от самого истока. Сначала php писали сишники, они сделали strtok, strrchr и остальные привычные сишникам штуки. И неймспейсы сделали как сишники, через подчёркивание. Потом заметили что в перле удобнее, и сделали http_get_vars как в перле, и ООП сделали как в перле, на хеш-таблицах. Потом весь мир массово ушёл в ООП, и джава была его путеводной звездой. Сделали ООП как в джаве, с public/protected/private и __constructor, и даже с неймспейсами, хотя неймспейсы уже были на подчёркиваниях. Наверняка ещё что-то из джавы, но я не очень её знаю. Потом гугл сделал v8 и весь мир начал писать на джаваскрипте, и стало понятно что в php срочно нужны замыкания, даже несмотря на то что весь IO уже блокирующий. Теперь весь мир понял что без типов мы делаем не здания а пластилиновые домики, и в php тоже решили завозить типы. Но поскольку компайл-тайма в php нет, то «типы» приходится проверять в рантайме. Ну по перформансу сильно не ударили, потому что его и так никогда не было.
И так происходит вся история php, не понимаю вашего удивления появлению сопрограмм.

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

непонятно, почему это развитие — какая-то по сути мимикрия под другие языки. Не видно никаких собственных оригинальных идей в языке
А зачем? Язык программирования — не приключенческий роман, а прикладной инструмент. Любая «оригинальная идея не как у всех» — это дополнительная сложность в работе, и если она не окупается бОльшими положительными эффектами, это для инструмента только минус.

Чёта не понято. Так будут поддерживать Дженерики хотя бы без проверок, чисто синтаксически или не будут?
Не понял какое мышление должно на эту тему поменяться у людей? Общество будет ждать последнего несчастного сумасшедшего, чтобы тот поменял свое мышление.
Типа из-за того что люди хотят динамическую типизацию, так изза этого даже статическую типизацию делать не будут?

Зарегистрируйтесь на Хабре, чтобы оставить комментарий