The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Разработчики PHP предложили P++, диалект со строгой типизацией

15.08.2019 21:20

Разработчики языка PHP обсуждают идею по созданию нового диалекта P++, который поможет вывести язык PHP на новый уровень. В текущем виде развитию PHP мешает необходимость сохранения совместимости с имеющейся кодовой базой web-проектов, что удерживает разработчиков в ограниченных рамках. В качестве выхода предлагается параллельно начать развивать новый диалект PHP - P++, разработка которого будет вестись без оглядки на необходимость сохранения обратной совместимости, что позволит добавить в язык революционные улучшения и избавиться от устаревших концепций.

Наиболее заметными изменениями в P++ станет переход к использованию строгой типизации, избавление от применения тегов "<?", прекращение поддержки array() в пользу синтаксиса "[]" и запрет использования глобального пространства имён для функций. Для проекта предварительно выбрано имя P++ (PHP Plus Plus) по аналогии с С++. PHP и P++ предложено развивать бок о бок и использовать единый runtime. Не связанные с синтаксисом низкоуровневые компоненты, структуры данных, расширения и оптимизации производительности одновременно будут разрабатываться для PHP и P++, но в режиме PHP будет сохраняться обратная совместимость, а в P++ можно будет экспериментировать с эволюционированием языка.

Код на PHP и P++ можно будет смешивать в одном приложении и выполнять одним интерпретатором, но метод разделения кода пока не определён. При этом разработчики не отказываются от планов по развитию ветки PHP 8, в которой планируется добавить JIT-компилятор и средства для обеспечения переносимости с библиотеками на C/C++. Проект P++ пока находится на стадии обсуждения предложения. Основным сторонником P++ является Зеев Сураски (Zeev Suraski), один из лидеров сообщества разработчиков PHP, сооснователь компании Zend Technologies и автор движка Zend Engine.

Из возражений оппонентов можно отметить опасение в недостатке ресурсов для продвижения проекта (в режиме полного рабочего дня над PHP работает всего два разработчика), возможность фрагментации сообщества, конкуренция с уже существующим языком Hack (PHP со статической типизацией), опыт проекта HHVM (в конечном счёте отказавшегося поддерживать в одном runtime PHP и Hack), необходимость изменения семантики для строгой типизации, опасность стагнации PHP и развития новшеств только в P++, вопросы по поводу организации сосуществования и взаимодействия PHP и P++ (нетривиальность конвертации кода PHP в P++ (синтаксис может разойтись настолько, что потребуется переписывание приложения), несовместимость P++ с существующими инструментариями для PHP и необходимость убедить авторов инструментариев, систем тестирования и IDE обеспечить поддержку новой редакции).

Дополнение: Проведено голосование, пытающиеся узнать, является ли P++ тем направлением, на развитие которого разработчики PHP готовы тратить своё время и силы. Все участники высказались против.

  1. Главная ссылка к новости (https://blog.jetbrains.com/php...)
  2. OpenNews: Выпуск виртуальной машины HHVM 4.0 с прекращением поддержки PHP
  3. OpenNews: Релиз языка программирования PHP 7.3
  4. OpenNews: Проект Snuffleupagus развивает PHP-модуль для блокирования уязвимостей
  5. OpenNews: В PHP 8 будет добавлен JIT-компилятор
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/51291-php
Ключевые слова: php
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (231) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.2, пох. (?), 21:56, 15/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    так я не понял - phar:// поддерживать планируют?
     
     
  • 2.24, Аноним (24), 23:36, 15/08/2019 [^] [^^] [^^^] [ответить]  
  • +10 +/
    Теперь file_exists() будет строго-типизированно запускать third_party-код при условии, что ты ему передашь строго-типизированную строку, строго-типизированно начинающуюся на "phar://".
     
  • 2.93, Онаним (?), 09:12, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Для тех, кто в системные вызовы передаёт пользовательские строки без валидации - обязательно.
     
     
  • 3.153, Аноним (153), 14:09, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    PHP система удаленных вызовов! Вот оно как Михалыч!
     

  • 1.3, Минона (ok), 21:59, 15/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    Р##
     
     
  • 2.6, Рамзан Кадыров (?), 22:06, 15/08/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Visual PHP
     
     
  • 3.69, OpenEcho (?), 07:17, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    ПыхПиПи
     
  • 3.133, Аноним (133), 12:36, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Borland PHP
     
     
  • 4.228, bo (??), 08:18, 20/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Turbo PHP
     

  • 1.4, MT (ok), 22:04, 15/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    *.ppp
     
     
  • 2.25, Аноним (24), 23:38, 15/08/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    π — [pi:]
    PyPy — [pipi:]
    P++ — [pipipi:]
     
     
  • 3.165, Michael Shigorin (ok), 16:13, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    А компилятор -- PPPC?
     
  • 2.33, Аноним (33), 00:05, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +5 +/
    *.ppc
     
     
  • 3.38, Bbore (?), 00:21, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +8 +/
    .пипец?)
     
  • 2.35, Матцумото (?), 00:07, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    .3p
     
  • 2.57, 4eburashk (?), 02:19, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    gpp
     

  • 1.5, Аноним (5), 22:05, 15/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Строгая или статическая типизация?
     
     
  • 2.7, Аноним (7), 22:10, 15/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >strict_types
     
     
  • 3.19, Sw00p aka Jerom (?), 22:57, 15/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    а вот это ложное понятие, там должно быть strong
     
  • 2.17, Sw00p aka Jerom (?), 22:54, 15/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    это два разных понятия, как вы думаете?
     
  • 2.66, Аноним (66), 06:54, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Типизация не нужна. В этом-то и вся прелесть - код отработает и что-то выдаст в почти любой ситуации.
     
     
  • 3.80, Аноним (80), 08:25, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +22 +/
    Правда такую фигню выдаст…
     
     
  • 4.178, Аноним (178), 18:14, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Зато столько сразу эмоций! Живи эмоциями!
     
  • 2.146, Аноним (146), 13:48, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Мы уже видели это https://stackoverflow.com/a/2220571
     
     
  • 3.155, Anonymoustus (ok), 14:27, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Мы уже видели это https://stackoverflow.com/a/2220571

    Эталонное безумие.

     

  • 1.8, Аноним (8), 22:15, 15/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    "Два креста" - это сразу диагноз! ;)
     
     
  • 2.128, Адекват (ok), 12:15, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    В фидо, если память не изменяет - плюсами людей банили.
     
     
  • 3.169, Аноним (169), 16:34, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Расстреливали из плюсометов
     

  • 1.11, Anonymoustus (ok), 22:31, 15/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Предлагаю для нового языка произношение «пипеп».
     
  • 1.12, Аноним (12), 22:36, 15/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +25 +/
    - Давайте напишем язык удобный для всех, где нет никаких типов, где можно гвозди сравнивать с бананами и даже получать какой-то результат такого сравнения. Это же ваще круто и удобно.

    - прошло 30 лет
    - Давайте запилим язык, в котором будет типизация.

     
     
  • 2.16, Kroz (ok), 22:51, 15/08/2019 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Процесс взросления
     
     
  • 3.27, jOKer (ok), 23:46, 15/08/2019 [^] [^^] [^^^] [ответить]  
  • +10 +/
    "Первые тридцать лет самые сложные в жизни мальчика" (с)
     
     
  • 4.47, Анан (?), 01:29, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +6 +/
    40
     
     
  • 5.81, Аноним (80), 08:26, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    65
     
  • 2.26, Hewlett Packard (?), 23:40, 15/08/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > где можно гвозди сравнивать с бананами и даже получать какой-то результат такого сравнения

    Это довольно старая идея. Из неё возникла такая интересная абстракция как "количество", а из неё потом - "число". Из которого потом - вся математика.

     
     
  • 3.41, Crazy Alex (ok), 00:53, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Вот только для написания софта - не очень подходит
     
     
  • 4.43, Hewlett Packard (?), 00:58, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Что именно не очень подходит для написания софта - абстракции, числа, математика или старые идеи?
     
     
  • 5.52, Аноним (52), 01:37, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    - Да не согласен я!
    - Что, с Энгельсом или с Каутским?
    - С обоими!
     
  • 3.72, илтя (?), 07:41, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Захожу в магазин и говорю: Здравствуйте, дайте мне семь
     
     
  • 4.77, Hewlett Packard (?), 08:14, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    А вам отвечают что нет, абстракций сегодня не завезли, только настоящие, реальные программистские товары.
    И дают вам цикл, монаду и итератор.
     
  • 4.79, Andrey Mitrofanov_N0 (??), 08:23, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Захожу в магазин и говорю: Здравствуйте, дайте мне семь

    "" Вам желательно отведать хорошей жирной курочки? Зайдите в любую харчевню, сделайте слуге вот этак (показывает, как вращают вертел) , god-dam, и вам приносят кусок солонины без хлеба. Изумительно! ""

     
  • 2.32, Аноним (32), 00:03, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    может что-то приличное получится. а то как вспомню:
    $a=0;
    if ($a==$b) {
    //тут код выполнится
    //если $b неопределено или null
    }
    ашшштрясет:) везде надо эти === писать чтобы все предсказуемо работало
     
     
  • 3.45, Hewlett Packard (?), 01:03, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Лучше что бы не выполнился? Почему?
     
     
  • 4.82, Аноним (80), 08:31, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Потому что разыменование не определённой переменной является логической ошибкой, и интерпретатор, написанный адекватными людьми, должен на этом месте падать, а не пытаться угадать, чего же на самом деле хотел сказать кодер.
     
     
  • 5.100, заминированный тапок (?), 09:34, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    нет не должен (иначе бы софт должен что ли крашиться всегда и везде где встретить NULL в качестве значения? что за дичь)
     
     
  • 6.109, Аноним (109), 10:32, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +8 +/
    Вот хороший пример человека, который не понимает разницы между "переменная не объявлена" и "переменной присвоено значение NULL".
     
  • 5.101, заминированный тапок (?), 09:38, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    ты походу перепутал всё с "разыменованием указателя", но тут ведь нет указателей и их разыменований. тут сравнение конкретного значения, пусть оно и NULL, а не попытка обратиться в область памяти с адресом NULL
     
     
  • 6.136, Аноним (136), 13:08, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Это ты попутал ошибку разыменования нулевого указателя с логической ошибкой. В первом случае код всегда упадёт, потому что процессор откажется выполнить операцию (не берём в расчёт те архитектуры, где она допустима), во втором — для процессора всё выглядит нормально, но ошибку можно (и нужно) обнаружить на более высоком уровне, в самом интерпретаторе. Это позволило бы ещё на этапе начальной отладки выявить и устранить ошибку, но PHP её старательно скрывает, и она с высокой долей вероятности может попасть в прод.
     
  • 4.97, заминированный тапок (?), 09:32, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    ммм, а 0 эквивалентно NULL ?

    напомнило ещё JS : https://cs9.pikabu.ru/post_img/2016/09/15/7/147393909915812096.jpg

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

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

     
     
  • 5.98, заминированный тапок (?), 09:33, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    *постичь дзен
     
  • 5.117, Урри (?), 11:00, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Сейчас набежит хипстота и обвинит тебя в неосиляторстве стандарта языка, где вся эта тысяча граблей старательно описана и запротоколирована.
     
  • 5.120, Gemorroj (ok), 11:39, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    не эквивалентно.
    в php 2 типа сравнения, строгое и не строгое.
    хочешь поведение когда типы не учитываются - твой путь к 2-м равно, хочешь с учетом типов - используй 3 равно.
     
  • 3.51, Ilya Indigo (ok), 01:35, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Используйте === если Вам важен тип!
    Я уже молчу, что Вы ССЗБ, если не проверяете переменную $b на существование или не используете оператор ?? .
     
     
  • 4.68, OpenEcho (?), 07:15, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    ?? -?
    Может имелось ввиду:

    ?bool ?int ?float ?array ?string

    ? :)

     
     
  • 5.112, Ilya Indigo (ok), 10:39, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > ?? -?
    > Может имелось ввиду:
    > ?bool ?int ?float ?array ?string
    > ? :)

    Нет!
    Имелось ввиду или
    $a=0;
    if (isset($b) && $a==$b) {
    //тут код выполнится
    //если $b неопределено или null
    }

    Или

    $a=0;
    if ($a==($b??-1)) {
    //тут код выполнится
    //если $b неопределено или null
    }

    Хотя согласен, второй пример так себе и использовать лучше первый! (Просто я недооценил упоротость изначального кода)

    Используя любую переменную программист ОБЯЗАН или быть уверенным, что она инициализирована, или проверить это!
    Это не фишка PHP - это общие правила программирования!

     
     
  • 6.116, Аноним (116), 10:56, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Нет такой «фишки в программировании», что null равен булевому значению.
     
     
  • 7.119, Ilya Indigo (ok), 11:31, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    В языках со СТАТИЧЕСКОЙ типизацией да В языках с динамической типизацией у кажд... большой текст свёрнут, показать
     
  • 7.217, Онаним (?), 22:22, 17/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Ага. И if (var) на поинтерах в C тоже не встречается чуть менее чем нигде, уговорили.
     
  • 6.137, Аноним (136), 13:13, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Используя любую переменную программист ОБЯЗАН или быть уверенным, что она инициализирована, или проверить это!

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

     
     
  • 7.144, Ilya Indigo (ok), 13:31, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Программист !== Рукожоп
    Если Вы ДАЖЕ не можете "доглядеть", существование переменной, а проверять её Вам лень - то программирование это не Ваше дело!
     
     
  • 8.156, Anonymoustus (ok), 14:29, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    CODE Программист Рукожоп CODE А если написать так, будет false или true ... текст свёрнут, показать
     
     
  • 9.157, Ilya Indigo (ok), 14:35, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    false в любом случае, просто я подчеркнул изначально затронутую тему ... текст свёрнут, показать
     
  • 4.86, Аноним (32), 08:40, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    ну и мтоге получается куча писанины и проверки типов. по сути вытаскивание глад через одно место:)
     
     
  • 5.108, Ilya Indigo (ok), 10:31, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > ну и мтоге получается куча писанины и проверки типов. по сути вытаскивание
    > глад через одно место:)

    Вы вообще где и как его используете?
    У меня в крупном веб-проекте (FastCGI) на самописном движке лишь несколько мест где, действительно, нужна проверка типа,
    А в большинстве случаев, например при получении данных из $_POST, где априори, могут быть только строки, она вредит!

     
     
  • 6.138, Аноним (136), 13:14, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > А в большинстве случаев, например при получении данных из $_POST, где априори, могут быть только строки, она вредит!

    И чем же тебе повредит, если интерпретатор лишний раз убедится, что там действительно строка?

     
     
  • 7.140, Ilya Indigo (ok), 13:17, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >> А в большинстве случаев, например при получении данных из $_POST, где априори, могут быть только строки, она вредит!
    > И чем же тебе повредит, если интерпретатор лишний раз убедится, что там
    > действительно строка?

    https://www.opennet.ru/openforum/vsluhforumID3/118169.html#119

     
  • 4.111, Аноним (109), 10:37, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • –2 +/
    > не проверяете переменную $b на существование

    А что, в PHP интерпретатор сам не проверяет переменные на существование перед тем, как исполнить выражение, в котором они встречены? Ну охренеть...

     
     
  • 5.114, Ilya Indigo (ok), 10:51, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >> не проверяете переменную $b на существование
    > А что, в PHP интерпретатор сам не проверяет переменные на существование перед
    > тем, как исполнить выражение, в котором они встречены? Ну охренеть...

    Конечно же делает, и даже выдаёт ошибку в лог, который Вы, видимо даже не смотрите!
    К сожалению, он НЕ прекращает выполнение скрипта сразу после этого, а сам её инициализирует и продолжает работу.

    Можно поинтересоваться, а на каком языке Вы пишите, в котором такое рукожопие считается нормальным?

     
     
  • 6.147, Аноним (109), 13:50, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > выдаёт ошибку в лог

    Этого мало. Выполнение скрипта должно прекращаться.
    > который Вы, видимо даже не смотрите

    Упаси меня Господь смотреть логи PHP.
    > на каком языке Вы пишите

    Сейчас - на C и Erlang, если не считать мелких вспомогательных задачек, которые можно быстренько накарябать на awk.
    > такое рукожопие считается нормальным

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

     
     
  • 7.154, Ilya Indigo (ok), 14:23, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Согласен Но в динамических языках требования, к сожалению, не такие строгие, и ... большой текст свёрнут, показать
     
     
  • 8.173, Аноним (109), 17:04, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Авторы Webmachine, Mochiweb, N2O, Chicago Boss, Cowboy, Zotonic и множества друг... текст свёрнут, показать
     
     
  • 9.174, Ilya Indigo (ok), 17:25, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Я говорил про C и Erlang, хотя про эти проекты , тоже впервые слушу, думаю и не... текст свёрнут, показать
     
  • 5.218, Онаним (?), 22:25, 17/08/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Откройте для себя error_reporting(E_ALL), познайте новый чудный мир. А чтобы жизнь мёдом не казалась - ещё и set_error_handler, превращающий любой WARNING и NOTICE в эксепшн. Впрочем последнее - оверкилл, за исключением отдельных случаев когда дебажить выделенно некому.
     
  • 3.92, Онаним (?), 09:11, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Не надо везде писать ===. Надо просто понимать различия между == и ===, сиречь знать язык. У PHP не настолько низкий порог вхождения, как вы считаете. Наговнокодить на нём - да, просто. Писать же - не очень просто.
     
  • 2.94, DIO (?), 09:19, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    prolog - не?
     

     ....большая нить свёрнута, показать (45)

  • 1.13, Аноним (13), 22:43, 15/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    > в режиме полного рабочего дня над PHP работает всего два разработчика

    А, ну это многое объясняет

     
  • 1.14, Аноним (14), 22:49, 15/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    Г++
     
     
  • 2.65, Аноним (65), 06:31, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    ПолныйПЭ++
     

  • 1.15, Аноним (15), 22:50, 15/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Может аффторам пора завязывать с наркотиками? Сколько будут продолжаться метания? То Java пытаются делать из пэхэпэ, сейчас ++. Что дальше, phpjs?
     
     
  • 2.18, Sw00p aka Jerom (?), 22:56, 15/08/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    устарело, phprust вероятно :)
     
  • 2.21, НяшМяш (ok), 23:02, 15/08/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Вы поосторожнее с этой игрой, а то так и спиться можно: https://github.com/hirak/phpjs )
     
  • 2.23, Аноним (23), 23:26, 15/08/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    phplisp
     
  • 2.55, wd (?), 01:43, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    php4delphi и delphi4php я видел овер чем 10 лет назад
    само собой не касался этого даже 6-метровой палкой
     
  • 2.121, Gemorroj (ok), 11:41, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    жаву из пхп пытаются делать писатели фреймворков. разработчики ядра этим никогда не баловались.
     
  • 2.166, Michael Shigorin (ok), 16:21, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Сколько будут продолжаться метания?

    Насколько метамфетамина хватит, похоже... :(

     

  • 1.20, th3m3 (ok), 22:59, 15/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вместо того, чтобы закапывать php, собираются и дальше обмазываться этим УГ.
     
     
  • 2.58, BlackRot (?), 02:26, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • –5 +/
    Зачем закапывать пхп?
    Вордпресс работает хорошо и быстро, страдания разработчиков видимо отсутствует. Объясните юзеру
     
     
  • 3.62, th3m3 (ok), 02:59, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Wordpress - это же притча во языцех. Он, наверное, никогда не работал хорошо и уж тем более быстро. Его даже разработчики php - используют как бенчмарк. Только я не понимаю, что они там тестируют. То ли как Wordpress тормозит на новой версии php, то ли как php тормозит на Wordpress :)
     
     
  • 4.90, Онаним (?), 09:00, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Все здоровые блоут-фреймворки, которые не более, чем попытка использовать классическую MVC модель, изначально спроектированную для компилируемых one-instance-multiple-requests приложений, в PHP, который мало того, что интерпретируемый, так ещё и one-instance-one-request, обречены "никогда не работать хорошо" и "никогда не работать быстро".
     
     
  • 5.91, Онаним (?), 09:04, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Разработчики всего этого монструозного говнокода на пыхе просто делают так, как привыкли в "классике", абсолютно не учитывая особенностей языка. Например, забывая, что простая загрузка и инициализация 100500 мелких классов из 100500 файлов на каждый запрос даёт накладные расходы, вполне сопоставимые со всем полезным кодом в их блоатвари. Даже несмотря на опкэш, прелоудинги и т.п.
     
     
  • 6.105, пох. (?), 10:12, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    вы уверены что они к какой-то там "классике" привыкли, а не "насяльника велел копай отсюда до обеда? Джамшут копать!"

     
  • 6.110, x3who (?), 10:35, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > простая загрузка и инициализация 100500 мелких классов из 100500 файлов на каждый запрос даёт накладные расходы, вполне сопоставимые со всем полезным кодом в их блоатвари. Даже несмотря на опкэш, прелоудинги и т.п.

    Как это на каждый запрос даже несмотря на кеш? Если есть кеш, то явно не на каждый запрос. Правда на каждый запрос может проверяться не устарел ли кеш и проверяться дата всех файлов, но КМК это не фундамельная проблема языка и такой контроль вообще можно сделать отдельным процессом, чтобы сессии не тормозить. Для сохранения состояния сессии между запросами - тех же классов, вроде есть какие-то кеши.

     
     
  • 7.181, Онаним (?), 19:42, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    autoload'ы и __construct()'ы всё равно будут на каждый запрос
     
     
  • 8.187, Евгений (??), 21:02, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    С принятием некоторых PSR и переходом многих фремворков на них, появились решени... текст свёрнут, показать
     
     
  • 9.206, Ананнимас (?), 09:46, 17/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    прямо смуззи и барбершопом мироточит английский обычно лаконичнее впроизношении ... текст свёрнут, показать
     
     
  • 10.213, x3who (?), 16:22, 17/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Это названия объектов, в вашем 21м веке многие их по-старинке предпочитают назыв... текст свёрнут, показать
     
  • 9.210, Онаним (?), 10:53, 17/08/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Про PSR и всё что вокруг них вертится я вообще молчу, это попытка забивать милли... текст свёрнут, показать
     
  • 9.214, x3who (?), 16:33, 17/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Вообще это выглядит избыточно, есть же сервера приложений - непонятно зачем эту ... текст свёрнут, показать
     
  • 4.194, BlackRot (?), 00:08, 17/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Зачем врать?
    Nginx+php-fpm 7.3 летает как ракета, но если у вас всё плохо... могу помочь вам с вашим сервером.
    был бы ВП так плох, не был бы номер 1 в мире. имхо
     
     
  • 5.195, th3m3 (ok), 00:30, 17/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    А я всё ждал, когда уже свидетели мощного wp заглянут на огонёк. Два дня ждали и вот)
    1С тоже дно, но почему в бизнес кругах его часто юзают? То то же. Подсадили, а кто-то и рад обмазываться постоянно.
     
     
  • 6.196, BlackRot (?), 00:38, 17/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    я здесь каждый день так то... сравнивать хрен с пальцем это ты мастак. 1с норм, а вп так мне вообще нравится, я даже не стесняюсь участвовать в развитии этого проекта, локализация, плагины и т.д. но вы продолжайте умничать может кто-то заценит ваши инт способности
     
     
  • 7.202, th3m3 (ok), 04:18, 17/08/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Если у тебя Wordpress топчик, то не сомневаюсь, что и 1C для тебя норм. Что поделать, бывает люди любят всякое копро и прочие экзотические извращённые вещи. Не нам их судить.
     
     
  • 8.211, BlackRot (?), 11:26, 17/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    WordPress топчик не у меня, а в рейтинге движков, мне он просто нравится, загугл... текст свёрнут, показать
     
     
  • 9.212, Уаська (?), 14:28, 17/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    А вот мне кажется пример с 1С прям в точку и совершенно не противоречит вашим сл... текст свёрнут, показать
     
  • 9.215, th3m3 (ok), 17:54, 17/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Никто не спорит, что в рейтингах по всякому УГ, он занимает первые места И я уж... текст свёрнут, показать
     
     
  • 10.216, пох. (?), 22:20, 17/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    ну-те-с, давайте список чего угодно Г-нецо типа статических генераторов ср... текст свёрнут, показать
     
  • 10.219, BlackRot (?), 23:43, 17/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    с 2010 года юзаю вп, и плагины разных мастей, самый обычных с репов вп, и никогд... текст свёрнут, показать
     
     
  • 11.220, th3m3 (ok), 02:52, 18/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Фу, как мерзко, называть меня этим словом - вебмастер WP я начинал уже тыкать ... текст свёрнут, показать
     
     
  • 12.226, BlackRot (?), 19:46, 19/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Я лично не боготворю вп, просто в то время когда я его попробовал где то в 2010... большой текст свёрнут, показать
     
  • 12.234, Kreep (?), 02:32, 21/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Типичный образчик PHP-хейтера - одно брызганье слюной без конструктива Ясно, по... текст свёрнут, показать
     
  • 2.122, Gemorroj (ok), 11:42, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    альтернатива? куда не плюнь везде уг.
    вон, прекрасный D есть, только что-то им никто не пользуется (без иронии, я и сам его считаю великолепным языком)
     
     
  • 3.134, Anonymoustus (ok), 12:37, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > альтернатива? куда не плюнь везде уг.
    > вон, прекрасный D есть, только что-то им никто не пользуется (без иронии,
    > я и сам его считаю великолепным языком)

    Что посоветуете читать про D?


     
     
  • 4.141, Аноним (136), 13:22, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    http://erdani.com/index.php/books/tdpl/
     
     
  • 5.143, Anonymoustus (ok), 13:27, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > http://erdani.com/index.php/books/tdpl/

    Надо же — тот самый Александреску. Что ж, надо читать. Благодарствую.

     
  • 3.175, th3m3 (ok), 17:34, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Всё что угодно - будет лучше php.
     
  • 3.197, nio (??), 00:53, 17/08/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вам сюда: https://golang.org/
     
     
  • 4.198, мужчина (?), 00:55, 17/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Вам сюда: https://golang.org/

    Сам-то писал на нем, мальчик?

     
     
  • 5.204, nio (??), 08:20, 17/08/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >> Вам сюда: https://golang.org/
    > Сам-то писал на нем, мальчик?

    Когда я был мальчик, тебя ещё и в проекте не было.
    И да: писал.

     
  • 5.240, nio (??), 02:14, 31/12/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Да.
    А когда я был мальчик, твои мама с папой ещё даже не встретились.
     

     ....большая нить свёрнута, показать (33)

  • 1.22, Аноним (80), 23:11, 15/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Ну наконец-то загнутся!
     
     
  • 2.70, OpenEcho (?), 07:21, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    "Не рой яму другому, - сам в нее попадешь" (c) Народная мудрость
     
     
  • 3.85, Аноним (80), 08:33, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Так они же сами для себя и вырыли. Facebook только начал.
     
     
  • 4.96, OpenEcho (?), 09:20, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Я эту басню второй десяток лет слышу ток что то никак не загнется, а наоборот... большой текст свёрнут, показать
     
     
  • 5.142, Аноним (136), 13:24, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Ну да, отклонили, предложение, к сожалению. Продолжат трепыхаться в прежнем режиме.
     

  • 1.28, Анимайзер (?), 23:48, 15/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Разработчики языка PHP выступили с идеей по созданию нового диалекта P++, который поможет вывести язык PHP на новый уровень.

    А что по этому поводу думает Илья Индиго? PHP на данный момент идеален и менять ничего не нужно? Или время идёт, ничто не стоит на месте, изменения назрели, PHP требует перемен и поэтому инициатива с P++ хорошая и полезная и от которой в долгосрочной перспективе только все выиграют?  

     
     
  • 2.42, Led (ok), 00:53, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +11 +/
    > Илья Индиго
    > думает

    А ты злой шутник...

     

  • 1.29, vbv (ok), 23:50, 15/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    Да скажите им, уже про существование С++.
     
     
  • 2.31, Hewlett Packard (?), 23:57, 15/08/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вот этого лучше не надо.
     
  • 2.36, Аноним (32), 00:07, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    тогда уж лучше про Java ;)
     
     
  • 3.63, Аноним (63), 06:12, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Чтобы потом по миллиарду за заимствованную строчку платить?
     
  • 3.103, Аноним (103), 10:00, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Петончик
     
     
  • 4.189, Аноним (189), 22:35, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну это тоже похоронили все. Вместо плавного перехода и варнингов и деприкейтов они взяли и сделали огромную дыру между 2.7 и 3. А дпльше еще хуже пилили корутины, потом асинк и до сих пор полный бардакт и нет толковой документации. Конечно есть пионеры которые сразу такие да берем 3.8 и херачим, но ведь теперь полным полно старого барахла на 2.7, 3.3 и 3.5. Что вот с этим всем делать?
     
     
  • 5.236, RedEyed (?), 14:32, 22/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Похоронили? OMG https://www.tiobe.com/tiobe-index/
     
  • 2.67, Аноним (67), 07:05, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Да скажите им, уже про существование С++.

    Видел таких, которым сказали. Видел и результат. Передача векторов строк по значению -- это лишь то, что можно описать словами.

     
     
  • 3.78, Аноним (12), 08:14, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Ясень фиг, что кроме как сказать им о существовании, надо им еще и посоветовать научиться на нем писать. Например, чтоб не передавать вектор по значению.
     
     
  • 4.190, Аноним (189), 22:37, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    А что плохого в передаче вектора по значению может им нужно копию там иметь где-то. Все эти ваши джавы с сылочными типами тоже не особенно хорошо куда не плюнь хер знает чему там что равно и давно ли уже все поменялось внутри.
     
  • 2.95, Аноним (95), 09:19, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • –7 +/
    >Да скажите им, уже про существование С++.

    Он только свидетелям сишечки и нужен. Для веба давно есть нода и JS - за ними будущее.

     
     
  • 3.139, Аноним (139), 13:14, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    a V8 по вашему на nodejs написан?
     

  • 1.30, Ononim (?), 23:56, 15/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    В чем проблема и дальше убивать совместимость постепенно и внедрять фичи. Просто более радикально. Много php4 проектов и так на 7 не заводятся. Без закапывания старого Овна новое лучшее овно не запилишь нормально
     
     
  • 2.34, Аноним (23), 00:06, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Прыжок в строгую типизацию постепенно не сделаешь.
     
     
  • 3.37, Ononim (?), 00:18, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Можно что-то придумать. Для начала подвести синтаксис. Опционально включение флагом в php.ini. В след релизе по дефолту вкл и опционально выключение флагом. Большинство ньюфагов будут дефолт юзать. Олдфагам человекочасов работы накинут.
    Потом и вовсе выпиливание.
    Или сразу с плеча рубить. По началу бомбить буду, потом привыкну.
     
     
  • 4.49, Анан (?), 01:32, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    а то сейчас прям не так…
    просто глыбу обратной совместимости очень сложно сдвинуть не потеряв половину "безнес-ориентированных" ленивых апологетов без тестов.
     
  • 3.44, Hewlett Packard (?), 01:02, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Да что вы говорите.
     
  • 2.59, php (?), 02:30, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Много php4 проектов и так на 7 не заводятся

    Там где совершенно ущербный говнокод - это заслуженно, но в целом допилить до совместимости не так сложно.

     
  • 2.123, Gemorroj (ok), 11:45, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    есть ретрограды типа того же сураски, которые не хотят ломать совместимость прям совсем. и тянуть легаси вечно.
     
     
  • 3.135, Аноним (139), 12:38, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Я, как пишущий и на php, только за ломание старого и выпиливания совместимости, если это помогает внедрить новые фичи на пути к светлому будущему ¯\(*_*)/¯
     

  • 1.39, Аноним (39), 00:23, 16/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +7 +/
    Как бы уже проголосовали https://wiki.php.net/rfc/p-plus-plus единогласно против.
     
     
  • 2.53, vitalif (ok), 01:40, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Славаяйцам
     
  • 2.71, OpenEcho (?), 07:27, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    странно что Zeev сам предложил и сам проголосовал против :)
     
     
  • 3.88, Онаним (?), 08:47, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Потому что идея витает вокруг да около уже давно, но зачем делать из PHP жабу, если уже есть жаба?
     
  • 2.89, Онаним (?), 08:47, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Фух. Разум таки восторжествовал.
     
  • 2.159, Георгий (??), 14:52, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Моё мнение: современный PHP уже достаточно неплохой язык (примерно на уровне Ruby).
    Дробить его на два языка — повторять ситуацию с Python 2 и 3.
    Лучше стараться развивать язык эволюционно. Например, какой-нибудь "use strict" на уровне класса/функции/неймспейса.
     
     
  • 3.237, RedEyed (?), 14:35, 22/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Развивать? Это как майкрософт развивает винду: оно типа лучше, но куча говна выходит из-за поддержки легаси.

    А python3 сделали с блек джеком и шлюхами без гемороя с легаси.
    Даже написали утилиту 2to3.py

     

  • 1.40, анамнез (?), 00:32, 16/08/2019 Скрыто ботом-модератором [﹢﹢﹢] [ · · · ]     [к модератору]
  • –2 +/
     

     ....ответы скрыты (4)

  • 1.46, Аноним (46), 01:29, 16/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >В текущем виде развитию PHP мешает необходимость сохранения совместимости с имеющейся кодовой базой

    Прям как у С++

     
  • 1.48, Ilya Indigo (ok), 01:31, 16/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Давно пора!

    А более глобальные изменения?
    Убрать $
    Убирание схожих и дублирующий ф-ий и языковых конструкций.
    include дать поведение require, а require убрать!
    Убрать *_once
    Привести в порядок ф-ии работы с массивами или всем дать префикс array_  а ещё лучше дать краткий a_

     
     
  • 2.50, Анан (?), 01:33, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +4 +/
    ну ты вообщеееее!… экстримал-террорист!
     
  • 2.54, vitalif (ok), 01:42, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    У меня один маленький вопрос, а на хрена тогда PHP?) пиши уж на ноде или на го каких-нибудь
     
     
  • 3.191, Аноним (189), 22:40, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Да на питоне пиши там тоже можно как на PHP в виде cgi скрипта стартонуть и пожить и сдохнуть. В целом деже Django не так плох хотя конечно то ее дерьмище
     
  • 2.64, mr.tacitus (ok), 06:14, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    или []::filter,[]::sort,[]::column,[]::map :-D
     
     
  • 3.107, Ilya Indigo (ok), 10:19, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > или []::filter,[]::sort,[]::column,[]::map :-D

    Одновременно оператор массива, являющийся классом массива... это мне, кажется, уже через чур.
    Вот так: a_filter(), a_sort(), a_column(), a_map() Было бы достаточно. :-)

     
     
  • 4.170, mr.tacitus (ok), 16:46, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    но красиво же :)
     
     
  • 5.171, Ilya Indigo (ok), 16:54, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > но красиво же :)

    Согласен, красиво!
    Но всё же 4 ([]::) символа вместо 2 (a_), и гораздо труднее реализовать, чем просто переименовать.

     
     
  • 6.203, mr.tacitus (ok), 04:43, 17/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    по мне: что a_, что array_ — одно и то же и a_ напоминает попытку намазать зеленкой закрытый перелом
     
     
  • 7.205, Ilya Indigo (ok), 08:50, 17/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > по мне: что a_, что array_ — одно и то же и
    > a_ напоминает попытку намазать зеленкой закрытый перелом

    Цель отделить строковые ф-ии от массивных.

     
  • 2.75, OpenEcho (?), 07:49, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Вот если бы они просто убрали не отключаемые в disabled_functions чудеса под названием language constructs, такие как злостный eval, то это бы поправило имидж  пыха значительно
     
     
  • 3.113, Ilya Indigo (ok), 10:45, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > Вот если бы они просто убрали не отключаемые в disabled_functions чудеса под
    > названием language constructs, такие как злостный eval, то это бы поправило
    > имидж  пыха значительно

    Наоборот, нужно убрать саму disabled_functions, которая может приподнести неожиданный сюрприз, ввиде отключённой ф-ии, например невозможность установить права на выгруженный файл или проверить состояние демона через system!

     
     
  • 4.118, OpenEcho (?), 11:25, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    сюрпризов не будет если уважать хост на котором прикрутили гайки, а проверять в... большой текст свёрнут, показать
     
     
  • 5.124, Gemorroj (ok), 11:48, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    а зачем мне твоя system_enabled, если мне system нужна?
     
     
  • 6.127, OpenEcho (?), 12:06, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > а зачем мне твоя system_enabled, если мне system нужна?

    за тем чтоб геморроя не было, если хост беспокоится о безопасности и не позволяет запускать ничего кроме пых-кода. Там где действительно нужно запускать что то из оси, делается гейт, - пых сбрасыет запрос (через банальный файл флаг или REST API) и со стороны оси выполняются только whitelisted команды и возвращают результат

     
     
  • 7.131, Gemorroj (ok), 12:26, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    как это решает вопрос геморроя?
    мне system нужна, дай мне ее. ты не даешь.
     
     
  • 8.151, OpenEcho (?), 13:58, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Не даю, потому что если твой код будет иметь дыру, то имея доступ до system, exe... текст свёрнут, показать
     
     
  • 9.152, Gemorroj (ok), 14:05, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    если мой код будет иметь дыру, то система и без system будет скомпрометирована ... текст свёрнут, показать
     
     
  • 10.167, Michael Shigorin (ok), 16:29, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Если реализация дыры будет через system , то система без него скомпрометирована... текст свёрнут, показать
     
  • 5.126, Ilya Indigo (ok), 11:56, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Вот это уже костыль А если мне, таки, нужен вызов system И мне что каждую в P... большой текст свёрнут, показать
     
     
  • 6.148, OpenEcho (?), 13:50, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • –1 +/
    чуть выше уже писал Там где действительно нужно запускать что то из оси, делае... большой текст свёрнут, показать
     
  • 6.162, x3who (?), 15:33, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > упоротый админ

    Но ведь это не проблема языка как такового, и даже не проблема его рантайма, позволяющего максимально ибко конфигурировать ограничения. Это проблема хостинга, что он ради экономии нанимает каких-то левых упоротых админов. А уж упоротый админ и безотносительно ПХП может сделать любое приложение неработающим.

     
     
  • 7.164, Ilya Indigo (ok), 15:50, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    https://www.opennet.ru/openforum/vsluhforumID3/118169.html#113
     

     ....большая нить свёрнута, показать (22)

  • 1.56, vitalif (ok), 01:45, 16/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    Асинхронность им надо внедрить в язык. Щас есть всякие ReactPHP, но они сбоку. Внедрят - и попрёт) запретить по дефолту выполнение кода отовсюду кроме /index.php, чтобы дыры позакрывать. И т.п. Как будто заняться нечем.

    А от типизации оно не попрёт. Те, кто любят пхп, очевидно, вряд ли любят типизацию.) любили бы - писали бы на чём-то ином.

     
     
  • 2.84, Онаним (?), 08:32, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Вот да, тредов очень сильно не хватает.
     
     
  • 3.99, OpenEcho (?), 09:33, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Вот да, тредов очень сильно не хватает.

    Для чего конкретно?

     
     
  • 4.132, vitalif (ok), 12:29, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Да для вебсокетов хотя бы
     
     
  • 5.192, Аноним (189), 22:45, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    1 Треды есть 2 Сокеты реализуемы минимум двумя способами Просто нах это не ну... большой текст свёрнут, показать
     
     
  • 6.199, vitalif (ok), 01:39, 17/08/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Кэшированный AST сто лет в обед уже как раз хранится apc zendopcache Треды та... большой текст свёрнут, показать
     
  • 6.209, Онаним (?), 10:47, 17/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    JavaScript
    Асинхронность
    /0
     
     
  • 7.221, Аноним (221), 15:41, 18/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    А строгая типизация и C не /0? Это же вообще пушка.
     
  • 4.182, Онаним (?), 19:46, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Ну скажем так зо***ло писать форки и курлы, когда нужно в фоне обработать пяток блоков данных однотипно на множестве ядер. Это только например.

    Фоновые демоны, работающие с фронтендом и бэкендом через ZeroMQ - ещё "например", хотелось бы получить месседж, блямкнуть отдельный тред из тредпула, и дальше только собрать от треда готовый ответ на этот месседж, чтобы залить его назад в ZeroMQ.

    И так далее.

     
     
  • 5.235, OpenEcho (?), 09:20, 21/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    > Ну скажем так зо***ло писать форки и курлы, когда нужно в фоне
    > обработать пяток блоков данных однотипно на множестве ядер. Это только например.

    https://github.com/swoole/swoole-src


     
  • 2.102, OpenEcho (?), 09:41, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > запретить по дефолту выполнение кода отовсюду
    > кроме /index.php, чтобы дыры позакрывать.

    разве это относится к обязаностям языкa ???
    достатчно убрать весь код из DOCUMENT_ROOT оставив только index.php и будет тот же эффект.
    Тупоголовсть писателей, - вод где основная дыра


     
  • 2.125, Gemorroj (ok), 11:49, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    ИМХО, им нужно что-то типа roadrunner вкрутить. Так они не потеряют всю stdlib, как произойдет с асинхронщиной.
     
     
  • 3.184, vitalif (ok), 20:02, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    им бы впилить "автоматическую" кооперативную асинхронность, чтобы при блокирующих вызовах на самом деле приостанавливался поток

    в роадраннере так?

     

  • 1.76, Аноним (76), 08:08, 16/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Для чего нужен строго типизированный PHP? Напомню, что изначально PHP это шаблонизатор в который можно добавить немножко логики, прямо в текст страницы. Для чего достаточно трёх классов школы и пары примеров кода. Хотите возможностей Си с немногословностью скриптовых языков? Ваш выбор - Perl! Кстати, для чего эта гонка за производительностью? Ведь утверждалось, что скрипты в основном ждут I/O и хоть на ассемблере перепиши заметного ускорения не получишь.
     
     
  • 2.83, Онаним (?), 08:32, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Застрявшим в 1999 просьба не беспокоить.
     
     
  • 3.87, Аноним (80), 08:40, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Как будто что-то принципиально изменилось, за исключением того, что добавилось несколько более адекватных языков.
     
     
  • 4.106, Аноним (106), 10:13, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Список адекватных языков пожалуйста огласите, а то все какой-то маразм попадается, давно ищу...
     
     
  • 5.115, Аноним (109), 10:55, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    <trollmode>XQuery</trollmode>
     
  • 2.130, Адекват (ok), 12:25, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >Ведь утверждалось, что скрипты в основном ждут I/O и хоть на ассемблере перепиши заметного ускорения не получишь.

    как-то была задача написать скрипт

    Если корень из (a^2+b^2)/(ab+1) дает целое число, то вывести его, если не целое то не выводить.
    На баше скажем, с вызовом внешних софтин была одна скорость, потом я переписал его на си (как сумел) - получил скорость в 10000 выше.
    Ради интереса попробуйте написать на вашем любимом языке, потом на СИ и задать цикл от 1 до 10000 посмотрите скорость выполнения.
    ЗЫ:
    a от 1 до 100
    b от 1 до 100

     
     
  • 3.168, Michael Shigorin (ok), 16:33, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    "На баше" такое пишется "на bc(1)", разумеется.  Но с его форком и проверками всяко выйдет уже медленней, чем сишечка.

    Кстати, многие ли читают переменные из файлов с помощью read var < file, а не var='cat file' или в лучшем разе var="$(cat file)"?..

     
     
  • 4.223, PnDx (ok), 11:38, 19/08/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    1. Вот таки нет. На awk. На bash можно поливалку (a,b) в пайп организовать (Если очень хочется. Но будет в разы медленнее, полагаю).

    2. Это надо специально bash'измы учить. С риском нарваться на какой-нибудь dash/ksh.
    Реально требуется редко. Хотя…
    M1="11111111111111111111111111111111" # 32 bit mask
    M0="00000000000000000000000000000000" # 32 bit mask
    mask=${M1::$MASK}${M0:$MASK:32} # Leading "1", trailing "0"
    BYTE_MASK=$((2#${mask:0:8})).$((2#${mask:8:8})).$((2#${mask:16:8})).$((2#${mask:24:8})) # 4 octets
    …иногда таки да.
    По крайней мере, так оно нагляднее, чем битами крутить.

     
     
  • 5.224, Michael Shigorin (ok), 14:21, 19/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    >> read var < file
    > 2. Это надо специально bash'измы учить.

    Странный башизм, на dash/pdksh работает. :)

     
  • 3.227, Аноним84701 (ok), 22:09, 19/08/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Если корень из (a^2+b^2)/(ab+1) дает целое число, то вывести его, если не
    > целое то не выводить.
    > На баше скажем, с вызовом внешних софтин была одна скорость, потом я
    > переписал его на си (как сумел) - получил скорость в 10000
    > выше.

    Что-то уж слишком.




    % cat testsq.py&&time pypy testsq.py 10000
    import sys, math

    to_max = int(sys.argv[1])
    for a in range(1, to_max):
    for b in range(a, to_max):
    ab = a*b+1
    sq = a*a + b*b
    mod_res = sq % ab
    if (mod_res == 0):
    div_res = sq / ab
    sqrt = math.sqrt(div_res)
    if sqrt == math.floor(sqrt):
    print(a,b)(1, 1)
    (2, 8)
    (3, 27)
    ...
    (418, 1560)
    (1560, 5822)
    pypy testsq.py 10000  1,64s user 0,03s system 99% cpu 1,677 total



    vs.



    % cat square.c && gcc -Ofast square.c -o square -lm && time ./square 10000
    #include <stdio.h>
    #include <math.h>
    int main(int argc, char** argv) {
        unsigned int max = atoi(argv[1]);
        unsigned int a, b, sq, ab, mod_res, div_res, sqrt_res;
        for (a = 1; a < max; a++) {
            for (b = a; b < max; b++) {
                sq = a*a + b*b;
                ab = a*b + 1;
                mod_res = sq % ab;

                if (!mod_res) {
                    // да, я в курсе что целочисленные % и / будет одна операция
                    div_res = sq / ab;
                    sqrt_res = sqrt(div_res);
                    if (sqrt_res  == floor(sqrt_res))
                      printf("%u/%u \n",a,b);
                }
            }
        }
        return 0;
    ...
    ./square 10000  0,47s user 0,00s system 99% cpu 0,477 total

    ЗЫ: не, можно конечно использовать интринсики/SIMD, но это уже будет другой "класс" программ.

     
  • 2.193, Аноним (189), 22:49, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Строгая типизация в основном нужна на мой взгляд для удобства разработчиков. Для планирования перед разработкой, а не сначала делаем потом разбираемся в чем проблема. Для статического анализа и анализа всякими IDE
     
     
  • 3.208, Онаним (?), 10:45, 17/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Да. Строгая типизация в интерпретируемых языках в основном нужна тем, кто не может удержать в памяти и/или документировать структуры данных в процессе разработки.
     
  • 3.238, RedEyed (?), 14:38, 22/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    pypy Это чит ;)
     

  • 1.104, Аноним (104), 10:10, 16/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +3 +/
    > Дополнение: Проведено голосование, пытающиеся узнать, является ли P++ тем направлением, на развитие которого разработчики PHP готовы тратить своё время и силы. Все участники высказались против.

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

     
  • 1.129, Адекват (ok), 12:17, 16/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Для проекта предварительно выбрано имя P++ (PHP Plus Plus) по аналогии с С++.

    Ага, одно из новшеств будет прямое использование памяти, как C/C++.

     
     
  • 2.150, Аноним (153), 13:57, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Notepad++ :D
     

  • 1.145, Аноним (146), 13:40, 16/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    pypi
     
  • 1.160, Георгий (??), 14:57, 16/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Самое сложное лично для меня в современном PHP то, что нигде нет толкового объяснения, как можно заставить выполнять phar по аналогии с jar без распаковки. Чтобы не было гемора с правами файлов и т.п. Чтобы решение поставлялось одним куском и никакой вирусняк ничего не мог код редактировать. И чтобы от админа ничего не зависело.
    Последний раз писал на PHP несколько лет назад. Отстал от жизни, короче.
     
     
  • 2.161, Аноним (153), 15:25, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    PHP теперь умеет выполнять и c++ код!!

    https://www.php.net/manual/ru/ffi.examples-basic.php

     
     
  • 3.180, Георгий (??), 18:18, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    лол
     
  • 3.183, Онаним (?), 19:51, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    FFI просто офигенная вещь. Теперь вместо того, чтобы запиливать кастомные экстеншны к специфичным либам, в ряде случаев можно будет просто нарисовать обёртку.
     
  • 3.186, Георгий (??), 20:12, 16/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Вот это будет прикольно, если сделают, чтобы корректность проверялась на этапе запуска приложения, а не через type cast: https://wiki.php.net/rfc/generics
     
     
  • 4.207, Онаним (?), 10:43, 17/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    А зачем это языку с динамической типизацией, простите? Ну вот реально, каков юзкейс?

    Вот чего реально не хватает - так это переопределения классами стандартных операторов (математических, логических, сравнения, etc.), но похоже с этим - никогда.

     
  • 2.200, pda (?), 02:58, 17/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Я помню, добивался этого, но толку от этого оказалось чуть. Вместо прав php файлов вы получаете проблему прав на phar файл. А встроенные механизмы защиты они про контроль целостности, а не безопасность. Лучшее что там есть - подпись файла через openssl, но публичный ключ должен лежать рядом с phar. И это захардкожено.
    Дальнейшее я припоминаю плохо, но по моему подписанные (по крайней мере opessl) phar вообще не могут быть исполняемыми. Это правда обходится неподписанным php или phar, который включает в себя подписанный...
    Короче, phar это просто контейнер для composer и ни для чего другого он не предназначен.

    С другой стороны, сейчас проще использовать контейнеры. Собрать сервер из контейнеров с nginx, php-fpm, mariadb... Ну и контейнер с файлами сайта можно туда монтировать. Вот и неизменяемость.

     

  • 1.163, Аноним (163), 15:42, 16/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Зачем изобретать новый, когда уже есть жава, сишарп, етк
     
     
  • 2.201, pda (?), 03:00, 17/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, затем что C# нормально работает только на венде. А решения на Java начинаются с предложения взять сервер с 16 Gb памяти. Для начала.
     
     
  • 3.225, Аноним (189), 18:54, 19/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Сегодня заглянул в магазин 16 GB памяти стоит 5 тыс. рублей. разово
    Стоимость месяца специалиста знающего С++ стоит 5 тыс. долларов ежемесячно
    Выбор бизнеса очевижен вроде как. А для домашних пользоватлеей и тех кто не умеет считать всегда можно пистаь на PHP ;)
     
     
  • 4.229, pda (?), 09:13, 20/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    Ещё бы эту память из магазина в VPS поставить - совсем хорошо будет.
     

  • 1.172, Valar Morghulis (?), 16:57, 16/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Лучше бы поправили всякие родовые травмы, а в целом язык оставили. Hih короче
     
  • 1.188, Griggorii (?), 22:10, 16/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Ninja-ide help httpython вот так проще
     
  • 1.222, Аноним (222), 16:10, 18/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >в которой планируется добавить JIT-компилятор

    Шел 2019 год.

     
  • 1.230, Аноним (230), 16:05, 20/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > удерживает разработчиков в ограниченных рамках
    > все участники высказались против

    Прикольно)

     
  • 1.231, rihad (ok), 16:24, 20/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Фейсбук был написан Цукербергом на пыхе. Что еще раз доказывает, что для того чтобы стать миллиардером никакие толстожопые языки и фреймворки вроде руби, рельсов или жабы с шарпами не нужны.
     
     
  • 2.232, mickvav (?), 17:27, 20/08/2019 [^] [^^] [^^^] [ответить]  
  • +/
    А потом, когда взлетело хоть как-то - неспеша переписан нормальными ребятами за зарплату на типизированном надмножестве php - hack-e, который удобен для фейсбуковских задач. Так что да, чтобы стать миллионером - таки не нужны. А вот чтобы перешагнуть миллиард - внезапно оказывается, что можно и нужно написать свой фреймворк. И платить инженерам, чтобы вот все это летело.
     

  • 1.233, Аноним (233), 22:51, 20/08/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    они изобретают го походу. кто-нить, расскажите им, что го уже существует, они походу не в курсе.
     
  • 1.239, InuYasha (?), 20:26, 04/11/2019 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Как жаль что предложение так и не приняли :(
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру