|
2.24, Аноним (24), 23:36, 15/08/2019 [^] [^^] [^^^] [ответить]
| +10 +/– |
Теперь file_exists() будет строго-типизированно запускать third_party-код при условии, что ты ему передашь строго-типизированную строку, строго-типизированно начинающуюся на "phar://".
| |
2.93, Онаним (?), 09:12, 16/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
Для тех, кто в системные вызовы передаёт пользовательские строки без валидации - обязательно.
| |
|
|
2.66, Аноним (66), 06:54, 16/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
Типизация не нужна. В этом-то и вся прелесть - код отработает и что-то выдаст в почти любой ситуации.
| |
|
1.12, Аноним (12), 22:36, 15/08/2019 [ответить] [﹢﹢﹢] [ · · · ]
| +25 +/– |
- Давайте напишем язык удобный для всех, где нет никаких типов, где можно гвозди сравнивать с бананами и даже получать какой-то результат такого сравнения. Это же ваще круто и удобно.
- прошло 30 лет
- Давайте запилим язык, в котором будет типизация.
| |
|
|
3.27, jOKer (ok), 23:46, 15/08/2019 [^] [^^] [^^^] [ответить]
| +10 +/– |
"Первые тридцать лет самые сложные в жизни мальчика" (с)
| |
|
2.26, Hewlett Packard (?), 23:40, 15/08/2019 [^] [^^] [^^^] [ответить]
| –1 +/– |
> где можно гвозди сравнивать с бананами и даже получать какой-то результат такого сравнения
Это довольно старая идея. Из неё возникла такая интересная абстракция как "количество", а из неё потом - "число". Из которого потом - вся математика.
| |
|
|
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
}
ашшштрясет:) везде надо эти === писать чтобы все предсказуемо работало
| |
|
|
4.82, Аноним (80), 08:31, 16/08/2019 [^] [^^] [^^^] [ответить]
| –2 +/– |
Потому что разыменование не определённой переменной является логической ошибкой, и интерпретатор, написанный адекватными людьми, должен на этом месте падать, а не пытаться угадать, чего же на самом деле хотел сказать кодер.
| |
|
|
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 её старательно скрывает, и она с высокой долей вероятности может попасть в прод.
| |
|
|
|
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 на существование или не используете оператор ?? .
| |
|
|
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.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 [^] [^^] [^^^] [ответить]
| +/– |
Программист !== Рукожоп
Если Вы ДАЖЕ не можете "доглядеть", существование переменной, а проверять её Вам лень - то программирование это не Ваше дело!
| |
|
|
|
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, где априори, могут быть только строки, она вредит!
И чем же тебе повредит, если интерпретатор лишний раз убедится, что там действительно строка?
| |
|
|
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.
> такое рукожопие считается нормальным
Такое рукожопие ни на одном вменяемом языке не считается нормальным. Везде, где встречается переменная, о которой компилятор или интерпретатор не знает, выдаётся ошибка, без попыток угадать что хотел сказать автор.
| |
|
|
8.173, Аноним (109), 17:04, 16/08/2019 [^] [^^] [^^^] [ответить] | +/– | Авторы Webmachine, Mochiweb, N2O, Chicago Boss, Cowboy, Zotonic и множества друг... текст свёрнут, показать | |
|
|
|
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 не настолько низкий порог вхождения, как вы считаете. Наговнокодить на нём - да, просто. Писать же - не очень просто.
| |
|
|
1.13, Аноним (13), 22:43, 15/08/2019 [ответить] [﹢﹢﹢] [ · · · ]
| +5 +/– |
> в режиме полного рабочего дня над PHP работает всего два разработчика
А, ну это многое объясняет
| |
1.15, Аноним (15), 22:50, 15/08/2019 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
Может аффторам пора завязывать с наркотиками? Сколько будут продолжаться метания? То Java пытаются делать из пэхэпэ, сейчас ++. Что дальше, phpjs?
| |
|
2.55, wd (?), 01:43, 16/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
php4delphi и delphi4php я видел овер чем 10 лет назад
само собой не касался этого даже 6-метровой палкой
| |
2.121, Gemorroj (ok), 11:41, 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 файлов на каждый запрос даёт накладные расходы, вполне сопоставимые со всем полезным кодом в их блоатвари. Даже несмотря на опкэш, прелоудинги и т.п.
Как это на каждый запрос даже несмотря на кеш? Если есть кеш, то явно не на каждый запрос. Правда на каждый запрос может проверяться не устарел ли кеш и проверяться дата всех файлов, но КМК это не фундамельная проблема языка и такой контроль вообще можно сделать отдельным процессом, чтобы сессии не тормозить. Для сохранения состояния сессии между запросами - тех же классов, вроде есть какие-то кеши.
| |
|
|
|
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 для тебя норм. Что поделать, бывает люди любят всякое копро и прочие экзотические извращённые вещи. Не нам их судить.
| |
|
|
9.215, th3m3 (ok), 17:54, 17/08/2019 [^] [^^] [^^^] [ответить] | +/– | Никто не спорит, что в рейтингах по всякому УГ, он занимает первые места И я уж... текст свёрнут, показать | |
|
|
|
|
|
|
|
2.122, Gemorroj (ok), 11:42, 16/08/2019 [^] [^^] [^^^] [ответить]
| +1 +/– |
альтернатива? куда не плюнь везде уг.
вон, прекрасный D есть, только что-то им никто не пользуется (без иронии, я и сам его считаю великолепным языком)
| |
|
3.134, Anonymoustus (ok), 12:37, 16/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
> альтернатива? куда не плюнь везде уг.
> вон, прекрасный D есть, только что-то им никто не пользуется (без иронии,
> я и сам его считаю великолепным языком)
Что посоветуете читать про D?
| |
|
|
5.240, nio (??), 02:14, 31/12/2019 [^] [^^] [^^^] [ответить]
| +/– |
Да.
А когда я был мальчик, твои мама с папой ещё даже не встретились.
| |
|
|
|
|
|
|
|
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++ хорошая и полезная и от которой в долгосрочной перспективе только все выиграют?
| |
|
|
|
4.189, Аноним (189), 22:35, 16/08/2019 [^] [^^] [^^^] [ответить]
| +1 +/– |
Ну это тоже похоронили все. Вместо плавного перехода и варнингов и деприкейтов они взяли и сделали огромную дыру между 2.7 и 3. А дпльше еще хуже пилили корутины, потом асинк и до сих пор полный бардакт и нет толковой документации. Конечно есть пионеры которые сразу такие да берем 3.8 и херачим, но ведь теперь полным полно старого барахла на 2.7, 3.3 и 3.5. Что вот с этим всем делать?
| |
|
|
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 - за ними будущее.
| |
|
1.30, Ononim (?), 23:56, 15/08/2019 [ответить] [﹢﹢﹢] [ · · · ]
| +5 +/– |
В чем проблема и дальше убивать совместимость постепенно и внедрять фичи. Просто более радикально. Много php4 проектов и так на 7 не заводятся. Без закапывания старого Овна новое лучшее овно не запилишь нормально
| |
|
|
3.37, Ononim (?), 00:18, 16/08/2019 [^] [^^] [^^^] [ответить]
| +1 +/– |
Можно что-то придумать. Для начала подвести синтаксис. Опционально включение флагом в php.ini. В след релизе по дефолту вкл и опционально выключение флагом. Большинство ньюфагов будут дефолт юзать. Олдфагам человекочасов работы накинут.
Потом и вовсе выпиливание.
Или сразу с плеча рубить. По началу бомбить буду, потом привыкну.
| |
|
4.49, Анан (?), 01:32, 16/08/2019 [^] [^^] [^^^] [ответить]
| +2 +/– |
а то сейчас прям не так…
просто глыбу обратной совместимости очень сложно сдвинуть не потеряв половину "безнес-ориентированных" ленивых апологетов без тестов.
| |
|
|
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, только за ломание старого и выпиливания совместимости, если это помогает внедрить новые фичи на пути к светлому будущему ¯\(*_*)/¯
| |
|
|
|
|
3.88, Онаним (?), 08:47, 16/08/2019 [^] [^^] [^^^] [ответить]
| +1 +/– |
Потому что идея витает вокруг да около уже давно, но зачем делать из PHP жабу, если уже есть жаба?
| |
|
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.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.54, vitalif (ok), 01:42, 16/08/2019 [^] [^^] [^^^] [ответить]
| –1 +/– |
У меня один маленький вопрос, а на хрена тогда PHP?) пиши уж на ноде или на го каких-нибудь
| |
|
3.191, Аноним (189), 22:40, 16/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
Да на питоне пиши там тоже можно как на PHP в виде cgi скрипта стартонуть и пожить и сдохнуть. В целом деже Django не так плох хотя конечно то ее дерьмище
| |
|
|
3.107, Ilya Indigo (ok), 10:19, 16/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
> или []::filter,[]::sort,[]::column,[]::map :-D
Одновременно оператор массива, являющийся классом массива... это мне, кажется, уже через чур.
Вот так: a_filter(), a_sort(), a_column(), a_map() Было бы достаточно. :-)
| |
|
|
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 +/– | сюрпризов не будет если уважать хост на котором прикрутили гайки, а проверять в... большой текст свёрнут, показать | |
|
|
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 нужна, дай мне ее. ты не даешь.
| |
|
|
|
6.162, x3who (?), 15:33, 16/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
> упоротый админ
Но ведь это не проблема языка как такового, и даже не проблема его рантайма, позволяющего максимально ибко конфигурировать ограничения. Это проблема хостинга, что он ради экономии нанимает каких-то левых упоротых админов. А уж упоротый админ и безотносительно ПХП может сделать любое приложение неработающим.
| |
|
|
|
|
|
1.56, vitalif (ok), 01:45, 16/08/2019 [ответить] [﹢﹢﹢] [ · · · ]
| +3 +/– |
Асинхронность им надо внедрить в язык. Щас есть всякие ReactPHP, но они сбоку. Внедрят - и попрёт) запретить по дефолту выполнение кода отовсюду кроме /index.php, чтобы дыры позакрывать. И т.п. Как будто заняться нечем.
А от типизации оно не попрёт. Те, кто любят пхп, очевидно, вряд ли любят типизацию.) любили бы - писали бы на чём-то ином.
| |
|
|
|
|
5.192, Аноним (189), 22:45, 16/08/2019 [^] [^^] [^^^] [ответить] | +/– | 1 Треды есть 2 Сокеты реализуемы минимум двумя способами Просто нах это не ну... большой текст свёрнут, показать | |
|
6.199, vitalif (ok), 01:39, 17/08/2019 [^] [^^] [^^^] [ответить] | +1 +/– | Кэшированный AST сто лет в обед уже как раз хранится apc zendopcache Треды та... большой текст свёрнут, показать | |
|
|
4.182, Онаним (?), 19:46, 16/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
Ну скажем так зо***ло писать форки и курлы, когда нужно в фоне обработать пяток блоков данных однотипно на множестве ядер. Это только например.
Фоновые демоны, работающие с фронтендом и бэкендом через ZeroMQ - ещё "например", хотелось бы получить месседж, блямкнуть отдельный тред из тредпула, и дальше только собрать от треда готовый ответ на этот месседж, чтобы залить его назад в ZeroMQ.
И так далее.
| |
|
|
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 и хоть на ассемблере перепиши заметного ускорения не получишь.
| |
|
|
3.87, Аноним (80), 08:40, 16/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
Как будто что-то принципиально изменилось, за исключением того, что добавилось несколько более адекватных языков.
| |
|
4.106, Аноним (106), 10:13, 16/08/2019 [^] [^^] [^^^] [ответить]
| +2 +/– |
Список адекватных языков пожалуйста огласите, а то все какой-то маразм попадается, давно ищу...
| |
|
|
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
…иногда таки да.
По крайней мере, так оно нагляднее, чем битами крутить.
| |
|
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 [^] [^^] [^^^] [ответить]
| +/– |
Да. Строгая типизация в интерпретируемых языках в основном нужна тем, кто не может удержать в памяти и/или документировать структуры данных в процессе разработки.
| |
|
|
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++.
| |
1.160, Георгий (??), 14:57, 16/08/2019 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Самое сложное лично для меня в современном PHP то, что нигде нет толкового объяснения, как можно заставить выполнять phar по аналогии с jar без распаковки. Чтобы не было гемора с правами файлов и т.п. Чтобы решение поставлялось одним куском и никакой вирусняк ничего не мог код редактировать. И чтобы от админа ничего не зависело.
Последний раз писал на PHP несколько лет назад. Отстал от жизни, короче.
| |
|
|
3.183, Онаним (?), 19:51, 16/08/2019 [^] [^^] [^^^] [ответить]
| +/– |
FFI просто офигенная вещь. Теперь вместо того, чтобы запиливать кастомные экстеншны к специфичным либам, в ряде случаев можно будет просто нарисовать обёртку.
| |
|
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... Ну и контейнер с файлами сайта можно туда монтировать. Вот и неизменяемость.
| |
|
|
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.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 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
они изобретают го походу. кто-нить, расскажите им, что го уже существует, они походу не в курсе.
| |
|