169 похожих чатов

Попробовал тут на досуге пхп. Это как раз тот случай,

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

Но если по пунктам, то вот мои впечатления:
1. Настройка и установка php - это весьма своеобразная история. php.ini - это потрясающее изобретение, сложно найти настройки ЯП или сервера хуже.
2. Самое смешное, что по умолчанию php.ini ставится совсем бессмысленный и со всем отключенным. У него даже не хватает настроек по умолчанию, чтобы запустить пакетный менеджер.
3. То, где может искаться php.ini - это целый здоровый список в документации с целой кучей вариантов в зависимости от ОС и сервера.
4. Сюда же идёт тот факт, что php всегда намертво связано с веб-сервером и не может толком использоваться вне его. Так что в этом плане его даже сложно назвать полноценным языков программирования, скорее просто скрипт для уже готового веб-сервера.
5. Так что в итоге всегда получается взрывная смесь между настройками веб-сервера и настройками интерпретатора. Так что в сложных случаях веселье обеспечено.
7. Ещё важно заметить, что интерпретатор в общем случае живет в рамках одного http запроса.
8. Это значит, что реализация любых кэшей, веб-сокетов, джобов и тому подобного сразу же превращается в удивительный гемморой.
9. Долгое время из-за этой особенности авторы пхп просто не заморачивались с утечками памяти, т.к. все равно он сдохнет после запроса. Поэтому любые долгоиграющие процессы на пхп - были миной замедленного действия.
10. Точно так же они не заморачивались с обработкой ошибок: привет error_reporting, @ и тому подобный бред. Это, наверное, один из немногих распространенных языков, для которого нормально проглатывать ошибки.
11. Сам язык не менее удивительный и радует сюрпризами повсюду.
12. Начну с простого: такое ощущение, что авторы специально каждый раз выбирали наиболее непредсказуемых синтаксис для новой фичи, чтобы удивить разработчиков.
13. Имена переменных начинаются с $. Есть ->, но указателей нет. Есть касты через (boolean), но статически определенных типов у переменных нет. Неймспейсы задаются через \. Замыкаемые переменные обозначаются через use и т.п. и т.д.
14. Стандартная библиотека одна в своем роде. Умудряется сочетать в себе все возможные стили именования функций. Автор языка сам признает, что выбирал названия вначале так, чтобы хорошо работала хэш таблица для хранения функций с хэшем в виде длины строки (!!!)
15. Сюда же относится уникальный phpшный array, который так и не определился массив ли он, список или хэш таблица.
16. Есть подобные же вопросы о неконсистентности и к местному ООП. Зачем-то в динамический язык скопировали ООП из джавы. Зачем, почему, непонятно. А потом, кстати, ещё и трейты добавили, но со своим, уникальным стилем.
17. При этом местную стандартную библиотеку в процедурном стиле никто и не подумал менять или хотя бы сделать обертки для неё.
18. НО! Есть (ВНЕЗАПНО) набор коллекций в ООП стиле. Опять-таки, почему, зачем, вопрос открытый.
19. В какой-то прекрасный момент авторам пришла идея добавить в язык типизацию. Конечно же сделали они её криво.
20. Типы доступны только для аргументов функций (c 5й версии) и с 7й версии для возвращаемого значения.
6. Надо ли напоминать о том, что даже номера версий у него странные и 6й версии не было в принципе?
⓺. Надо ли при этом напоминать о том, что 6ую версию они не выпустили, потому что не справились с планируемой поддержкой юникода в ней?
21. Причем поддержка типов вводилась очень постепенно. Вначале были только классы, потом стали потихоньку добавлять примитивы. Причем, в языке, конечно же, нет дженериков и даже типа для функции, кроме callable.
22. Долгое время, конечно же, не было пакетного менеджера, но в итоге добро всё же победило.

3 ответов

17 просмотров

легаси само себя не будет поддерживать

и все? пффф https://wtfjs.com/

> Сам он настолько экзотичный, что я скорее отнес бы php к эзотерическим языкам программирования и поставил где-нибудь рядом… Я бы отнёс автора к экспертам

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта