1.1, DEF (?), 19:03, 08/12/2022 [ответить] [﹢﹢﹢] [ · · · ] [↓] [к модератору]
| +/– |
PHP становиться все лучше и лучше. Постепенно избавляется от динамической типизации и становится строгим с жесткой типизацией. Это плюс.
| |
|
2.16, Аноним (16), 19:31, 08/12/2022 [^] [^^] [^^^] [ответить] [к модератору]
| +3 +/– |
>Постепенно избавляется от динамической типизации и становится строгим с жесткой типизацией.
Ну как жёсткой, сверху тайпскрипт, снизу anytype.
А поклонники тайпскрипта, конечно, наяривают - чому-то на настоящую статическую типизацию их не берут, вот и изгаляются над и так уже изуродованным франкенштейном.
| |
2.56, Аноним (56), 20:57, 08/12/2022 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
Где ты там увидел строгость, болезный? Язык как был галимой динамической императивщиной, таким и помирает. Чтобы узнать, что такое строгость надо Clean потыкать.
| |
|
3.88, DEF (?), 22:11, 08/12/2022 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| +5 +/– |
PHP не умирает, его доля почти 80% веба. Был динамическим, становится статическим со строгой типизацией. Что такое стогость, я лучше тебя знаю, эникейшик. Выздоравливай.
| |
|
|
|
|
3.57, Аноним (56), 20:58, 08/12/2022 [^] [^^] [^^^] [ответить] [к модератору]
| –6 +/– |
Плюсы и похапе примерно одного уровня шлак, только последний столько вреда не принёс ввиду ограниченности области применения.
| |
|
|
3.110, Инженегр (?), 23:28, 08/12/2022 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| –4 +/– |
struct A {};
struct B {};
union C
{
A a;
B b;
};
void foo(C * c);
и вcё, не надо никаких невнятных символов, умных терминов, код максимально читаем, ошибку в нём сделать просто невозможно. А вы продолжайте писать на пыхыпэ.
| |
|
4.199, Аноним (199), 12:41, 09/12/2022 [^] [^^] [^^^] [ответить] [к модератору]
| +2 +/– |
ты пытался сделать function bar(A|B|null $entity)
но даже это не получилось.
Можешь не пытаться делать Intersection Types в языке без интерфейсов и наследования, учитывая что даже простое объединение не смог
| |
|
3.133, Кир (?), 01:22, 09/12/2022 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +1 +/– |
using namespace std;
variant<int, string, float> x;
x = "foo";
/*....*/
if(holds_alternative<string>(x)) { /* в x -- строка */
cout << get<string>(x) << endl;
}
| |
|
|
|
6.228, Аноним (228), 21:59, 09/12/2022 [^] [^^] [^^^] [ответить] [к модератору]
| +1 +/– |
php компилирует пофайлово, и понятия не имеет о взаимосвязях между кодом, расположенном в разных файлах. Так что кроме как в райтайме, вариантов и нет.
Впрочем, если пришлось связаться с php, статические анализаторы спасают.
| |
|
|
|
|
2.164, Аноним (164), 09:35, 09/12/2022 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +4 +/– |
Опеннет эксперт по программированию первый раз в жизни увидел объединение и пересечении типов и сделал единственный, доступный на его уровне компетенции вывод.
| |
|
|
2.43, BrainFucker (ok), 20:28, 08/12/2022 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| +/– |
Так его уже переименовали в "PHP: Hypertext Processor". Но в данном случае для первой буквы могли бы что нибудь поприкольней придумать, "professional", например, и пофиг что к многих бомбанёт с этого ))
| |
|
|
|
|
4.194, Gedweb (ok), 11:41, 09/12/2022 [^] [^^] [^^^] [ответить] [к модератору]
| +1 +/– |
А вот это вопрос по существу. Новые функции называют для единообразия, но ничто не мешало вынести в отдельное пространство имён их изначально. Как с этим позже поступл, например, создатель модуля RdKafka.
| |
|
|
|
|
4.205, Без аргументов (?), 13:13, 09/12/2022 [^] [^^] [^^^] [ответить] [↓] [↑] [к модератору]
| +/– |
GTK2:
void g_signal_handlers_unblock_by_func( gpointer object, GCallback func, gpointer data);
button = gtk_button_new_with_label ("button,");
NTDLL:
NtAdjustTokenClaimsAndDeviceGroups
NtAlpcImpersonateClientContainerOfPort
NtWaitForWorkViaWorkerFactory
| |
|
5.223, Аноним (222), 19:46, 09/12/2022 [^] [^^] [^^^] [ответить] [к модератору]
| +2 +/– |
Так этот GTK2 спокойно маршалируется с помощью GI в пердсставление с делимитерами в тех языках, которые их поддерживают.
| |
|
4.207, Без аргументов (?), 13:21, 09/12/2022 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
Зря ты так про эксперта, я не теоретик, у меня стаж с детства, интернетов в моем детстве не было, я вместо анимэ уже пытался программировать на VBA/VBS и батники делал, что было в винде 95, а затем XP, и на макроассемблере с WINAPI тоже, и на делфи. Это все еще во время школы лишь, без нормального инета.
| |
|
|
2.174, Аноним (174), 09:44, 09/12/2022 [^] [^^] [^^^] [ответить] [↓] [↑] [к модератору]
| –2 +/– |
Поскольку корни названий заходят в сишечку, на библиотеках на которой пых и собран, а в сишечке с названиями в силу жёсткой естественной фрагментации с именованием полнейший бардак, удивляться тут нечему. И ни у кого, кроме хипстеров, привыкших к полсотне однострочников в зависимостях, это особого баттхёрта не вызывает. Заглянуть в хэндбук в случае чего - дело 5 секунд, дальше часто встречаемое запоминается.
| |
|
3.224, Аноним (222), 19:47, 09/12/2022 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
>Поскольку корни названий заходят в сишечку, на библиотеках на которой пых и собран, а в сишечке с названиями в силу жёсткой естественной фрагментации с именованием полнейший бардак, удивляться тут нечему.
Можно удивиться долбанутости мейтейнера привязок.
| |
|
2.175, Аноним (164), 09:45, 09/12/2022 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
php движется в сторону java где принято давать длинные идентификаторы объектам. Ограничения типов вводят, магические методы отключают.
| |
|
|
|
|
4.48, Аноним (27), 20:40, 08/12/2022 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| –1 +/– |
> 90% всего вэба это вордпресс
причём появляется этот вротпресс в новостях исключительно в негативном смысле.
| |
|
5.145, Chlen22sm (?), 03:28, 09/12/2022 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +1 +/– |
Человек хорошее воспринимает как должное. Поэтому большинство отзывов о товарах и услугах - негативные. Туда же и новости. Открой любой новостной телеграм канал - сплошной негатив.
| |
|
4.60, Аноним (56), 21:02, 08/12/2022 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
И какое отношение имеет вордпресс к новичкам в пхп? Вордпресс это софт, который пилит кучка наркоманов, "программистов на вордпресс" не существует.
| |
|
|
|
1.9, Аноним (9), 19:24, 08/12/2022 [ответить] [﹢﹢﹢] [ · · · ] [↓] [↑] [к модератору]
| +8 +/– |
> Добавлены отдельные типы "true", "false" и "null"
Я на пхп никогда не писал, но это выглядит как достижение века!
| |
|
2.47, Аноним (47), 20:39, 08/12/2022 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| +3 +/– |
>>> как достижение века! <<<
В язык Си (C23) вон тоже добавили полноценный bool, false, true, - больше не надо использовать <stdbool.h>, а false и true это больше не макросы, - вот это я понимаю достижение:)
| |
|
3.49, Аноним (9), 20:47, 08/12/2022 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| –1 +/– |
>>>> как достижение века! <<<
> В язык Си (C23) вон тоже добавили полноценный bool, false, true, -
> больше не надо использовать <stdbool.h>, а false и true это больше
> не макросы, - вот это я понимаю достижение:)
Блин точняк! Я и забыл, как сам подключал stdbool на сишечке...
| |
|
4.73, Без аргументов (?), 21:15, 08/12/2022 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| +4 +/– |
Вам, кто называет "сишечкой" не понятно, что Си создавался для того, чтобы не писать на ассемблере, и чтобы можно было компилить более менее кросс-железно. Его правильней называть языком среднего уровня. В железе нет типа bool, там есть 8/16/32/64-битные регистры, в которых хранятся числа или адреса, а также битовые флаги в регистрах не общего назначения, которые меняются через загрузку в регистр общего назначения и выгрузку обратно, и больше ничего. Задача Си преобразовать алгоритмические читаемые глазами операции в машинный код конкретного процессора. Rust же неоправданно перегружен кучей всяких спецсимволов, осложняющих чтение, что приведёт к ошибкам по невнимательности.
| |
|
5.75, Аноним (47), 21:20, 08/12/2022 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| +3 +/– |
>>> Rust же неоправданно перегружен кучей всяких спецсимволов, осложняющих чтение <<<
ИМХО, скоро в Си будет не лучше, - ибо товарищи стандартизаторы они такие:)
| |
5.99, пох. (?), 22:41, 08/12/2022 [^] [^^] [^^^] [ответить] [↓] [↑] [к модератору]
| +1 +/– |
Меня до сих пор изумляет слепота разработчиков, выдумавших в нем совершенно лишние платформозависимые типы, завязавших ВСЕ на sizeof(char) из-за которого нельзя было перейти на юникод без адского трэша, просто объявив что в этом компиляторе char двухбайтный (задуман он тоже, разумеется, был как платформозависимый), и выбросивших тип byte - единственный тип в bcpl, который как раз был в этом месте сделан правильно.
> Rust же неоправданно перегружен кучей всяких спецсимволов, осложняющих чтение, что приведёт к
> ошибкам по невнимательности.
Не приведет. Там и внимательно написанный код не всегда компилируется, пока не обвешают unsafe.
| |
|
6.131, Аноним (128), 01:16, 09/12/2022 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| +/– |
>объявив что в этом компиляторе char двухбайтный
wchar_t к вашим услугам. Но лучше не надо. Используйте utf-8 и не выпендривайтесь.
| |
|
7.162, Аноним (47), 09:21, 09/12/2022 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Я бы сказал иначе, - если вам нужно работать "по-серьёзному" со строками?, - выбирайте другой язык программирования!
| |
|
6.230, Аноним (228), 22:57, 09/12/2022 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
Попутал char с трамвайной ручкой. :-)
sizeof(char) == 1 по определению. Да, уместнее его было назвать byte, но в 71-м году как-то про юникод не подумали :-)
sizeof('c') - тут, да, ерунда получилась, в С++ исправили. Но это не char, это character literal.
| |
|
|
6.115, Капитан Очевидность (?), 23:55, 08/12/2022 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| +/– |
>>Си есть структуры. И это, согласитесь, куда более высокоуровневая штука,
Нет, структуры как и базовые типы, это самая основа, и они ближе к железу.
Даже древние процессоры, хоть как нибудь, аппаратно поддерживали работу со структурами,
ибо они требовались изначально для работы с периферией.
Абстракциия от аппаратной части - это Json и аналоги.
| |
|
7.121, Аноним (9), 00:53, 09/12/2022 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
>>>Си есть структуры. И это, согласитесь, куда более высокоуровневая штука,
> Нет, структуры как и базовые типы, это самая основа, и они ближе
> к железу.
> Даже древние процессоры, хоть как нибудь, аппаратно поддерживали работу со структурами,
> ибо они требовались изначально для работы с периферией.
> Абстракциия от аппаратной части - это Json и аналоги.
Если структуры -- это самая основа, то bool -- это основа основ, потому что это просто число. А работу с числами поддерживают любые процессоры, которые только можно представить.
| |
|
6.201, Без аргументов (?), 12:57, 09/12/2022 [^] [^^] [^^^] [ответить] [↓] [↑] [к модератору]
| +/– |
Почему структуры в Си не равно этим вашим JSON и объектам напримере порта микроконтроллера:
у порта как любого физического устройства есть адрес, по которому физический механизм памяти определяет, куда мультиплексировать (грубо говоря соединить как телефонная станция) сигнальные линии шины с устройством передачи — регистром АЛУ, физических линий. Условно, 0x00001000;
железно, порт внутри содержит регистры, они адресуются инкрементом базового адреса регистра. т.о. шагая вперед с интервалом в 32 бита, 0x00001020, мы можем пройти по каждому регистру.
Структура же просто повторяет физическую структуру порта. И поле регистра структуры сразу адресует в нужное место в рамках адресов регистра.
| |
6.237, Аноним (174), 09:24, 10/12/2022 [^] [^^] [^^^] [ответить] [↓] [↑] [к модератору]
| –1 +/– |
В число - однозначно. В машинное - вообще не однозначно и не очевидно.
Что такое ваш конкретный bool - 8 бит, 16 бит, 32 бита, 64 бита?
Или быть может оно вообще побитово в слово упаковано по 64 штуки в слове?
| |
|
7.243, Аноним (9), 13:20, 10/12/2022 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> В число - однозначно. В машинное - вообще не однозначно и не
> очевидно.
> Что такое ваш конкретный bool - 8 бит, 16 бит, 32 бита,
> 64 бита?
> Или быть может оно вообще побитово в слово упаковано по 64 штуки
> в слове?
А какая разница программисту? Пусть компилятор решает. А на счёт упаковывать -- это уже что-то более сложное. Я говорю про самый примитивный bool, который может хранить два значения. Причём в числовом виде обычно 0 -- это false, а любое другое значение -- true. Это ведь не что-то высокоуровневое, не так ли?
| |
|
|
7.255, Аноним (9), 20:57, 10/12/2022 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| +/– |
Если для тебя структура является синтаксическим сахарком над смещениями указателя, то синтаксическим же сахарком для тебя должен являться и тип bool (гораздо более простым и очевидным сахарком кстати). Но если для тебя bool -- это что-то из области ООП, то продолжай программировать на сишечке. До более серьёзных языков ты пока не дорос.
| |
7.261, Аноним (174), 00:31, 11/12/2022 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
На самом деле у того же x86 есть операция bt (да и в z80 даже уже была - bit), которая проверяет конкретный бит. Поэтому насчёт отсутствия в машине я бы так огульно не того.
| |
|
|
|
6.203, Без аргументов (?), 13:03, 09/12/2022 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Это все простейшие операции, которые разрулит компилятор. Другое дело там, где нужно параллелить, работать с векторами. Например, операции DSP, делающие несколько арифметических действий за один такт.
| |
|
5.192, Сшчка (?), 11:31, 09/12/2022 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
- "там есть 8/16/32/64-битные регистры, в которых хранятся числа или адреса"
Удивительно, но адреса это тоже число, не путайте "сишечников", а то подумают что принципа однородности не существует по Нейману ... пардон ... фон Нейману
| |
|
6.204, Без аргументов (?), 13:07, 09/12/2022 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Есть еще гарвардская архитектура, где адреса вообще отдельно. И физически адреса подчинены выравниванию памяти под удобство мультиплексирования бит по битности шины.
| |
|
7.258, пох. (?), 23:09, 10/12/2022 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> Есть еще гарвардская архитектура, где адреса вообще отдельно.
Только компьютеров нет. Странно, почему.
(нет, совсем не странно)
| |
|
|
|
4.76, Без аргументов (?), 21:23, 08/12/2022 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
Мне самому непонятно, зачем изобретать (всё равно тормозные и жрущие ОЗУ) GNOME 4x на языке среднего уровня, а также писать криптографические функции, где акцент на математическом алгоритме, ассемблерные вставки же под инструкции процов вроде AES256, SSE4 в нормальных языках можно организовать тоже (но я не в курсе, используются ли они вообще во всяких openssl/libcrypto).
| |
|
3.62, Аноним (56), 21:04, 08/12/2022 [^] [^^] [^^^] [ответить] [↓] [↑] [к модератору]
| +3 +/– |
Слушай, языку с узкой жестко определённой применимостью (ядра ОС и драйверы) это простительно. А вот языку высокого уровня для ламеров - нет, это позор.
| |
|
4.148, Аноним (147), 04:12, 09/12/2022 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Что такое «жестко определенная применимость» кем это она жестко определенна? Пишите на чем удобно и всего делов. Главное ж результат
| |
|
5.181, Аноним (56), 09:53, 09/12/2022 [^] [^^] [^^^] [ответить] [к модератору]
| +2 +/– |
Вот из-за "главное результат" имеем электрон на десктопе и нижайшее качество софта за всю историю индустрии. Потому что вот такие с подходом "пилю на чем хочу законом не запрещено" не умеют в проектирование.
| |
|
|
3.146, Chlen22sm (?), 03:34, 09/12/2022 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +3 +/– |
> C23
Не нужно. Си ценят именно как стабильный язык, его реализацию "ISO/IEC 9899:1990" используют в военке, космонавтике, атомных станциях, прочих критически важных и отказоустойчивых системах. Говорю как человек, который знает об этом не по наслышке.
| |
|
4.173, Аноним (47), 09:42, 09/12/2022 [^] [^^] [^^^] [ответить] [к модератору]
| +1 +/– |
>>> Не нужно. <<<
Ну, что вы так сразу:( Например, там в <limits.h> добавили полезные макросы, - мелочь а приятно:)
| |
|
|
2.229, Аноним (229), 22:29, 09/12/2022 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
В Common Lisp'е nil и t всегда были типами. И одновременно значениями своих типов. nil так ваще был единственным значением типа nil, а вот тип t, помимо t, включал в себя значения всех других типов. Но это лисп, ему можно, потому что там nil и t заодно ещё и символы, и каждый evalится в себя. Да и вообще это прям таки философия лиспа, засунуть лисп в лисп, чтобы можно было evalить, evalя, он заточен под это. А вот как php переживёт это безумие...
Но я к тому, что нет ничего нового под Луной.
| |
|
1.10, Аноним (5), 19:25, 08/12/2022 [ответить] [﹢﹢﹢] [ · · · ] [↓] [↑] [к модератору]
| +2 +/– |
Кто-то может объяснить чего именно не хватало в пхп что он мутировал в такую мерзоту? Он же прекрасно выполнял всё для чего был создан.
| |
|
|
3.21, Аноним (5), 19:38, 08/12/2022 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| –1 +/– |
но так он же и создавался для того чтобы шаблончики разворачивать. Давайте блин из стула язык программирования делать
| |
|
|
3.83, Аноним (5), 21:41, 08/12/2022 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
ну не соглашусь. когда появился модуль к апачу, альтернатив, чтобы наляпать по быстрому говносайт, на сколько я помню, небыло приличных
| |
|
2.101, пох. (?), 22:44, 08/12/2022 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| –1 +/– |
> Кто-то может объяснить чего именно не хватало в пхп что он мутировал в такую мерзоту?
Языка программирования.
> Он же прекрасно выполнял всё для чего был создан.
Да, но шаблоны страничек на адовой смеси html и интерпретируемого скрипта уже лет двадцать как вышли из моды.
| |
|
|
4.259, пох. (?), 23:13, 10/12/2022 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> Можно подумать, что на PHP 8.2 нельзя написать адовую смесь html и
> интерпретируемого скрипта...
можно (правда, уже сложнее) но речь о том что на нем еще можно просто программы писать, довольно большие и сложные - а вот на любимом тобой php4 - невозможно, увы.
При этом хомпейджи с котенком уже мало кому нужны, котиков принято постить в мордокнижечку. А вот мордокнижечка - это уже та самая сложная и большая программа, ни разу не шаблон вперемешку с кодом.
| |
|
5.262, Аноним (174), 00:34, 11/12/2022 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Пачимму невозможно то?
Как на классических сях, без всяких объектов, процедурами и передачей структур (ООП так-то по сути всего лишь мелкий сахар над этим щщастьем).
Просто многие разучились.
| |
|
6.269, пох. (?), 20:23, 11/12/2022 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> Пачимму невозможно то?
> Как на классических сях, без всяких объектов, процедурами и передачей структур (ООП
> так-то по сути всего лишь мелкий сахар над этим щщастьем).
> Просто многие разучились.
просто проекты стали - большие. У той pdp7 оперативной памяти было 32k (правда, не байт а двухбайт по-моему)
Для нее процедур и передачи структур хватало.
А для какой QT6 - уже нет.
| |
|
|
|
|
|
1.20, Аноним (13), 19:37, 08/12/2022 [ответить] [﹢﹢﹢] [ · · · ] [↓] [↑] [к модератору]
| –1 +/– |
напоминаю, что ПХП ("персональная домашняя страничка") - это не язык программирования, а шаблонизатор. Доказательство: как и в любом другом шаблонизаторе, "исходный код" по умолчанию просто выводится в stdout или похожий стрим. А чтобы начать использовать конструкции шаблонизатора, нужно явно это пометить через <? или похожую закорючку. Если переименуете README.txt в README.php, у вас получится правильная "программа" на пыхе. Потому что в ней не окажется <?-закорючки. Хелловорлд на пыхе выглядит не так:
<?php echo 'hello world';
Потому что на шаблонизаторе хелловорлд выглядит так:
hello world
| |
|
|
3.24, Аноним (13), 19:44, 08/12/2022 [^] [^^] [^^^] [ответить] [к модератору]
| +1 +/– |
ага, и на си, и на перле. Пых - это адская мешанина всех вышеозвученных языков. Гугли "PHP: a fractal of bad design"
| |
|
4.61, Аноним (61), 21:02, 08/12/2022 [^] [^^] [^^^] [ответить] [к модератору]
| +3 +/– |
Стоит отметить что по прошествию 10 лет, большинство аргументов из оригинальной статьи потеряло актуальность — функциональность была добавлена, либо исправлена
| |
|
5.95, Аноним (56), 22:37, 08/12/2022 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Не потеряла, семантика и дизайн остались такими же отстойными. Впрочем, если бы создатели пхп могли бы писать хорошо, то они бы не были создателями пхп. Такая вот селя ви.
| |
|
6.127, 5к (?), 01:06, 09/12/2022 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| +/– |
> Впрочем, если бы создатели пхп могли бы писать хорошо
причем тут пхп ? кто вообще может написать крупный проект хорошо и сразу?
| |
|
7.184, Аноним (56), 09:59, 09/12/2022 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Дело не в хорошо и сразу. Дело блин в изначальном грамотном проектировании и дизайне языка. Если строить с самого начала кривулину, то её потом патчами не допилишь без пересмотра основ. А строили именно кривулину, потому что никакой серьёзной теории за пхп не стоит.
| |
|
6.135, Аноним (61), 01:41, 09/12/2022 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
К сожалению, обратная совместимость требует постепенных итеративных изменений.
Иначе будет как с третьепитоном — зачем переписывать половину приложения с 2.х на 3.х, если можно переписать всё на другом языке, где не будет таких сложностей с обратной совместимостью.
| |
|
7.275, пох. (?), 13:35, 12/12/2022 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> К сожалению, обратная совместимость требует постепенных итеративных изменений.
Так нет же ж обратной совместимости... и не было никогда (помним foreach, ненавидим)
| |
|
|
|
|
|
2.31, Аноним (27), 19:59, 08/12/2022 [^] [^^] [^^^] [ответить] [↓] [↑] [к модератору]
| +/– |
> это не язык программирования, а шаблонизатор
> <?php echo 'hello world';
уж лучше на перле шаблонизировать
print <<EOF;
hello world
EOF
| |
|
|
4.232, Наноним (?), 01:45, 10/12/2022 [^] [^^] [^^^] [ответить] [к модератору]
| –1 +/– |
PHP - это если бы дегенерат не осилил Perl и максимально его изуродовал. Именно так PHP и родился, если почитать историю происхождения. До некоторых фишек Perl'а PHP дорос только через десяток лет.
Сама по себе идея совмещать разметку и код была провальной с самого начала. До многих это быстро дошло, но PHP-хомяки жрали это дерьмо долгие годы, пока не переизобрели колесо в виде всё тех же шаблонизаторов.
И к чему в итоге пришёл PHP? К самоотрицанию. Теперь никто не пишет на PHP в том стиле, для которого он был придуман.
| |
|
|
|
1.25, anonbrain (?), 19:45, 08/12/2022 [ответить] [﹢﹢﹢] [ · · · ] [↓] [↑] [к модератору]
| +3 +/– |
На сайте указано что была повышена производительность, но в шортрелизе ниже об этом не было ни слова. хоть пример бы какой завезли. в целом тенденция печальная. они делают упор на строгую типизацию, расширенные комментарии, атрибуты через спецкоменты и так далее. знаете какое это отношение имеет к прогрессии в языке ? я тоже не знаю. китайцы из swoole делают бомбу, но сам php в этом направлении пока не спешит двигаться. весь синтакс уже был доведён до отличного состояния (позаимствован у плюсов), но с момента как начали происходить взаимствования у js... что то пошло не так. надеюсь сообщество обратит внимание на многопоточность, асинхронное выполнение, оптимизацию и на улучшение jit который в некоторых сценариях вместо прироста производительности обеспечивал её спад вплоть до нестабильных исключений.
| |
|
2.98, тоже Аноним (ok), 22:40, 08/12/2022 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| +/– |
> на многопоточность, асинхронное выполнение, оптимизацию и на улучшение jit
В пыхе, который применяется для скриптов, обязанных как можно быстрее отработать и умереть?
Копайтесь уже в своей ноде и уберите испачканные джаваскриптом руки от нормального бэкенда.
| |
|
3.233, Наноним (?), 01:50, 10/12/2022 [^] [^^] [^^^] [ответить] [к модератору]
| –3 +/– |
Ты хотел сказать "как можно быстрее умереть", потому что PHP точно не тот язык, который когда бы то ни было стремился к оптимизации по скорости. Вот если бы они вместо бесконечного посыпания сахаром действительно ускорили его, то PHP можно было бы простить всё.
| |
|
4.239, Аноним (174), 09:28, 10/12/2022 [^] [^^] [^^^] [ответить] [к модератору]
| +2 +/– |
На этот счёт уже в 5.6 было сделано очень многое. В 7 ещё больше. В 8 теперь есть JIT, который реально решает на ряде вещей.
| |
|
|
2.182, Аноним (174), 09:55, 09/12/2022 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +1 +/– |
Многопоточности да, сильно не хватает.
Сейчас приходится юзать свою подложку для кооперативных корутин и exec'нутых подзадач, но там проблема с обменом данными с форкнутыми процессами всё равно остаётся, слишком накладно. Треды с независимыми контекстами и быстрым IPC из треда в тред сильно спасли бы положение.
| |
|
3.188, тоже Аноним (ok), 10:58, 09/12/2022 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> Сейчас приходится
плакать, колоться и вымучивать многопоточные сервисы на пыхе, а не на го, специально для этих задач созданном? Трудно вам.
| |
|
|
|
6.240, Аноним (174), 09:30, 10/12/2022 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Это тебе только кажется. Модели вполне себе способны параллелить запросы к DBMS, а например в условиях геораспределения это может дать вообще неэпический профит.
| |
6.241, Аноним (174), 09:31, 10/12/2022 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Ну и опять же, зависит от того, что у тебя за модель. Если плоская примитивная вида "вгрузи вот это как есть и хорошо" - да, кроме запросов особо ничего и нет. Если модель обвязана буизнесс-логикой и имеет сложные структурные связи, да ещё и к разносортным API присобачена, то там вполне себе есть чего разобрать.
| |
|
|
|
|
|
1.28, YetAnotherOnanym (ok), 19:53, 08/12/2022 [ответить] [﹢﹢﹢] [ · · · ] [↓] [↑] [к модератору]
| –4 +/– |
> Добавлены отдельные типы "true", "false" и "null", которые могут принимать только одно допустимое значение
Вангую добавление в следующих версиях отдельного типа "half", который может принимать только одно допустимое значение 0.5, "quarter", который может принимать только одно допустимое значение "¼", "one", который может принимать только одно допустимое значение 1.0 и "two", который может принимать только одно допустимое значение "II".
| |
|
2.34, Аноним (13), 20:01, 08/12/2022 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| +2 +/– |
Не поверишь, но в языках с богатыми возможностями типизации это уже есть:
type Half = 0.5;
const myVar1: Half = 0.6; // Error: Type '0.6' is not assignable to type '0.5'.
const myVar2: Half = 0.5; // OK
Ибо тип -- это множество всех допустимых значений.
| |
|
3.79, YetAnotherOnanym (ok), 21:35, 08/12/2022 [^] [^^] [^^^] [ответить] [↓] [к модератору]
| +3 +/– |
Ты не поверишь, но в сабже эти типы ("true", "false" и "null") появились только сейчас, и его разработчики даже сочли нужным сообщить об их появлении своей пастве.
| |
|
4.217, Аноним (164), 17:00, 09/12/2022 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Ты не поверишь, но в php тип null появились только 20 лет назад, а очередной опеннет эксперт даже счел нужным сообщить о собственной глупости своей пастве.
| |
|
|
|
3.250, Аноним (250), 19:54, 10/12/2022 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Для этого надо придумывать "женский" ЯП! Там ВСЁ будет на нечёткой логике. :)) bool - это "да", "нет", "может быть". Ошибка? Есть её обработчик "Отстань, не до тебя сейчас". Цикл от 0 до "я устала". Много чего интересного сделать можно :)
| |
|
|
|
2.59, Амитабх Бачан (?), 21:02, 08/12/2022 [^] [^^] [^^^] [ответить] [↓] [↑] [к модератору]
| –1 +/– |
Из простых остался только раст. Типы да трейты - вот и весь язык. Ни классов, ни наследования, никаких там "readonly class" - все кашерно, все по минимуму. Раст - единственная достойная замена пыхе. Жалко. Много лет на пыхе программировал - версия 7.4 была самая лучшая, на восьмерку даже и не думал переходить. В итоге сейчас перехожу на раст, так как на восьмой пых больно смотреть.
| |
|
3.129, 5к (?), 01:12, 09/12/2022 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Вот чем хорош пхп, так это совместимостью, не заставляют же использовать все эти опции, а там хоть 5 хоть 8, это не питон.
| |
|
|
5.271, 5к (?), 00:53, 12/12/2022 [^] [^^] [^^^] [ответить] [к модератору]
| –1 +/– |
> Ну попробуй запустить современный фреймворк или волдпресс на PHP 5.6
а мс-офис-2010 на дос запустить не надо?, а может хром на ардуино-нано, дурилка
| |
|
4.235, Наноним (?), 01:55, 10/12/2022 [^] [^^] [^^^] [ответить] [↓] [↑] [к модератору]
| +/– |
Нет там никакой в PHP особой совместимости. Ломают и в 8, ломали при переходе с 4 на 5, и при переходе с 5 на 7. Дофига всего нужно было переделывать.
| |
|
5.270, 5к (?), 00:51, 12/12/2022 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> Нет там никакой в PHP особой совместимости. Ломают и в 8, ломали
> при переходе с 4 на 5, и при переходе с 5
> на 7. Дофига всего нужно было переделывать.
хз, вот недавно с githaba брал скрипт 13-летней давности, ну да 600+ строк кода всего, но никаких проблем вообще, вместо curl какойто ...хз что, но работает в 8 без проблем, есть аналогичные классы для laravel, еще для чего-то, только нафиг их, класс в классе в классе, зачем.
да до этого, много раз было, аналогичное, скрипт на питоне взял, а ему ту библиотеку, или ту версии другой, муть, а потом центос не грузится ага..а пхп тупо работает
| |
|
6.274, 1 (??), 10:17, 12/12/2022 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Ну дык ... Вышеозначенный
<?php
print <<<EOF
hello world
EOF;
Написан раз - работает везде.
Хотя и никому не нужен.
| |
|
|
4.273, 1 (??), 10:15, 12/12/2022 [^] [^^] [^^^] [ответить] [↑] [к модератору]
| +/– |
> Вот чем хорош пхп, так это совместимостью
ты что ль молодой совсем ?
Не застал 5.3 -> 5.4 ? Ну или 5.6 -> 7 ?
| |
|
|
|
|
2.53, Аноним (9), 20:51, 08/12/2022 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> Как только куда-то начинают запихивать ООП, это сразу дохнет.
Если вообще что-то запихивать, то тому, во что пихают, будет плохо. Потому что нужно грамотно проектировать, а не пихать.
| |
|
|
2.169, Здрасьте (?), 09:40, 09/12/2022 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Infinity (INF) и NaN (NAN) в языке есть сто лет в обед, как и во многих других. Эти числа — часть стандарта IEEE 754. И даже минус ноль есть.
| |
|
|
|
5.220, Sw00p aka Jerom (?), 18:19, 09/12/2022 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
> Значения. Тип у этих значений по стандарту — с плавающей запятой (в
> данном случае — float).
так "Отец Ононим" выше за типы говорил, а не значения.
| |
|
|
|
|
|
|
3.172, Здрасьте (?), 09:41, 09/12/2022 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Да? Почему? Какая разница вообще какой синтаксис у атрибутов? Это всё полнейшая вкусовщина. А у решётки хоть плюс есть — старых версии пхп её воспримут как коммент, обратная совместимость.
| |
|
|
1.120, Аноним (136), 00:43, 09/12/2022 [ответить] [﹢﹢﹢] [ · · · ] [↓] [к модератору]
| +/– |
Хороший был инструмент под названием PHP до версии 7, простой и самодостаточный. Потом вместо нормальной модульности придумали уродский костыль в виде namespaces.
И понеслось...
| |
|
2.165, Аноним (174), 09:35, 09/12/2022 [^] [^^] [^^^] [ответить] [к модератору]
| +1 +/– |
Ну, namespaces кстати удобны. К ним бы ещё множественное наследования.
А так - да, в плане расширения синтаксиса занимаются хренью какой-то честно говоря.
| |
|
|
|
3.236, Наноним (?), 02:00, 10/12/2022 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
PHP никогда не отправится вслед за Perl, потому что Perl - по-прежнему лучший для парсинга текста и "склеивания" разнородных скриптов и систем. PHP же в этом качестве всегда был негодным инструментом. Поэтому PHP однажды просто сдохнет.
| |
|
|
1.141, Аноним (141), 03:18, 09/12/2022 [ответить] [﹢﹢﹢] [ · · · ] [↑] [к модератору]
| +3 +/– |
Чего хотели? Каждое десятилетие язык меняется. В конторе есть простенький сайт на php5 на 98 винде крутится, 256 мегабайт оперативки хватает.
| |
1.150, Аноним (150), 05:28, 09/12/2022 [ответить] [﹢﹢﹢] [ · · · ] [↓] [к модератору]
| +6 +/– |
Нельзя писать "ключевые улучшения" !!!!
Надо писать "ключевые ИЗМЕНЕНИЯ" !! А уж являются ли они "улучшениями, каждый сам для себя решит... пока в язык только хрень всякую тащат :(
| |
|
2.152, Анони Карбайкл (?), 06:53, 09/12/2022 [^] [^^] [^^^] [ответить] [к модератору]
| +1 +/– |
Блестяще! Это не улучшения - это ключевые ухудшения! Превратили php в выгребную яму языковых отходов! Руки прочь от нашего пхп! Оставьте его в покое!
| |
|
3.212, Анонист (?), 15:33, 09/12/2022 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
>Превратили php в выгребную яму языковых отходов!
Так так и было задумано - выгребная яма языковых отходов для выгребной ямы индустрии IT.
| |
|
|
|
2.160, Igraine (ok), 08:33, 09/12/2022 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
>Объявлена устаревшей возможность динамического создания свойств в классе. В PHP 9.0 обращение к свойствам, изначально не определённым в классе, будет приводить к ошибке (ErrorException)
Очень хорошо что выводят строгие ограничения на типы и классы, молодцы.
| |
|
|
2.190, фф (?), 11:04, 09/12/2022 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
- Функции, подобные strtolower() и strtoupper(), теперь всегда преобразуют регистр символов в диапазоне ASCII как при выставлении локали "С"
Всё бы ничего, но возможность вернуть старое поведение не оставлена, а значит кучу легаси надо будет проверять на предмет использования со всякими "ё".
-- "ё" не входит в "диапазон ASCII" - можно не проверять.
| |
|
|
|
5.208, фф (?), 13:28, 09/12/2022 [^] [^^] [^^^] [ответить] [к модератору]
| +2 +/– |
расширенный режим 128-255 не входит в ASCII
ASCII (он же ANSI X3.4) содержит только коды 00-7F (все остальное - это "неизвестные символы")
тут либо описание нововведения неверно, либо проверять нечего
| |
|
6.251, Аноним (174), 20:11, 10/12/2022 [^] [^^] [^^^] [ответить] [к модератору]
| +/– |
Там так: в расширенных кодах ASCII8 пыталась учитываться локаль. Теперь чистый ASCII7 по кейсингу, как в C locale.
| |
|
|
|
|
|
|