The OpenNET Project / Index page

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

Началось бета-тестирование PHP 8

06.08.2020 22:48

Представлен первый бета-выпуск новой ветки языка программирования PHP 8. Релиз намечен на 26 ноября. Одновременно сформированы корректирующие выпуски PHP 7.4.9, 7.3.21 и 7.2.33, в которых устранены накопившиеся ошибки и уязвимости.

Основные новшества PHP 8:

  • Включение JIT-компилятора, применение которого позволит повысить производительность.
  • Поддержка именованных аргументов функций, позволяющих передававать в функцию значения в привязке к именам, т.е. можно передавать аргументы в произвольном порядке и определять необязательные аргументы. Например, "array_fill(start_index: 0, num: 100, value: 50)".
  • При вызове методов разрешено применение оператора "?", который позволяет инициировать вызов только, если метод присутствует, что позволяет избежать лишних проверок на возврат значения "null". Например, "$dateAsString = $booking->getStartDate()?->asDateTimeString()";
  • Поддержка union-типов, определяющих коллекции из двух и более типов (например "public function foo(Foo|Bar $input): int|float;").
  • Поддержка атрибутов (аннотаций), позволяющих привязать метаданные (например, сведения о типах) к классам без использования синтаксиса Docblock.
  • Поддержка выражений match, которые в отличие от switch могут возвращать значения, поддерживают комбинирование условий, используют строгое сравнение типов и не требуют указания "break".
    
       $result = match($input) {
           0 => "hello",
           '1', '2', '3' => "world",
       };
    
  • Сокращённый синтаксис определения классов, позволяющий объединить определение конструктора и свойств.
  • Новый тип возвращаемых значений - static.
  • Новый тип - mixed, который может применяться для определения приёма функцией параметров с разными типами.
  • Выражение throw для обработки исключений.
  • WeakMap для создания объектов, которыми можно пожертвовать при сборке мусора (например, для хранения необязательных кэшей).
  • Возможность использования выражения "::class" для объектов (аналог вызова get_class()).
  • Возможность определения в блоке catch исключений, не привязанных к переменным.
  • Возможность оставления символа запятой после последнего элемента в списке параметров функции.
  • Новый интерфейс Stringable для идентификации любых строковых типов или данных, которых можно преобразовать в строку (для которых доступен метод__toString()).
  • Новая функция str_contains(), упрощённый аналог strpos для определения вхождения подстроки, а также функции str_starts_with() и str_ends_with() для проверки совпадений в начале и конце строки.
  • Добавлена функция fdiv(), выполняющая операцию деления без вывода ошибки в случае деления на ноль.
  • Изменена логика соединения строк. Например, выражение 'echo "sum: " . $a + $b' ранее интерпретировалось как 'echo ("sum: " . $a) + $b', а в PHP 8 будет обработано как 'echo "sum: " . ($a + $b)'.
  • Ужесточена проверка арифметических и битовых операций, например, выражения "[] % [42]" и "$object + 4" будут приводить к ошибке.
  • Реализован стабильный алгоритм сортировки, в котором при разных запусках сохраняется порядок следования одинаковых значений.


  1. Главная ссылка к новости (https://www.php.net/archive/20...)
  2. OpenNews: Microsoft не станет заниматься поддержкой PHP 8.0 для Windows
  3. OpenNews: Выпуск Psalm 3.12, статического анализатора для языка PHP. Альфа выпуск PHP 8.0
  4. OpenNews: Релиз языка программирования PHP 7.4
  5. OpenNews: Уязвимость php-fpm, позволяющая удалённо выполнить код на сервере
  6. OpenNews: В PHP 8 будет добавлен JIT-компилятор
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/53502-php
Ключевые слова: php
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (119) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Рева RarogCmex Денис (?), 22:59, 06/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +15 +/
    Нужно больше непонятных исключений и странного синтаксического сахара
     
     
  • 2.8, Аноним (8), 23:31, 06/08/2020 [^] [^^] [^^^] [ответить]  
  • +11 +/
    > Изменена логика соединения строк.

    и почаще менять приоритеты операторов

     
     
  • 3.29, Онаним (?), 23:56, 06/08/2020 [^] [^^] [^^^] [ответить]  
  • +10 +/
    Есть такая привычка, называется "лишние скобки между разнородными операциями не помешают".
    Спасает железно.
     
     
  • 4.52, Аноним (8), 02:52, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Правильно, нафик приоритеты придумали (в си их неск-ко десятков) - есть же скобки!
     
     
  • 5.54, funny.falcon (?), 03:32, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Правильно! Вон в Lisp нет ни каких приоритетов, и ни кто не жалуется.
     
     
  • 6.67, ss (??), 08:46, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    (ведь ((это ((так интересно) и (умилительно)) считать) скобки))...
     
     
  • 7.118, с (?), 01:43, 08/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    (
      Нефиг (
        макароны лепить, (
          либо (на строки бей),
          либо (используй временные переменные)
       )
    )
     
  • 7.120, Онаним (?), 11:02, 08/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Гораздо умилительнее видеть штук 10-15 разных операторов в произвольном порядке, и далее пытаться вслепую сосчитать, какой из них первый по приоритету.
     
  • 5.77, Онаним (?), 09:04, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Абсолютно. Иногда берёшь тот или иной код, и без бутылки не разберёшься, чего там напихали в длиннющее выражение. Скобки этот процесс упрощают, и выражения становятся читабельными даже для новичков. Которые почему-то чаще остальных любят зубодробительные выражения, завязанные на приоритеты. А потом сиди разбирай, чего они там накорябали.
     
     
  • 6.108, rshadow (ok), 16:57, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ну здесь явно дело не в скобках, а в том что по рукам надо бить. Новичкам еще чаще.
     

  • 1.2, Аноним (2), 22:59, 06/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > Добавлена функция fdiv(), выполняющая операцию деления без вывода ошибки

    Зачем?

     
     
  • 2.16, Аноним (16), 23:45, 06/08/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    написано же - чтобы не было вывода ошибки.
    А NaN можешь обработать и сам.
     
  • 2.18, Онаним (?), 23:47, 06/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Затем, что иногда нужно получить не warning (или ошибку, которая планируется в будущем), а +-INF или NaN.
     
     
  • 3.31, имя_ (?), 23:58, 06/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    когда такое бывает?
     
     
  • 4.33, Онаним (?), 00:01, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Когда нужно записать результат и использовать дальше.
    С NaN много не наделаешь, а вот +INF/-INF - ценный мех, его можно ещё поумножать-поскладывать.
     
     
  • 5.38, Онаним (?), 00:15, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    И даже как-то жалко, конечно, что в современных языках понятие порядка INF почти не прижилось, приходится костылить, где надо.
     
  • 2.60, Lex (??), 05:49, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Затем, что не все настолько упоротые, чтобы из-за какого-то очень частного случая в лице деления на ноль тащить ещё и всевозможные исключения, серьезно усложняя структуру и логику работы кода, тогда как можно просто проверить соответствие результата приемлемым диапазонам и... всё.

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

     
  • 2.88, Аноним (88), 09:54, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Это же очевидно, чтобы делить на ноль!
     
  • 2.100, Zlo (??), 12:31, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Потому что забыли что у них есть @
     

  • 1.3, Satori (ok), 23:00, 06/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +19 +/
    Не понимаю, почему его называют простым для обучения. Редкостная хрень, разжижающая мозги.
     
     
  • 2.6, Аноним (6), 23:16, 06/08/2020 [^] [^^] [^^^] [ответить]  
  • –7 +/
    А чем тогда пользоваться? На голом ассемблере динамические сайты верстать?
     
     
  • 3.9, Satori (ok), 23:31, 06/08/2020 [^] [^^] [^^^] [ответить]  
  • +12 +/
    > А чем тогда пользоваться? На голом ассемблере динамические сайты верстать?

    А вариантов только два: пыха и ассемблер?

     
     
  • 4.28, Аноним (28), 23:56, 06/08/2020 [^] [^^] [^^^] [ответить]  
  • +16 +/
    Почему вместо PHP не взять тот же Питон?
    Ну ладно, Питон иногда тормозной, ну JavaScript?
    Ну ладно, JavaScript иногда странный, ну TypeScript?
    Ну ладно, TypeScript иногда замороченный, ну Kotlin?
    Ну ладно, Kotlin иногда тяжеловесный, ну Go?
    Ну ладно, Go иногда невыразительный, ну Rust?
    Ну ладно, Rust иногда без нужных либ, ну Java?
    Ну ладно, Java иногда навевает тоску, ну Scala?
    Ну ладно, Scala иногда слишком сложная, ну Haskell?

    Ну ладно, Haskell иногда тоже слишком сложный. Пожалуй, возьмём PHP, работа стоит!

    (c) https://habr.com/ru/company/skyeng/blog/506704/#comment_21741120

     
     
  • 5.57, Аноним (57), 03:47, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    На финалочку Erlang
     
     
  • 6.62, Анончик (?), 06:49, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • –4 +/
    Дед,за 30 лет существования Эрланга на нем было 30 вакансий, оно тебе надо на паперти стоять с протянутой рукой?
     
     
  • 7.75, Аноним (57), 08:55, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Много крутого дорогого и распределенного софта пишут на erlang, включая и банковские процессинг системы и для телевидения.

    + https://elixir-lang.org/

     
  • 7.76, YetAnotherOnanym (ok), 09:00, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Упаси Господь Эрланг от популярности Пыха!
     
     
  • 8.102, имя_ (?), 12:39, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    а потом удивляются почему для языка нет вакансий Тут либо eternal september, ли... текст свёрнут, показать
     
     
  • 9.105, YetAnotherOnanym (ok), 13:51, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Не может забыть тот, кто никогда не знал А кто про Эрланг знает - тот не забуде... текст свёрнут, показать
     
  • 7.109, rshadow (ok), 17:01, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Ахахаха. Логика железная: если в стране всего один президент, значит это никому не нужная профессия.
     
  • 5.84, Ag (ok), 09:44, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Возьмите добрый старый Perl и не страдайте. :P
     
  • 3.10, Аноним (8), 23:32, 06/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    кроме асма и пыха других языков - нема?
     
  • 3.12, Гей из крупной корпорации (?), 23:37, 06/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ruby, Python, Java, Nodejs и Golang
     
     
  • 4.15, Онаним (?), 23:45, 06/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Java немножно мимо, а на остальном разве что хеллоуворлды лепить.
     
     
  • 5.17, Ями (?), 23:47, 06/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ну даже если принять эту чушь за правду, хелловорлды - это всё что PHP умеет, так что перечисленные языки не хуже.
     
     
  • 6.30, cjaushe4ka (?), 23:57, 06/08/2020 [^] [^^] [^^^] [ответить]  
  • –6 +/
    ну я посмотрю, как быстро ты сможешь раскатать админку с бизнес логикой на nodejs, golang, ruby, python. в пыхе это делается установкой laravel, symfony или yii и все.
     
     
  • 7.42, AleksK (ok), 00:23, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Rails, Sinatra, Merb, Django, Flask... это так, навскидку, для js даже перечислять не буду там миллион фреймворков на любой цвет и вкус.

    И пара десятков табличек с несколькими вьюшками и контроллерами вообще не тянет на какую-то сложную бизнеслогику

     
     
  • 8.56, funny.falcon (?), 03:35, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Merb мертв, детка, Merb мертв ... текст свёрнут, показать
     
     
  • 9.58, Аноним (58), 04:07, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Впервые слышу о нём Раби вообще мертво, немного ожило за счёт хайпа рол, но пот... текст свёрнут, показать
     
     
  • 10.114, Аноним (114), 20:10, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Да-да, конечно ... текст свёрнут, показать
     
  • 7.43, an0nymous (?), 00:43, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    абсолютно так же. только без свистоплясток с нестрогими типами
     
  • 7.44, Говорун (?), 00:48, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > laravel initial release: June 2011
    > symfony initial release: 22 October 2005
    > yii: In October 2006, after ten months of development, the first alpha version of Yii was released, followed by the formal 1.00 release in December 2008.

    В это время…

    Ruby on Rails initial release: August 2004

     
     
  • 8.59, Аноним (58), 04:11, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Будто вчера было, помню как рассуждал на тему этих сырых поделок которые убожест... текст свёрнут, показать
     
     
  • 9.69, Онаним (?), 08:50, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    PHP-то может и не стал, а вот где ваши проникновенные руби с хрустом и прочие св... текст свёрнут, показать
     
  • 9.94, cjaushe4ka (?), 12:22, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    битрикс - кусок гoвна который оптимизирован под чсв разработчиков... текст свёрнут, показать
     
     
  • 10.104, Аноним (58), 13:41, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    А кто спорит Я просто застал время, когда он был тормозным глючным куском говна... текст свёрнут, показать
     
  • 8.121, Онаним (?), 11:04, 08/08/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    И с 2004 оно так и не взлетело Такие дела ... текст свёрнут, показать
     
  • 6.32, Онаним (?), 23:58, 06/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Расскажи это хотя бы FreePBX.
    Эпичненький такой хеллоуворлд.
    Хотя говнокода там конечно просто воз.
     
  • 6.61, Lex (??), 05:51, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Пых очень многое умеет, но нынче на «чистом» уже почти никто не разрабатывает - применяются всевозможные фреймворки и модули
     
     
  • 7.70, Онаним (?), 08:51, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Это просто от неосиляторства.
    На самом деле без фреймворков всё делается не менее просто, и главное - не изобретая велосипедов, но для этого надо немного уметь думать.
     
     
  • 8.81, Lex (??), 09:10, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Неосиляторства чего Вначале изучают сам пых который очень прост , потом - ... текст свёрнут, показать
     
     
  • 9.82, Онаним (?), 09:41, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    После который очень прост смысла что-то разбирать дальше нет Он далеко не про... текст свёрнут, показать
     
     
  • 10.83, Онаним (?), 09:42, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    это не значит, что фреймворки - зло, но они зло там, где они не нужны ... текст свёрнут, показать
     
  • 10.92, Lex (??), 12:09, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    На фоне тех знаний и умений, которые требуются норм пых-разработчику, изучение и... текст свёрнут, показать
     
  • 9.87, Онаним (?), 09:49, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Не переживайте, наши области разработки слишком слабо пересекаются Все эти кэнд... текст свёрнут, показать
     
     
  • 10.93, Lex (??), 12:16, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Какие кэнди Не переживаю, ведь я уже некоторое время практически не имею дел с... большой текст свёрнут, показать
     
  • 5.65, Брат Анон (?), 08:05, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Надо передать разработчикам докера, талоса, кубернетиса и ещё десятку годных тулз, что на го только хелло-ворлды клепать))
     
     
  • 6.71, Онаним (?), 08:51, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Тссс. Это тулзы для запуска хеллоуворлдов.
     
  • 6.79, Варенье (?), 09:08, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Не, ну с большим штатом и на го можно написать что-нибудь стоящее. Разве что вот пример кубернетеса показывает, что шаг влево, шаг вправо — и надо делать костыли над слабой системой типов, ограниченными возможностями языка и остальными проблемами. Всё же неспроста там гигантский пласт кода занимается тем что конвертирует одни типы в другие, как-то их сериализует и десериализует, держится на соплях и тестах, и работает за счёт черной магии и неочевидных сайд-эффектов
     
     
  • 7.85, Онаним (?), 09:46, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    И вот всё у них так, да.
     
  • 7.91, stalinisslut (?), 11:35, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Какой язык по-вашему больше подходит для проектов уровня кубернетес?
     
     
  • 8.95, Gemorroj (ok), 12:24, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    C C ... текст свёрнут, показать
     
  • 8.117, Онаним (?), 20:28, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Вот конкретно это я бы как раз оставил и не трогал Язычки стоят проектика ... текст свёрнут, показать
     
  • 7.129, Брат Анон (?), 10:31, 12/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Щито-щито? Большой штат?... Слабая система типов?.... Надо делать костыли?...Рука-лицо..
     
  • 2.14, Онаним (?), 23:44, 06/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вообще слабо понятно, откуда это взялось - видимо кто-то из хейтеров толкнул.
    Это породило кучу недопрограммистов, сформировавших впечатление о себе.

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

     
     
  • 3.46, ананим.orig (?), 01:28, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    вам же ясно написали, не?
    > Не понимаю, почему его называют простым для обучения. Редкостная хрень, разжижающая мозги.

    про мозги по-моему всё ясно сказано.

     
  • 2.24, онанимуз (?), 23:54, 06/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    это можно сказать про любой язык программирования :D
     
     
  • 3.47, ананим.orig (?), 01:29, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    это можно сказать про любой язык
     
  • 2.51, Аноним (51), 02:28, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Простым для обучения он был лет 15 назад.
     

  • 1.11, FlatFile CMS (?), 23:35, 06/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Безссмысленный мажорный релиз.
    Golang умеет в юникод со своего основания.
     
     
  • 2.86, Аноним (86), 09:48, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +2 +/
    golang - Появился в: 10 ноября 2009
    php - Появился в: 8 июня 1995
     
  • 2.96, Gemorroj (ok), 12:25, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    к логопеду, животное (с)
     

  • 1.13, Онаним (?), 23:41, 06/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    > поддержка именованных аргументов функций - дайте два, элегантное решение проблемы с порядком операндов, где нужно конечно, лепить везде не нужно
    > ?-> - заверните, цепочки вызовов с возможностью отлупа становятся реально удобными

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

     
     
  • 2.20, Ями (?), 23:48, 06/08/2020 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Сразу становится заметно что изначально не тот язык выбрали?
     
     
  • 3.22, Онаним (?), 23:53, 06/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Как раз таки наоборот, становится понятно, что выбрали то. Теперь код получится ещё упростить.
    Улучшение производительности на ровном месте тоже не помешает.
    Можно было взять жабу, но там свои тараканы.
     
  • 3.49, ананим.orig (?), 01:33, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Сразу становится заметно что изначально не тот язык выбрали?

    и буквы не те, и со знаками препинания надо что-то делать.

     
  • 2.89, cypa (ok), 10:29, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    маршрутизация и тарификация на php?!? вырезать избушку из кругляка консервным ножом тоже можно
     
     
  • 3.98, Онаним (?), 12:28, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вот этот вот ступор в глазах - он всегда улыбает :)
    Тем временем PHP более чем удобный инструмент для надёжной обработки фиговой тучи данных.
     

  • 1.21, СССР (?), 23:52, 06/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    так то если простенький бэк нужно накатать то да, можно поюзать 7ку. А вообще, языки где не нужно заботится о типах данных, об освобождении ресурсов, т.е. там где программист не контролирует хранение данных в ОЗУ, не оптимизирует обработку этих данных, все это деградируют программиста. В модных языках так.
     
     
  • 2.25, Онаним (?), 23:54, 06/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Для низкоуровневых оптимизаций в PHP есть возможность подключать специфичные модули на C.
     
  • 2.27, Гомосексуалист из крупной корпорации (?), 23:56, 06/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    JIT был создан как раз для помощи долгоживущих с "утечками памяти PHP".
    https://habr.com/ru/company/badoo/blog/434272/
    https://roadrunner.dev/
     
     
  • 3.53, СССР (?), 03:24, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    все ровно, годится только для быстрых набросков бэка, либо если запросов совсем чутка будет.
    а так:
    >>PHP-инженеры годами искали способы решения этой проблемы, использовали продуманные методики «ленивой» >>загрузки, микрофреймворки, оптимизированные библиотеки, кеш и т. д. Но в конечном итоге всё равно >>приходится сбрасывать всё приложение и начинать сначала, опять и опять.

    на нормальном языке это вовсе даже не проблема. Ставим Nginx впереди, он отдает статику + перенаправляет на бэки написанные на норм. ЯП, которые крутятся постоянно, слушают впередистоящий nginx, держат конекты с БД, другую нужную от запроса к запросу инфу. Ситаю такой подход единственным адекватным в задачах с болшим кол.вом  запросов.

    >> диагностика утечек памяти доводит до бешенства, а использовать отладку по F5 уже нельзя

    да потому что невнимательность. Если изначально приучать себя к окуратности то случайные выстрелы в ногу сводятся к нулю.

    >>подход: построить взаимодействие между процессами через сокеты/конвейеры. Этот подход за последние >>десятилетия доказал свою надёжность

    эфективнее использовать втроенный js , например QTScriptEngine. тяжелые расчеты выносим в классы на С++, динамический пользуемся из js, создаем объект на базе этих классов, вызываем методы, пишем/читаем данные.

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

     
     
  • 4.72, Онаним (?), 08:53, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > приходится сбрасывать всё приложение и начинать сначала, опять и опять.
    > на нормальном языке это вовсе даже не проблема

    Это не проблема на нормальных мозгах. Просто народ пытается перелезть на пых с классики, и пишет как под классику, тащит всё-всё-всё в память, чтобы отдать 512 байт ответа. Когда там совершенно другая модель работы. Которая имеет свои несомненные преимущества - если что-то падает, то падает один запрос, а не всё приложение.

     
  • 4.123, Sgt. Gram (?), 22:18, 08/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > окуратности
    > эфективнее

    Откуда ж вы такие берётесь…

     
  • 3.55, СССР (?), 03:35, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • –2 +/
    но опять же, основной посл )
    класическому покемону лилеющий модные языки, реализовать чтото типа roadrunner попросту нереально.
    мышление у таких покемонов совсем не то, а это все результат современного подхода мира IT в плане упрощения ЯП, модных так сказать штучек. Молодым программистам самим реализовать аналогичный подход уже весьма тяжело. Их мышление сводится к иному взгляду на реализацию. Только создание контента. Рюшечки, пиченьки, баньтики,, как девочки.

     
     
  • 4.73, Онаним (?), 08:54, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Вы перепутали "нереально" с "не нужно".
    Это опять загоны тех, кто так и не смог перестроиться на иную модель работы.
     

  • 1.26, имя_ (?), 23:55, 06/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    приведите в порядок уже стандартную библиотеку, если уже собрались что-то ломать.
     
     
  • 2.34, Онаним (?), 00:04, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • –3 +/
    Что не так со стандартной библиотекой? :) Живее всех живых.
    В тех же хипстерских репозитарчиках API каждой второй либы каждые полтора релиза ломается - никто не ноет.
     
     
  • 3.35, имя_ (?), 00:06, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +3 +/
    отсутствие консистентности
     
     
  • 4.37, Онаним (?), 00:09, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Это результат поступательного развития. Почему сложно изменить, думаю, понимаешь.
    Вопрос с порядком аргументов в 8 решили радикально, конечно :D
     
  • 4.41, Онаним (?), 00:21, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Ну и как по мне, так лучше лёгкие недочёты по именованию, чем каждый релиз ломающийся API c необходимостью кардинально перепахивать код (питонисты на этом месте поперхнулись).
     
  • 2.36, Онаним (?), 00:09, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Да и ничего особо не сломали, тaщемта. Вопрос скорее как писалось.
    Мы на тестах пары здоровенных inhouse аппликух ничего нового не увидели.
     
     
  • 3.39, Аноним (57), 00:18, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Они все сломали, можно и обратную совместимость было удолить
     
     
  • 4.40, Онаним (?), 00:19, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Что именно то сломали?
    АААА ВСЁ СЛОМАЛОС!
     

  • 1.45, Аноним (45), 01:19, 07/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Юникод так и не завезли?
     
     
  • 2.97, Gemorroj (ok), 12:28, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    mbstring давно завезен
     
     
  • 3.106, Аноним (106), 15:14, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Так это для аутистов как, чтобы время тратили.
     

  • 1.63, Анончик (?), 06:54, 07/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Господа пыхеры, а вы со всеми функциями языка без справочника работаете?
    Просто я когда (Будем честными) говнокодил на пыхе это для меня было проблемой.
     
     
  • 2.64, A.Stahl (ok), 07:24, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Ни один программист ни одного языка не пишет код не имея справочника стандартной либы под рукой.
     
  • 2.74, Онаним (?), 08:55, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Со многими.
    Но в современном мире без справочника работать, когда справочник просто в соседнем окошке на экране (или вообще на соседнем экране) - это что-то странное.
     

  • 1.66, Аноним (66), 08:34, 07/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Очень жаль, что не добавили асинхронности... Workerman, Swoole т.д. - всё равно костыли. Хотя, ну, и ладно: есть же Node.js, Go, змей.
     
     
  • 2.78, Онаним (?), 09:06, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    В смысле не добавили асинхронности?
    Генерируете подзапрос, и имеете столько асинхронности, сколько вам нужно.
    Или опять нужны фреймворки?
     
     
  • 3.80, Онаним (?), 09:09, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Интересно, когда кончатся любители пытаться втащить ежа (single process / task queueing) в ужа (task queueing / per-task processes).
     
     
  • 4.112, Аноним (66), 18:39, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Сам с собой разговариваешь? Хмм...
     
  • 2.99, Gemorroj (ok), 12:30, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    на internal структурах вроде как небольшие подвижки есть, но да, глобальная асинхронность как-то заглохла. было уже несколько реализаций async/away, fiber. но что-то не договорились разработчики.
     

  • 1.68, ss (??), 08:47, 07/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Изменена логика соединения строк.

    .изда котенку...

     
  • 1.90, Аноним (90), 11:01, 07/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    В итоге, хороший язык получился. Его бы от легаси почистить и на юникод перевести, но судя по PHP 6 - такое его разработчикам не под силу.

    Но главная проблема PHP - его инфраструктура.

    PhpStorm - глючное говно. Часть нужных библиотек для PHP - просто корявые и плохо-документированные биндинги к сишным либам. А другая часть написана неадекватными людьми, которые пытаются втюхать пользователям своё видение PHP со своими особенными DI, автолоадингом и разрешённым набором библиотек.

     
     
  • 2.101, Gemorroj (ok), 12:32, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +1 +/
    полная чепушня) как раз инфрастуктура php - одно из его главных преимуществ.
     
     
  • 3.110, Аноним (110), 17:49, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • –1 +/
    А теперь изучите всерьёз инфраструктуру, сопровождающую типичные проекты на Java/.Net/Python/C++ и сравните.

    Действительно хороших IDE под PHP попросту нет. Фреймворки типа laravel/yii/etc. — похожи друг на друга как родные братья, с примерно одинаковыми сильными и слабыми сторонами. Экосистема откровенно заточена на веб-сервисы, свежая кровь почти не поступает.

    У PHP есть свои козыри. Но инфраструктура разработки к ним явно не относится — в лучшем случае, по отдельным моментам, на уровне прочих, но не более.

     
     
  • 4.111, Gemorroj (ok), 17:56, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Java/.Net/Python/C++

    да, у этих языков/платформ тоже хорошие инфраструктуры. это как-то отменяет такую же у php?

    > Действительно хороших IDE под PHP попросту нет.

    PhpStorm? Все продукты jetbrains могут претендовать на роль лучших в своей нише. разве что clion пока не дотягивает.


    > Фреймворки типа laravel/yii/etc. —
    > похожи друг на друга как родные братья, с примерно одинаковыми сильными
    > и слабыми сторонами. Экосистема откровенно заточена на веб-сервисы

    Если бы разбирался в php, то такую чушь не написал бы.
    Конкретно эти фреймворки не заточены на написание веб-сервисов. Хочется экзотики? Пощупай swoole/roadrunner/reactphp, например.

    > свежая кровь почти не поступает

    тут правда. такие неадекваты как ты создают негативный окрас вокруг пхп и молодежь бежит ваять на js/go/python.


     
     
  • 5.115, Онаним (?), 20:26, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Это очень хорошо. Чем больше "бегут ваять", тем чище атмосфера, и тем меньше конкуренции.
     
  • 5.119, Аноним (110), 01:51, 08/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Не смешите мои тапочки Да, по сравнению с другими IDE для PHP она хороша Но по... большой текст свёрнут, показать
     
     
  • 6.125, Анонимуз (?), 23:15, 09/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    >Собственно влез во всё это потому что бэкенд в одном моём проекте на Yii2. Прикольная штука, в целом он мне понравился.

    Yii2 - новинка из 2008-го, уже почти закопали. С тех пор столько воды утекло, что лучше промолчу.

    Инфраструктура как раз таки один из плюсов современного PHP - компонентные фреймворки и composer, куча тестовых фреймворков, тулзов для стат анализа и тд. Допускаю, что где-то может быть лучше, но упрекать тоже не за что ( +/- как во всех остальных скриптовых языках ).

    IDE сдаются только на поддержке магии, и write-only кода. Типизация и отказ от повсеместного использования массивов творят чудеса.

     
     
  • 7.126, Аноним (110), 13:35, 10/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    В 2008 году был Yii 1 0, Yii 3 0 я бы ещё побоялся ставить в production Зачем в... большой текст свёрнут, показать
     
  • 4.116, Онаним (?), 20:26, 07/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    PHPStorm, PHPEd
     

  • 1.103, InuYasha (??), 12:55, 07/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Быдлокодеры отвергли P++ - пусть страдают.
     
  • 1.113, Аноним (113), 19:57, 07/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Серебрянные пули и осиновый кол в операционную СРОЧНА!!!111!!
     
     
  • 2.122, Онаним (?), 11:11, 08/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Да ладно вам, ваш хруст ещё потрепыхается.
     
     
  • 3.127, Аноним (113), 14:20, 11/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    Наш хруст жив и здоров, спасибо.
    Я работал на PHP full time больше года.
    При всём уважении, пули и кол, пожалуйста.
     
     
  • 4.128, Онаним (?), 16:57, 11/08/2020 [^] [^^] [^^^] [ответить]  
  • +/
    > Я работал на PHP full time больше года.

    ВАУ!
    А я на нём почти 20 лет уже пишу...
    Ага, с 4.0.

     

  • 1.124, Аноним (124), 20:42, 09/08/2020 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    Не люблю его по эстетическим причинам. Многое в подобных языках сразу было не заложено и теперь эти костыли всяко сбоку и прочим образом крепят.

    Из скриптовых Ruby мне наиболее близок. Ещё есть Crystal/Elixir

     

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



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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