Разработчики языка PHP выступили (https://externals.io/message/106503) с идеей по созданию нового диалекта P++, который поможет вывести язык PHP на новый уровень. В текущем виде развитию PHP мешает необходимость сохранения совместимости с имеющейся кодовой базой web-проектов, что удерживает разработчиков в ограниченных рамках. В качестве выхода предлагается (https://wiki.php.net/pplusplus/faq) параллельно начать развивать новый диалект PHP - P++, разработка которого будет вестись без оглядки на необходимость сохранения обратной совместимости, что позволит добавить в язык революционные улучшения и избавиться от устаревших концепций.Наиболее заметными изменениями в P++ станет переход к использованию строгой типизации и избавление от применения тегов "‹?". Для проекта предварительно выбрано имя P++ (PHP Plus Plus) по аналогии с С++. PHP и P++ предложено развивать бок о бок и использовать единый runtime. Не связанные с синтаксисом низкоуровневые компоненты, структуры данных, расширения и оптимизации производительности одновременно будут разрабатываться для PHP и P++, но в режиме PHP будет сохраняться обратная совместимость, а в P++ можно будет экспериментировать с эволюционированием языка.
Код на PHP и P++ можно будет смешивать в одном приложении и выполнять одним интерпретатором, но метод разделения кода пока не определён. При этом разработчики не отказываются от планов по развитию ветки PHP 8, в которой планируется (https://www.opennet.ru/opennews/art.shtml?num=50428) добавить JIT-компилятор и средства для обеспечения переносимости с библиотеками на C/C++. Проект P++ пока находится на стадии обсуждения предложения. Основным сторонником P++ является Зеев Сураски (Zeev Suraski (https://en.wikipedia.org/wiki/Zeev_Suraski)), один из лидеров сообщества разработчиков PHP, сооснователь компании Zend Technologies и автор движка Zend Engine.Из возражений (https://wiki.php.net/pplusplus/concerns) оппонентов можно отметить опасение в недостатке ресурсов для продвижения проекта (в режиме полного рабочего дня над PHP работает всего два разработчика), возможность фрагментации сообщества, конкуренция с уже существующим языком Hack (https://www.opennet.ru/opennews/art.shtml?num=39368) (PHP со статической типизацией), опыт проекта HHVM, в конечном счёте отказавшегося (https://www.opennet.ru/opennews/art.shtml?num=50133) поддерживать в одном runtime PHP и Hack, вопросы по поводу организации сосуществования и взаимодействия PHP и P++, нетривиальность конвертации кода PHP в P++, несовместимость P++ с существующими инструментариями для PHP и необходимость убедить авторов инструментариев и IDE обеспечить поддержку новой редакции.
URL: https://blog.jetbrains.com/phpstorm/2019/08/php-annotated-au.../
Новость: https://www.opennet.ru/opennews/art.shtml?num=51291
так я не понял - phar:// поддерживать планируют?
Теперь file_exists() будет строго-типизированно запускать third_party-код при условии, что ты ему передашь строго-типизированную строку, строго-типизированно начинающуюся на "phar://".
Для тех, кто в системные вызовы передаёт пользовательские строки без валидации - обязательно.
PHP система удаленных вызовов! Вот оно как Михалыч!
Р##
Visual PHP
ПыхПиПи
Borland PHP
Turbo PHP
*.ppp
π — [pi:]
PyPy — [pipi:]
P++ — [pipipi:]
А компилятор -- PPPC?
*.ppc
.пипец?)
.3p
gpp
Строгая или статическая типизация?
>strict_types
а вот это ложное понятие, там должно быть strong
это два разных понятия, как вы думаете?
Типизация не нужна. В этом-то и вся прелесть - код отработает и что-то выдаст в почти любой ситуации.
Правда такую фигню выдаст…
Зато столько сразу эмоций! Живи эмоциями!
Мы уже видели это https://stackoverflow.com/a/2220571
> Мы уже видели это https://stackoverflow.com/a/2220571Эталонное безумие.
"Два креста" - это сразу диагноз! ;)
В фидо, если память не изменяет - плюсами людей банили.
Расстреливали из плюсометов
Предлагаю для нового языка произношение «пипеп».
- Давайте напишем язык удобный для всех, где нет никаких типов, где можно гвозди сравнивать с бананами и даже получать какой-то результат такого сравнения. Это же ваще круто и удобно.- прошло 30 лет
- Давайте запилим язык, в котором будет типизация.
Процесс взросления
"Первые тридцать лет самые сложные в жизни мальчика" (с)
40
65
> где можно гвозди сравнивать с бананами и даже получать какой-то результат такого сравненияЭто довольно старая идея. Из неё возникла такая интересная абстракция как "количество", а из неё потом - "число". Из которого потом - вся математика.
Вот только для написания софта - не очень подходит
Что именно не очень подходит для написания софта - абстракции, числа, математика или старые идеи?
- Да не согласен я!
- Что, с Энгельсом или с Каутским?
- С обоими!
Захожу в магазин и говорю: Здравствуйте, дайте мне семь
А вам отвечают что нет, абстракций сегодня не завезли, только настоящие, реальные программистские товары.
И дают вам цикл, монаду и итератор.
> Захожу в магазин и говорю: Здравствуйте, дайте мне семь"" Вам желательно отведать хорошей жирной курочки? Зайдите в любую харчевню, сделайте слуге вот этак (показывает, как вращают вертел) , god-dam, и вам приносят кусок солонины без хлеба. Изумительно! ""
может что-то приличное получится. а то как вспомню:
$a=0;
if ($a==$b) {
//тут код выполнится
//если $b неопределено или null
}
ашшштрясет:) везде надо эти === писать чтобы все предсказуемо работало
Лучше что бы не выполнился? Почему?
Потому что разыменование не определённой переменной является логической ошибкой, и интерпретатор, написанный адекватными людьми, должен на этом месте падать, а не пытаться угадать, чего же на самом деле хотел сказать кодер.
нет не должен (иначе бы софт должен что ли крашиться всегда и везде где встретить NULL в качестве значения? что за дичь)
Вот хороший пример человека, который не понимает разницы между "переменная не объявлена" и "переменной присвоено значение NULL".
ты походу перепутал всё с "разыменованием указателя", но тут ведь нет указателей и их разыменований. тут сравнение конкретного значения, пусть оно и NULL, а не попытка обратиться в область памяти с адресом NULL
Это ты попутал ошибку разыменования нулевого указателя с логической ошибкой. В первом случае код всегда упадёт, потому что процессор откажется выполнить операцию (не берём в расчёт те архитектуры, где она допустима), во втором — для процессора всё выглядит нормально, но ошибку можно (и нужно) обнаружить на более высоком уровне, в самом интерпретаторе. Это позволило бы ещё на этапе начальной отладки выявить и устранить ошибку, но PHP её старательно скрывает, и она с высокой долей вероятности может попасть в прод.
ммм, а 0 эквивалентно NULL ?напомнило ещё JS : https://cs9.pikabu.ru/post_img/2016/09/15/7/1473939099158120...
походу всё что с веб связано - тотальная наркомания (и самое страшное, что это всё пытается вырваться за пределы веба)
скоро чтобы выучиться на инженера надо будет сначала понять дзен, но строго во время необходимой фазы луны
*постичь дзен
Сейчас набежит хипстота и обвинит тебя в неосиляторстве стандарта языка, где вся эта тысяча граблей старательно описана и запротоколирована.
не эквивалентно.
в php 2 типа сравнения, строгое и не строгое.
хочешь поведение когда типы не учитываются - твой путь к 2-м равно, хочешь с учетом типов - используй 3 равно.
Используйте === если Вам важен тип!
Я уже молчу, что Вы ССЗБ, если не проверяете переменную $b на существование или не используете оператор ?? .
?? -?
Может имелось ввиду:?bool ?int ?float ?array ?string
? :)
> ?? -?
> Может имелось ввиду:
> ?bool ?int ?float ?array ?string
> ? :)Нет!
Имелось ввиду или
$a=0;
if (isset($b) && $a==$b) {
//тут код выполнится
//если $b неопределено или null
}Или
$a=0;
if ($a==($b??-1)) {
//тут код выполнится
//если $b неопределено или null
}Хотя согласен, второй пример так себе и использовать лучше первый! (Просто я недооценил упоротость изначального кода)
Используя любую переменную программист ОБЯЗАН или быть уверенным, что она инициализирована, или проверить это!
Это не фишка PHP - это общие правила программирования!
Нет такой «фишки в программировании», что null равен булевому значению.
> Нет такой «фишки в программировании», что null равен булевому значению.В языках со СТАТИЧЕСКОЙ типизацией да!
В языках с динамической типизацией у каждого языка существуют свои допустимые правила преобразования типов.
и вполне логично, если вы явно не задаёте сравнение по типу (===), а сравниваете только по значению (==) например Вы сравниваете null с boolean то язык просто обязан привести их к одному типу для сравнения или null в boolean или boolean в null. И вполне логично что false==null 0=='', как и '3'==3, так как HTTP методы GET, POST, и COOKIE (я знаю что этот не HTTP метод, если что) могут могут передавать только строки, то даже используя <input type="number" name="int" value="3"/> В $_POST['int'] никогда не будет 3, там всегда будет '3' - это особенность HTTP-методов и HTTP-протокола, для работы с которым и был написан PHP!
Ага. И if (var) на поинтерах в C тоже не встречается чуть менее чем нигде, уговорили.
> Используя любую переменную программист ОБЯЗАН или быть уверенным, что она инициализирована, или проверить это!Между тем, это (на всякий случай, вдруг программист недоглядит, людям ведь свойственно ошибаться) мог бы проверить интерпретатор. А в случае, когда переменная не объявлена, — даже не проверить, а просто не пытаться как-то обойти заведомую ошибку.
Программист !== Рукожоп
Если Вы ДАЖЕ не можете "доглядеть", существование переменной, а проверять её Вам лень - то программирование это не Ваше дело!
> Программист !== Рукожоп
Программист != РукожопА если написать так, будет false или true?
>> Программист !== Рукожоп
>
> Программист != Рукожоп
>
> А если написать так, будет false или true?false в любом случае, просто я подчеркнул изначально затронутую тему.
ну и мтоге получается куча писанины и проверки типов. по сути вытаскивание глад через одно место:)
> ну и мтоге получается куча писанины и проверки типов. по сути вытаскивание
> глад через одно место:)Вы вообще где и как его используете?
У меня в крупном веб-проекте (FastCGI) на самописном движке лишь несколько мест где, действительно, нужна проверка типа,
А в большинстве случаев, например при получении данных из $_POST, где априори, могут быть только строки, она вредит!
> А в большинстве случаев, например при получении данных из $_POST, где априори, могут быть только строки, она вредит!И чем же тебе повредит, если интерпретатор лишний раз убедится, что там действительно строка?
>> А в большинстве случаев, например при получении данных из $_POST, где априори, могут быть только строки, она вредит!
> И чем же тебе повредит, если интерпретатор лишний раз убедится, что там
> действительно строка?https://www.opennet.ru/openforum/vsluhforumID3/118169.html#119
> не проверяете переменную $b на существованиеА что, в PHP интерпретатор сам не проверяет переменные на существование перед тем, как исполнить выражение, в котором они встречены? Ну охренеть...
>> не проверяете переменную $b на существование
> А что, в PHP интерпретатор сам не проверяет переменные на существование перед
> тем, как исполнить выражение, в котором они встречены? Ну охренеть...Конечно же делает, и даже выдаёт ошибку в лог, который Вы, видимо даже не смотрите!
К сожалению, он НЕ прекращает выполнение скрипта сразу после этого, а сам её инициализирует и продолжает работу.Можно поинтересоваться, а на каком языке Вы пишите, в котором такое рукожопие считается нормальным?
> выдаёт ошибку в логЭтого мало. Выполнение скрипта должно прекращаться.
> который Вы, видимо даже не смотритеУпаси меня Господь смотреть логи PHP.
> на каком языке Вы пишитеСейчас - на C и Erlang, если не считать мелких вспомогательных задачек, которые можно быстренько накарябать на awk.
> такое рукожопие считается нормальнымТакое рукожопие ни на одном вменяемом языке не считается нормальным. Везде, где встречается переменная, о которой компилятор или интерпретатор не знает, выдаётся ошибка, без попыток угадать что хотел сказать автор.
>> выдаёт ошибку в лог
> Этого мало. Выполнение скрипта должно прекращаться.Согласен! Но в динамических языках требования, к сожалению, не такие строгие, и чтобы сделать код надёжным не достаточно просто, чтобы он не вызывал критическую ошибку у интерпретатора, нужно смотреть в логи и исправлять ВСЕ не критические ошибки! Лог ошибок всегда должен быть чист, в идеале!
>> который Вы, видимо даже не смотрите
> Упаси меня Господь смотреть логи PHP.А в C Вы тоже не смотрите логи компилятора?
Вот от этого у Вас и проблемы!>> на каком языке Вы пишите
> Сейчас - на C и Erlang, если не считать мелких вспомогательных задачек,
> которые можно быстренько накарябать на awk.То есть на языках, не считая awk (awk я не представляю без bash), со статической типизацией, не предназначенных для работы с HTTP.
>> такое рукожопие считается нормальным
> Такое рукожопие ни на одном вменяемом языке не считается нормальным. Везде, где
> встречается переменная, о которой компилятор или интерпретатор не знает, выдаётся ошибка,
> без попыток угадать что хотел сказать автор.PHP это язык с динамической типизацией специально предназначенный для разработки динамических веб-приложений!
Тут своя специфика работы, завязанная на работе протокола HTTP. Тут не C, который разрабатывался для системных исполняемых приложений и библиотек.
И со своей задачей он справляется лучше остальных.
А если кто-то его использует для чего-то другого, не связанного с этой задачей, тот или ССЗБ или должен учитывать его особенности!
> не предназначенных для работы с HTTPАвторы Webmachine, Mochiweb, N2O, Chicago Boss, Cowboy, Zotonic и множества других проектов наверняка удивились бы этому заявлению.
>> не предназначенных для работы с HTTP
> Авторы Webmachine, Mochiweb, N2O, Chicago Boss, Cowboy, Zotonic и множества других проектов
> наверняка удивились бы этому заявлению.Я говорил про C и Erlang, хотя про эти "проекты", тоже впервые слушу, думаю и не один я.
Откройте для себя error_reporting(E_ALL), познайте новый чудный мир. А чтобы жизнь мёдом не казалась - ещё и set_error_handler, превращающий любой WARNING и NOTICE в эксепшн. Впрочем последнее - оверкилл, за исключением отдельных случаев когда дебажить выделенно некому.
Не надо везде писать ===. Надо просто понимать различия между == и ===, сиречь знать язык. У PHP не настолько низкий порог вхождения, как вы считаете. Наговнокодить на нём - да, просто. Писать же - не очень просто.
prolog - не?
> в режиме полного рабочего дня над PHP работает всего два разработчикаА, ну это многое объясняет
Г++
ПолныйПЭ++
Может аффторам пора завязывать с наркотиками? Сколько будут продолжаться метания? То Java пытаются делать из пэхэпэ, сейчас ++. Что дальше, phpjs?
устарело, phprust вероятно :)
Вы поосторожнее с этой игрой, а то так и спиться можно: https://github.com/hirak/phpjs )
phplisp
php4delphi и delphi4php я видел овер чем 10 лет назад
само собой не касался этого даже 6-метровой палкой
жаву из пхп пытаются делать писатели фреймворков. разработчики ядра этим никогда не баловались.
> Сколько будут продолжаться метания?Насколько метамфетамина хватит, похоже... :(
Вместо того, чтобы закапывать php, собираются и дальше обмазываться этим УГ.
Зачем закапывать пхп?
Вордпресс работает хорошо и быстро, страдания разработчиков видимо отсутствует. Объясните юзеру
Wordpress - это же притча во языцех. Он, наверное, никогда не работал хорошо и уж тем более быстро. Его даже разработчики php - используют как бенчмарк. Только я не понимаю, что они там тестируют. То ли как Wordpress тормозит на новой версии php, то ли как php тормозит на Wordpress :)
Все здоровые блоут-фреймворки, которые не более, чем попытка использовать классическую MVC модель, изначально спроектированную для компилируемых one-instance-multiple-requests приложений, в PHP, который мало того, что интерпретируемый, так ещё и one-instance-one-request, обречены "никогда не работать хорошо" и "никогда не работать быстро".
Разработчики всего этого монструозного говнокода на пыхе просто делают так, как привыкли в "классике", абсолютно не учитывая особенностей языка. Например, забывая, что простая загрузка и инициализация 100500 мелких классов из 100500 файлов на каждый запрос даёт накладные расходы, вполне сопоставимые со всем полезным кодом в их блоатвари. Даже несмотря на опкэш, прелоудинги и т.п.
вы уверены что они к какой-то там "классике" привыкли, а не "насяльника велел копай отсюда до обеда? Джамшут копать!"
> простая загрузка и инициализация 100500 мелких классов из 100500 файлов на каждый запрос даёт накладные расходы, вполне сопоставимые со всем полезным кодом в их блоатвари. Даже несмотря на опкэш, прелоудинги и т.п.Как это на каждый запрос даже несмотря на кеш? Если есть кеш, то явно не на каждый запрос. Правда на каждый запрос может проверяться не устарел ли кеш и проверяться дата всех файлов, но КМК это не фундамельная проблема языка и такой контроль вообще можно сделать отдельным процессом, чтобы сессии не тормозить. Для сохранения состояния сессии между запросами - тех же классов, вроде есть какие-то кеши.
autoload'ы и __construct()'ы всё равно будут на каждый запрос
С принятием некоторых PSR и переходом многих фремворков на них, появились решения, которые позволяет выполнять PHP в режиме one-instance-multiple-requests. Процесс не умирает, просто создаётся новый Request, суётся в приложение, принимается Responce (всё это стандартные штуки из PSR), отдаётся клиенту, потом следующих цикл.Так что ваши знания устарели )
прямо смуззи и барбершопом мироточит
английский обычно лаконичнее впроизношении и написании, но это тот самый случай когда вместо модных-молодежных англицизмов можно было просто написать "Запрос" "Ответ"
Это названия объектов, в вашем 21м веке многие их по-старинке предпочитают называть латинскими буквами...
Про PSR и всё что вокруг них вертится я вообще молчу, это попытка забивать миллиметровые гвозди отбойным молотком пятикилометрового размера, работающим на специализированном ядерном реакторе с штатом поддержки из 1500 человек.
Вообще это выглядит избыточно, есть же сервера приложений - непонятно зачем эту логику впихивать в язык.Вообще мне кажется речь о том, что скрипт может взять и динамически заинклюдить чего-нибудь реквесто-специфичное. Поэтому состояние приложения надо сбрасывать между запросами.
Зачем врать?
Nginx+php-fpm 7.3 летает как ракета, но если у вас всё плохо... могу помочь вам с вашим сервером.
был бы ВП так плох, не был бы номер 1 в мире. имхо
А я всё ждал, когда уже свидетели мощного wp заглянут на огонёк. Два дня ждали и вот)
1С тоже дно, но почему в бизнес кругах его часто юзают? То то же. Подсадили, а кто-то и рад обмазываться постоянно.
я здесь каждый день так то... сравнивать хрен с пальцем это ты мастак. 1с норм, а вп так мне вообще нравится, я даже не стесняюсь участвовать в развитии этого проекта, локализация, плагины и т.д. но вы продолжайте умничать может кто-то заценит ваши инт способности
Если у тебя Wordpress топчик, то не сомневаюсь, что и 1C для тебя норм. Что поделать, бывает люди любят всякое копро и прочие экзотические извращённые вещи. Не нам их судить.
WordPress топчик не у меня, а в рейтинге движков, мне он просто нравится, загугли и просветись.
Мнение диванного аналитика который только критикует но не предлогает, говорит о том, что перед нами обычный троль.
А вот мне кажется пример с 1С прям в точку и совершенно не противоречит вашим словам, за исключением того, что wp - гавно. С чем спорить ну просто не рекомендую на публичных форумах ;) можно заработать плохую оепутацию, личные помутнения, ака любовь к этому убожеству лучше держать в секрете
Никто не спорит, что в рейтингах по всякому УГ, он занимает первые места. И я уже писал, всё что угодно - будет лучше php. А свой блог, можно быстро запилить на чём угодно. И он не будет таким дырявым куском УГ. Вангую, сейчас будет аргумент про кучу дырявых говноплагинов на все случаи жизни. Это уже даже не смешно.
ну-те-с, давайте список "чего угодно"?Г-нецо типа "статических генераторов" сразу засуньте себе - вот туда. У бложека (в отличие от партийных прокламаций) есть/должен быть живой фидбэк.
P.S. поделки на джанке - туда же. Это даже не смешно.
с 2010 года юзаю вп, и плагины разных мастей, самый обычных с репов вп, и никогда никаких взломов небыло.
сайтов на вп у меня в данный момент 37, + несколько сайтов клиентов. но если ты плавал и знаешь о чём говоришь.... делаю вывод с того какой ты веб мастер.я всего лишь обновлял вп сразу после выхода новой версии, софт на сервер самый свежий (fedora server) и временно закрываю неиспользуемые порты такие как к примеру ftp.
а ты не юзай, ментше слёз на форумах поддержки о поломке сайта по безрукости
Фу, как мерзко, называть меня этим словом - вебмастер.WP я начинал уже тыкать где-то с 2005 года. Тогда это был ещё достаточно молодой движок. Даже казалось, что перспективный. Ничего особо не было. Как говорится, на без рыбье и рак щука.
Но шли года, а он становился всё больше днищем. Всё меньше пригодным для простого бложика. Но и для чего-то другого - он превратился в неповоротливого монстра.
Но, да. Он популярен. Народ хавает. Тот случай, когда можно расписарить даже какашку, если завернуть её в красивую обёртку.
Это моё мнение. Кто-то согласится, кто-то нет.
Я лично не боготворю вп, просто в то время когда я его попробовал (где то в 2010м) он мне понравился, к тому же не маловажным для меня была его бесплатность, если бы я узнал о чём то лучшем чем вп, я бы сменил движок, я не из религиозных, для меня главное что бы это было лучшее из бесплатного, а когда у меня есть время с радость помогаю разработчикам выявлять баги, предлагаю идеи, пишу плагины, делаю переводы движка плагинов и тем. у меня есть личный бложик на вп в котором я ничего уже пару лет не пишу, он у меня всегда в бета стадии, использую его чисто для тестирования бенчмарками после каждой обновы, но не сравниваю его по производительности с другими движками. для меня после вп они как исчезли все так я и не мониторю что сейчас на рынке. вот гадостей полно и каждый может гадить, но я так и не услышал конструктивной критику почему он плох? что с ним не так? что тогда лучше и почему?
да, в вп в каждом обновлении закрывают какие то дыры, но мои проекты тьху тьху не ломали, у вп очень большое сообщество, возможно дыры и выявляют и что немаловажно быстро закрывают только благодаря большому сообществу, был бы двиг никому не нужен, никто бы и колупался в нём.
в винде вот тоже много дыр, но никто не спешит переходить на линукс, обновы выходят и уже хорошо.
> мерзко
> днище
> монстр
> кaкaшка
> народ хаваетТипичный образчик PHP-хейтера - одно брызганье слюной без конструктива.
Ясно, понятно, спасибо, до свиданья.
альтернатива? куда не плюнь везде уг.
вон, прекрасный D есть, только что-то им никто не пользуется (без иронии, я и сам его считаю великолепным языком)
> альтернатива? куда не плюнь везде уг.
> вон, прекрасный D есть, только что-то им никто не пользуется (без иронии,
> я и сам его считаю великолепным языком)Что посоветуете читать про D?
http://erdani.com/index.php/books/tdpl/
> http://erdani.com/index.php/books/tdpl/Надо же — тот самый Александреску. Что ж, надо читать. Благодарствую.
Всё что угодно - будет лучше php.
Вам сюда: https://golang.org/
> Вам сюда: https://golang.org/Сам-то писал на нем, мальчик?
>> Вам сюда: https://golang.org/
> Сам-то писал на нем, мальчик?Когда я был мальчик, тебя ещё и в проекте не было.
И да: писал.
Да.
А когда я был мальчик, твои мама с папой ещё даже не встретились.
Ну наконец-то загнутся!
"Не рой яму другому, - сам в нее попадешь" (c) Народная мудрость
Так они же сами для себя и вырыли. Facebook только начал.
> Так они же сами для себя и вырыли. Facebook только начал.Я эту басню второй десяток лет слышу... ток что то никак не загнется, а наоборот.
Я к пыху имею очень далекое отношение, и отношусь к любым языкам без фанатизма или ненависти.
Это просто - инструменты. Где то нужен молоток, а где то микроскоп и это очень глупо пытаться использовать микроскоп везде, где достаточно просто молотка.
А вот кто этим инструментом будет орудовать - вот того и хаить надо, на любом языке можно написать срaнь, не защищаю, но просто у пыха очень маленький входной барьер, отсюда море копипастеров пишущих хлам.
Я очень сильно уверен, что если любой язык будет настолько популярен как пых, то там тоже будет найденно куча дыр и масса гoвнoкодаНа любом хостинге пых установлен по умолчанию, библиотек и софта на нем написанно столько, что мама не горюй... документация, IMHO лучшая среди всех языков, отсюда масса школьников лабающих сайты на лево и на право с соответствующим качеством, но вина то не в языке...
Ну да, отклонили, предложение, к сожалению. Продолжат трепыхаться в прежнем режиме.
> Разработчики языка PHP выступили с идеей по созданию нового диалекта P++, который поможет вывести язык PHP на новый уровень.А что по этому поводу думает Илья Индиго? PHP на данный момент идеален и менять ничего не нужно? Или время идёт, ничто не стоит на месте, изменения назрели, PHP требует перемен и поэтому инициатива с P++ хорошая и полезная и от которой в долгосрочной перспективе только все выиграют?
> Илья Индиго
> думаетА ты злой шутник...
Да скажите им, уже про существование С++.
Вот этого лучше не надо.
тогда уж лучше про Java ;)
Чтобы потом по миллиарду за заимствованную строчку платить?
Петончик
Ну это тоже похоронили все. Вместо плавного перехода и варнингов и деприкейтов они взяли и сделали огромную дыру между 2.7 и 3. А дпльше еще хуже пилили корутины, потом асинк и до сих пор полный бардакт и нет толковой документации. Конечно есть пионеры которые сразу такие да берем 3.8 и херачим, но ведь теперь полным полно старого барахла на 2.7, 3.3 и 3.5. Что вот с этим всем делать?
Похоронили? OMG https://www.tiobe.com/tiobe-index/
> Да скажите им, уже про существование С++.Видел таких, которым сказали. Видел и результат. Передача векторов строк по значению -- это лишь то, что можно описать словами.
Ясень фиг, что кроме как сказать им о существовании, надо им еще и посоветовать научиться на нем писать. Например, чтоб не передавать вектор по значению.
А что плохого в передаче вектора по значению может им нужно копию там иметь где-то. Все эти ваши джавы с сылочными типами тоже не особенно хорошо куда не плюнь хер знает чему там что равно и давно ли уже все поменялось внутри.
>Да скажите им, уже про существование С++.Он только свидетелям сишечки и нужен. Для веба давно есть нода и JS - за ними будущее.
a V8 по вашему на nodejs написан?
В чем проблема и дальше убивать совместимость постепенно и внедрять фичи. Просто более радикально. Много php4 проектов и так на 7 не заводятся. Без закапывания старого Овна новое лучшее овно не запилишь нормально
Прыжок в строгую типизацию постепенно не сделаешь.
Можно что-то придумать. Для начала подвести синтаксис. Опционально включение флагом в php.ini. В след релизе по дефолту вкл и опционально выключение флагом. Большинство ньюфагов будут дефолт юзать. Олдфагам человекочасов работы накинут.
Потом и вовсе выпиливание.
Или сразу с плеча рубить. По началу бомбить буду, потом привыкну.
а то сейчас прям не так…
просто глыбу обратной совместимости очень сложно сдвинуть не потеряв половину "безнес-ориентированных" ленивых апологетов без тестов.
Да что вы говорите.
> Много php4 проектов и так на 7 не заводятсяТам где совершенно ущербный говнокод - это заслуженно, но в целом допилить до совместимости не так сложно.
есть ретрограды типа того же сураски, которые не хотят ломать совместимость прям совсем. и тянуть легаси вечно.
Я, как пишущий и на php, только за ломание старого и выпиливания совместимости, если это помогает внедрить новые фичи на пути к светлому будущему ¯\(*_*)/¯
Как бы уже проголосовали https://wiki.php.net/rfc/p-plus-plus единогласно против.
Славаяйцам
странно что Zeev сам предложил и сам проголосовал против :)
Потому что идея витает вокруг да около уже давно, но зачем делать из PHP жабу, если уже есть жаба?
Фух. Разум таки восторжествовал.
Моё мнение: современный PHP уже достаточно неплохой язык (примерно на уровне Ruby).
Дробить его на два языка — повторять ситуацию с Python 2 и 3.
Лучше стараться развивать язык эволюционно. Например, какой-нибудь "use strict" на уровне класса/функции/неймспейса.
Развивать? Это как майкрософт развивает винду: оно типа лучше, но куча говна выходит из-за поддержки легаси.А python3 сделали с блек джеком и шлюхами без гемороя с легаси.
Даже написали утилиту 2to3.py
збс комметы на опеннете. лор в сравнением с этим - клуб джентельменов. по сабжу - все правильно, php давно перерос свою скриптовость.
Ну здесь хоть немного трут гадость, а там...
Забанил их сайт у себя что бы случайно не перейти по какой то ссылке туда.
Сообщество посылающих в гугл умников, которые научились делать скрины неофетч и считаю себя уже всё знающими.
По минусам к этому коменту можно определить столько таковых оттуда прочитали это
> php давно перерос свою скриптовостьлол, дело не в этом: даже до разрабов PHP начало доходить, что он - гавно. взлетел в своё время из-за отсутствия вменяемых конкурнтов, но сейчас они есть, и это поделие ненужно
> но сейчас они естьJavascript (aka nodejs) ?
Java ?
Perl ?
Python ?
Ruby ?
C ?
C# ?
C++ ?
Rust ?
Go ?
Erlang ?
Elixir ?добавте если что то пропустил...
И что из этого массово(!!!) устаноленно на _ВСЕХ_ хостингах под апач или nginx по умолчанию?
И как Вы думаете, что из этого выберут юнные дарования без образования ?
И какие же конкуренты в нише PHP?
Ruby, Python? О, наверняка, Java? Или язык для всего Rust?
>В текущем виде развитию PHP мешает необходимость сохранения совместимости с имеющейся кодовой базойПрям как у С++
Давно пора!А более глобальные изменения?
Убрать $
Убирание схожих и дублирующий ф-ий и языковых конструкций.
include дать поведение require, а require убрать!
Убрать *_once
Привести в порядок ф-ии работы с массивами или всем дать префикс array_ а ещё лучше дать краткий a_
ну ты вообщеееее!… экстримал-террорист!
У меня один маленький вопрос, а на хрена тогда PHP?) пиши уж на ноде или на го каких-нибудь
Да на питоне пиши там тоже можно как на PHP в виде cgi скрипта стартонуть и пожить и сдохнуть. В целом деже Django не так плох хотя конечно то ее дерьмище
или []::filter,[]::sort,[]::column,[]::map :-D
> или []::filter,[]::sort,[]::column,[]::map :-DОдновременно оператор массива, являющийся классом массива... это мне, кажется, уже через чур.
Вот так: a_filter(), a_sort(), a_column(), a_map() Было бы достаточно. :-)
но красиво же :)
> но красиво же :)Согласен, красиво!
Но всё же 4 ([]::) символа вместо 2 (a_), и гораздо труднее реализовать, чем просто переименовать.
по мне: что a_, что array_ — одно и то же и a_ напоминает попытку намазать зеленкой закрытый перелом
> по мне: что a_, что array_ — одно и то же и
> a_ напоминает попытку намазать зеленкой закрытый переломЦель отделить строковые ф-ии от массивных.
Вот если бы они просто убрали не отключаемые в disabled_functions чудеса под названием language constructs, такие как злостный eval, то это бы поправило имидж пыха значительно
> Вот если бы они просто убрали не отключаемые в disabled_functions чудеса под
> названием language constructs, такие как злостный eval, то это бы поправило
> имидж пыха значительноНаоборот, нужно убрать саму disabled_functions, которая может приподнести неожиданный сюрприз, ввиде отключённой ф-ии, например невозможность установить права на выгруженный файл или проверить состояние демона через system!
> Наоборот, нужно убрать саму disabled_functions, которая может приподнести неожиданный
> сюрприз,сюрпризов не будет если уважать хост на котором прикрутили гайки, а проверять (всего в 3 строки), что можно а что нет:
function system_enabled() {
return !in_array('system', explode(',', ini_get('disable_functions')));
}а вот запрет выполнения eval-a, это уже защита хоста, на вскидку процентов 75 как минимум
> например невозможность установить права на выгруженный файл
может все таки лучше уважать права сервера и пользоваться тем что позволят ?
> или проверить состояние демона через system!
проверять состояние демонов - это обязанность админов и их софта который смотрит за системой.
Почему так всем хочется Windows 98, - пиши куда хошь, читай все что хошь.
PHP - интернет facing язык и конфигураця настройки должна быть максимально драконовской, зная что масса высоко квалифицированных хакеров иследуют лакомый кусок ака PHP, тогда и не будет репутации дырявого языка, а точнее дырявых PHP программеров.
чем попасть в новости с очередной дырой и ликом, не проще наследовать тот же принцип, что и в операционной системе, - исполняемый PHP код только на чтение - 755 && ownership root:root. А там куда PHP позволенно писать, - просто запрещать выполнение php кода.
В такой настройке даже самые старые версии пыха выдерживают атаки.
а зачем мне твоя system_enabled, если мне system нужна?
> а зачем мне твоя system_enabled, если мне system нужна?за тем чтоб геморроя не было, если хост беспокоится о безопасности и не позволяет запускать ничего кроме пых-кода. Там где действительно нужно запускать что то из оси, делается гейт, - пых сбрасыет запрос (через банальный файл флаг или REST API) и со стороны оси выполняются только whitelisted команды и возвращают результат
как это решает вопрос геморроя?
мне system нужна, дай мне ее. ты не даешь.
> как это решает вопрос геморроя?
> мне system нужна, дай мне ее. ты не даешь.Не даю, потому что если твой код будет иметь дыру, то имея доступ до system, exec, passthru, shell_exec, etc - система будет скомпроментированна
если мой код будет иметь дыру, то система и без system будет скомпрометирована.
ты просто режешь функционал языка, и предусматривать каждого такого васяна, который решил задисейблить некоторый набор функционала - себе дороже будет. пусть это будет проблемой васяна и он вычищает disabled функции.
Если реализация дыры будет через system(), то система без него скомпрометирована не будет. По крайней мере конкретно через эту дыру.// когда-то хостивший задаром всякое-разное...
>> Наоборот, нужно убрать саму disabled_functions, которая может приподнести неожиданный
>> сюрприз,
> сюрпризов не будет если уважать хост на котором прикрутили гайки, а проверять
> (всего в 3 строки), что можно а что нет:
> function system_enabled() {
> return !in_array('system', explode(',', ini_get('disable_functions')));
> }Вот это уже костыль!
А если мне, таки, нужен вызов system?!
И мне что каждую в PHP ф-ию таким способом проверять, чтобы убедится, что упоротый админ не отключил её?
> а вот запрет выполнения eval-a, это уже защита хоста,Защита какого хоста и от кого?
Если имеется ввиду один виртуальный хост от другого, то такая защита должна заключаться в запуске хостов от разных пользователей, которые не должны даже иметь доступ на чтение хостов друг-друга.
Если имеется ввиду защита сервера от виртуального хоста, то это также осуществляется привелегиями.
Если Вы имеете ввиду защиту виртуального хоста от самого себя, то это просто маразм.>> например невозможность установить права на выгруженный файл
> может все таки лучше уважать права сервера и пользоваться тем что позволят?А может всё-таки стоит уважать права пользователя! Если сервер выделил для виртуального хоста место, так сказать его домашнюю директорию, то он вправе в ней делать что пожелает!?
>> или проверить состояние демона через system!
> проверять состояние демонов - это обязанность админов и их софта который смотрит
> за системой.А если у меня, внезапно, веб-админка, которая мониторит и управляет запуском какого-то сервиса, который является непосредственно частью проекта, например отвечающего за обновление страницы в реальном времени, аля web-sockets, или запускающий сli-скрипт для рассылки уведомлений, или чистки чего-либо?
> Почему так всем хочется Windows 98, - пиши куда хошь, читай все
> что хошь.В пределах домашней директории ДА! Так везде!
> PHP - интернет facing язык и конфигураця настройки должна ......предсказуемой и внезапно не влиять на базовые возможности и ф-ии языка!
> Вот это уже костыль!
> А если мне, таки, нужен вызов system?!чуть выше уже писал: "Там где действительно нужно запускать что то из оси, делается гейт, - пых сбрасыет запрос (через банальный файл флаг или REST API) и со стороны оси выполняются только WHITELISTED команды и возвращают результат"
Зачем вам system, если система окажется сконфигурирована таким обазом, что и вызывать через system нечего будет (stripped down chrooted enviroment)?
> И мне что каждую в PHP ф-ию таким способом проверять, чтобы убедится,
да, проверять. Проблема считать disabled_functions и проверить что перекрыто? Или проблема контактировать проджект менеджера и запросить (обоснованно) доступ к нужным функциям?
> что упоротый админ не отключил её?
"упоротыe" админы просто так не получают шестизначную зарплату в зелени...
они выполняют просто свою работу, чтоб дыр не было.>> а вот запрет выполнения eval-a, это уже защита хоста,
> Защита какого хоста и от кого?вы пишите на PHP и не знаете от кого защищают хосты?
От хакеров, от засланных казачков, от дурости и ошибок, etc...> Если Вы имеете ввиду защиту виртуального хоста от самого себя, то это
> просто маразм.Вы называете маразмом кучу взломаных сайтов в интернете ???
Вообще, это называется - security.> А может всё-таки стоит уважать права пользователя!
Я понял, мы говорим о разных вещах, я говорю про то, как правильно и поэтому это нормальные требования в корпоративной среде и там где действительно переживают за безопасность, где очень высокие требования к безопасности, не в обиду, но вы рассуждаете с позиции программиста одиночки-пользователя, который сам себе режисер, сам заказал хостинг, сам настроил и сам написал апликуху.
> Если сервер выделил для виртуального
> хоста место, так сказать его домашнюю директорию, то он вправе в
> ней делать что пожелает!?Нет, это не правильно. Если вы пишите программу для закрытой домашней локальной сети, то действительно фиг ней с секьюрностью.
Если же это комерческое приложение выпущенное в дикий интернет, то ваша "домашняя" директория должна иметь как минимум 3 уровня защиты на базе файловой системы - это вы, как веб девелопер с правами писать и читать везде, PHP-FPM юзер которого вы должны ограничить только на чтение и назначить его на php файлы и открыть права на запись только в data директории, ну и others (веб серер) с правами ready only. В такой конфигурации, даже если хакер найдет лазейку, он не сможет изменить PHP файлы, а скинуть сpaнь в дата директорию с надеждой потом выполнить - тоже не получится, потому что в конфигах веб сеpвака будет запрещена интерпритаця чего либо (php,perl,bash,pyhton...) в data директории
> А если у меня, внезапно, веб-админка, которая мониторит и управляет запуском какого-то
> сервиса, который является непосредственно частью проекта, например отвечающего за обновление
> страницы в реальном времени, аля web-sockets, или запускающий сli-скрипт для рассылки
> уведомлений, или чистки чего-либо?нельзя это делать, у вас должен быть барьер между web application и операционной системой, самый тривиальный пример это RPC через файловую систему, тогда можно будет перекрыть кислород к полному функционалу операционки со стороны интернета и в тоже время безопасно выполнить то, что вам требуется.
> В пределах домашней директории ДА! Так везде!
Я правда не хочу вас обидеть, но shared hostings и VPS типа "сделай сам по хавтушкам" - это далеко не везде, в серьезной конторе вы не встретите такого безобразия, это все равно что работать все время из под root-a или администратора а винде. Не правильно это, поэтому и придумали разграничение уровня доступа.
>> PHP - интернет facing язык и конфигураця настройки должна ...
> ...предсказуемой и внезапно не влиять на базовые возможности и ф-ии языка!все в этом мире относительно, вы не забывайте, что мнимым удобством можете пользоватся не только вы, но еще и те кто найдет дыру
> упоротый админНо ведь это не проблема языка как такового, и даже не проблема его рантайма, позволяющего максимально ибко конфигурировать ограничения. Это проблема хостинга, что он ради экономии нанимает каких-то левых упоротых админов. А уж упоротый админ и безотносительно ПХП может сделать любое приложение неработающим.
https://www.opennet.ru/openforum/vsluhforumID3/118169.html#113
Асинхронность им надо внедрить в язык. Щас есть всякие ReactPHP, но они сбоку. Внедрят - и попрёт) запретить по дефолту выполнение кода отовсюду кроме /index.php, чтобы дыры позакрывать. И т.п. Как будто заняться нечем.А от типизации оно не попрёт. Те, кто любят пхп, очевидно, вряд ли любят типизацию.) любили бы - писали бы на чём-то ином.
Вот да, тредов очень сильно не хватает.
> Вот да, тредов очень сильно не хватает.Для чего конкретно?
Да для вебсокетов хотя бы
1. Треды есть.
2. Сокеты реализуемы минимум двумя способамиПросто нах это не нужно никому. Вам уже сказали доросли до асинхронности вперед и с песней в JavaScript. Не доросли или страшно облажаться на проде - вперед в потоки в Java. Хотите работать с военными и строгую типизацию - тогда вашему вниманию предлагаю C/C++/D/Golang.
Думаю, что не нужно PHP трогать уже. Оставить его уже в покое и дать людям спакойно дожить. Все в PHP прекрасно и хорошо.
Поднимать производительность через JIL и прочее тоже смысла нет инструмент нишевый живет на страничках для всего остального есть другие инструменты.
Можно разве что кешированный AST хранить что бы не парсить весь этот Zend каждый раз, но я думаю, что кто-то уже сделал это все. Более того можно действительно сделать что-то на подобии единго блока с модулям, а их то уже и кешировать.
Кэшированный AST сто лет в обед уже как раз хранится (apc/zendopcache).Треды там как пятая нога, да оно обычно и собрано нонтредсейф так что они не заведутся. А вебсокеты сделать - _нормальный_ способ есть?
В моём понимании просто основная фишка пхп в том, что в нём сразу встроено практически всё (99% того, что нужно в вебе). И всё это стандартное и везде одинаковое. В ноде любое приложение - это 500+ модулей-зависимостей. Помойка. В пхп мне достаточно 5-10 собственных классов и всё.
Я композер до сих пор не юзаю и скорее всего юзать не буду - он в пхп не нужен. Идеология и весь кайф именно в том, что всё встроено. Если юзать пхп как ноду с кучей зависимостей - проще уже действительно юзать саму ноду. И если юзать пхп как жабу с ORM-ами - то проще уже действительно взять саму жабу.
Но другое дело что от жабы просто тошнит, а в ноде всё вроде хорошо, но при этом например тупо с библиотеками работы с картинками - зоопарк, причём самая популярная вообще просто запускает консольный graphicsmagick.
Поэтому имхо - если сохранить идеологию "всё встроено", но допилить до поддержки последних нововведений а-ля асинхронности (а-ля как в go) - было бы круто
JavaScript
Асинхронность
/0
А строгая типизация и C не /0? Это же вообще пушка.
Ну скажем так зо***ло писать форки и курлы, когда нужно в фоне обработать пяток блоков данных однотипно на множестве ядер. Это только например.Фоновые демоны, работающие с фронтендом и бэкендом через ZeroMQ - ещё "например", хотелось бы получить месседж, блямкнуть отдельный тред из тредпула, и дальше только собрать от треда готовый ответ на этот месседж, чтобы залить его назад в ZeroMQ.
И так далее.
> Ну скажем так зо***ло писать форки и курлы, когда нужно в фоне
> обработать пяток блоков данных однотипно на множестве ядер. Это только например.https://github.com/swoole/swoole-src
> запретить по дефолту выполнение кода отовсюду
> кроме /index.php, чтобы дыры позакрывать.разве это относится к обязаностям языкa ???
достатчно убрать весь код из DOCUMENT_ROOT оставив только index.php и будет тот же эффект.
Тупоголовсть писателей, - вод где основная дыра
ИМХО, им нужно что-то типа roadrunner вкрутить. Так они не потеряют всю stdlib, как произойдет с асинхронщиной.
им бы впилить "автоматическую" кооперативную асинхронность, чтобы при блокирующих вызовах на самом деле приостанавливался потокв роадраннере так?
Для чего нужен строго типизированный PHP? Напомню, что изначально PHP это шаблонизатор в который можно добавить немножко логики, прямо в текст страницы. Для чего достаточно трёх классов школы и пары примеров кода. Хотите возможностей Си с немногословностью скриптовых языков? Ваш выбор - Perl! Кстати, для чего эта гонка за производительностью? Ведь утверждалось, что скрипты в основном ждут I/O и хоть на ассемблере перепиши заметного ускорения не получишь.
Застрявшим в 1999 просьба не беспокоить.
Как будто что-то принципиально изменилось, за исключением того, что добавилось несколько более адекватных языков.
Список адекватных языков пожалуйста огласите, а то все какой-то маразм попадается, давно ищу...
<trollmode>XQuery</trollmode>
>Ведь утверждалось, что скрипты в основном ждут I/O и хоть на ассемблере перепиши заметного ускорения не получишь.как-то была задача написать скрипт
Если корень из (a^2+b^2)/(ab+1) дает целое число, то вывести его, если не целое то не выводить.
На баше скажем, с вызовом внешних софтин была одна скорость, потом я переписал его на си (как сумел) - получил скорость в 10000 выше.
Ради интереса попробуйте написать на вашем любимом языке, потом на СИ и задать цикл от 1 до 10000 посмотрите скорость выполнения.
ЗЫ:
a от 1 до 100
b от 1 до 100
"На баше" такое пишется "на bc(1)", разумеется. Но с его форком и проверками всяко выйдет уже медленней, чем сишечка.Кстати, многие ли читают переменные из файлов с помощью read var < file, а не var=`cat file` или в лучшем разе var="$(cat file)"?..
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
…иногда таки да.
По крайней мере, так оно нагляднее, чем битами крутить.
>> read var < file
> 2. Это надо специально bash'измы учить.Странный башизм, на dash/pdksh работает. :)
> Если корень из (a^2+b^2)/(ab+1) дает целое число, то вывести его, если не
> целое то не выводить.
> На баше скажем, с вызовом внешних софтин была одна скорость, потом я
> переписал его на си (как сумел) - получил скорость в 10000
> выше.Что-то уж слишком.
% cat testsq.py&&time pypy testsq.py 10000
import sys, mathto_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, но это уже будет другой "класс" программ.
Строгая типизация в основном нужна на мой взгляд для удобства разработчиков. Для планирования перед разработкой, а не сначала делаем потом разбираемся в чем проблема. Для статического анализа и анализа всякими IDE
Да. Строгая типизация в интерпретируемых языках в основном нужна тем, кто не может удержать в памяти и/или документировать структуры данных в процессе разработки.
pypy Это чит ;)
> Дополнение: Проведено голосование, пытающиеся узнать, является ли P++ тем направлением, на развитие которого разработчики PHP готовы тратить своё время и силы. Все участники высказались против.И это правильно. Хороших языков достаточно, пых должен оставаться говном - в этом его самобытность.
>Для проекта предварительно выбрано имя P++ (PHP Plus Plus) по аналогии с С++.Ага, одно из новшеств будет прямое использование памяти, как C/C++.
Notepad++ :D
pypi
Самое сложное лично для меня в современном PHP то, что нигде нет толкового объяснения, как можно заставить выполнять phar по аналогии с jar без распаковки. Чтобы не было гемора с правами файлов и т.п. Чтобы решение поставлялось одним куском и никакой вирусняк ничего не мог код редактировать. И чтобы от админа ничего не зависело.
Последний раз писал на PHP несколько лет назад. Отстал от жизни, короче.
PHP теперь умеет выполнять и c++ код!!
лол
FFI просто офигенная вещь. Теперь вместо того, чтобы запиливать кастомные экстеншны к специфичным либам, в ряде случаев можно будет просто нарисовать обёртку.
Вот это будет прикольно, если сделают, чтобы корректность проверялась на этапе запуска приложения, а не через type cast: https://wiki.php.net/rfc/generics
А зачем это языку с динамической типизацией, простите? Ну вот реально, каков юзкейс?Вот чего реально не хватает - так это переопределения классами стандартных операторов (математических, логических, сравнения, etc.), но похоже с этим - никогда.
Я помню, добивался этого, но толку от этого оказалось чуть. Вместо прав php файлов вы получаете проблему прав на phar файл. А встроенные механизмы защиты они про контроль целостности, а не безопасность. Лучшее что там есть - подпись файла через openssl, но публичный ключ должен лежать рядом с phar. И это захардкожено.
Дальнейшее я припоминаю плохо, но по моему подписанные (по крайней мере opessl) phar вообще не могут быть исполняемыми. Это правда обходится неподписанным php или phar, который включает в себя подписанный...
Короче, phar это просто контейнер для composer и ни для чего другого он не предназначен.С другой стороны, сейчас проще использовать контейнеры. Собрать сервер из контейнеров с nginx, php-fpm, mariadb... Ну и контейнер с файлами сайта можно туда монтировать. Вот и неизменяемость.
Зачем изобретать новый, когда уже есть жава, сишарп, етк
Ну, затем что C# нормально работает только на венде. А решения на Java начинаются с предложения взять сервер с 16 Gb памяти. Для начала.
Сегодня заглянул в магазин 16 GB памяти стоит 5 тыс. рублей. разово
Стоимость месяца специалиста знающего С++ стоит 5 тыс. долларов ежемесячно
Выбор бизнеса очевижен вроде как. А для домашних пользоватлеей и тех кто не умеет считать всегда можно пистаь на PHP ;)
Ещё бы эту память из магазина в VPS поставить - совсем хорошо будет.
Лучше бы поправили всякие родовые травмы, а в целом язык оставили. Hih короче
Ninja-ide help httpython вот так проще
>в которой планируется добавить JIT-компиляторШел 2019 год.
> удерживает разработчиков в ограниченных рамках
> все участники высказались противПрикольно)
Фейсбук был написан Цукербергом на пыхе. Что еще раз доказывает, что для того чтобы стать миллиардером никакие толстожопые языки и фреймворки вроде руби, рельсов или жабы с шарпами не нужны.
А потом, когда взлетело хоть как-то - неспеша переписан нормальными ребятами за зарплату на типизированном надмножестве php - hack-e, который удобен для фейсбуковских задач. Так что да, чтобы стать миллионером - таки не нужны. А вот чтобы перешагнуть миллиард - внезапно оказывается, что можно и нужно написать свой фреймворк. И платить инженерам, чтобы вот все это летело.
они изобретают го походу. кто-нить, расскажите им, что го уже существует, они походу не в курсе.
Как жаль что предложение так и не приняли :(