1.1, Аноним (-), 09:18, 21/06/2013 [ответить] [﹢﹢﹢] [ · · · ]
| +8 +/– |
>В качестве причины внедрения нового API называется безалаберное отношение многих разработчиков к генерации salt-ов и повсеместный выбор нестойких к перебору алгоритмов хэширования;
Это проблема языка программирования?
| |
|
2.7, Аноним (-), 09:46, 21/06/2013 [^] [^^] [^^^] [ответить]
| +10 +/– |
При попадании в опу есть два варианта действий:
1. Направить все усилия, чтобы из опы выбраться.
2. Направить все усилия, чтобы найти виновных, продолжая оставаться в опе неограниченно долго.
| |
2.18, бедный буратино (ok), 11:10, 21/06/2013 [^] [^^] [^^^] [ответить]
| +7 +/– |
>>В качестве причины внедрения нового API называется безалаберное отношение многих разработчиков к генерации salt-ов и повсеместный выбор нестойких к перебору алгоритмов хэширования;
> Это проблема языка программирования?
Безалаберность - это проблема языка программирования (точнее, среды исполнения).
Когда язык разрешает делать так: $b = $a + 5; без инициализации $a - это поощряет безалаберность. Вместо того, чтобы бить в тамтамы и сообщать об ошибке, система считает "а вдруг девчонки" и исполняет код. Возможность поделить строку на число и прибавить что-нибудь булевое - из той же пьесы "Безалаберность как норма жизни". Для чего это сделано? Чтобы не пугать явными ошибками в ситуации, когда это явные ошибки? У меня нет оправдания такому ...зму. И именно это - проблема языка программирования, плодящая в в людях совершенно дурные привычки.
И таких дизайн-решений в PHP хватает. Там даже есть несколько уровней предупреждений, когда очевидная проблема может показываться на одной системе и подавляться на другой. Удобно, что тут скажешь. Залил сайт, который у тебя работает, на хостинг, а там полэкрана ошибок. И это тоже проблема языка программирования, развивающая безалаберность.
Не один здравый человек не назовёт такое решение хоть немного вменяемым. Людей с ранних пор приучают к неряшливому программированию, к подавлению ошибок, к наплевательству на всё, к отсутствию стиля. И это - проблема языка программирования.
| |
|
3.22, Аноним (22), 12:10, 21/06/2013 [^] [^^] [^^^] [ответить]
| +1 +/– |
Не думал, что когда-нибудь буду готов подписаться под каждым словом буратины.
| |
|
4.27, бедный буратино (ok), 12:38, 21/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
> Не думал, что когда-нибудь буду готов подписаться под каждым словом буратины.
Там в четвёртом абзаце должно быть "Ни" вместо "Не", так что и на этот раз вам повезло.
| |
|
3.28, Corner (?), 13:14, 21/06/2013 [^] [^^] [^^^] [ответить]
| +3 +/– |
$b = $a + 5; без инициализации $a - полный бред. Язык не разрешает это делать.
Касательно прибавления булева числа - разберитесь сначала, что такое булево число.
PHP, конечно, не ангел. Но бросаться на него голословно - дурной тон.
| |
|
4.30, бедный буратино (ok), 13:55, 21/06/2013 [^] [^^] [^^^] [ответить]
| –1 +/– |
> $b = $a + 5; без инициализации $a - полный бред.
> Язык не разрешает это делать.
> Касательно прибавления булева числа - разберитесь сначала, что такое булево число.
> PHP, конечно, не ангел. Но бросаться на него голословно - дурной тон.
http://dev.on.51t.ru/svodka-1371200752.html
разрешает. ещё он разрешает при ошибке в include не падать полностью, а исполнять. вообще, при неверных данных он до конца пытается исполнять, иногда это приводит к выдаче данных, которые не стоило бы показывать.
| |
|
5.93, kurokaze (ok), 14:58, 22/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
по твоей же ссылке
PHP Notice: Undefined variable:
Читай внимательнее в следующий раз на что ссылаешься.
| |
|
6.104, бедный буратино (ok), 15:16, 22/06/2013 [^] [^^] [^^^] [ответить]
| +2 +/– |
> по твоей же ссылке
> PHP Notice: Undefined variable:
> Читай внимательнее в следующий раз на что ссылаешься.
Ээээ. это мой тест. Оно ИСПОЛНИЛО его. К тому же, у многих в дефолте оно посылает свой stderr в какой-нибудь неведомый лог, и юзер этого нотийса просто не увидит.
Оно обязано тупо упасть, а не угадывать, что имел ввиду разработчик. Ибо чаще всего это банальная опечатка, и из-за этого можно получить трудноуловимую проблему. Должно быть два состояния - правильный код и неправильный, а не "ну, эта, а вдруг?".
| |
|
7.260, WhiteWind (??), 05:50, 24/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
Умные люди (как я, например) используют set_error_handler(), чтобы все нотисы/варнинги/etc. превращать в исключения. Так ни один нотис не ускользнёт вне зависимости от настроек в php.ini
| |
|
|
|
4.37, YetAnotherOnanym (ok), 14:48, 21/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
> Касательно прибавления булева числа - разберитесь сначала, что такое булево число.
"прибавить что-нибудь булевое - из той же пьесы" - где тут "число"?
| |
|
3.38, Аноним (-), 15:20, 21/06/2013 [^] [^^] [^^^] [ответить] | +4 +/– | Эталонное воплощение понятия профан Язык программирования - это понятие абстрак... большой текст свёрнут, показать | |
|
|
5.52, ecevcfvfrw (?), 21:03, 21/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
> Пусть не разбрасывается. Лишь бы php не пользовался.
Можно подумать в жабоскрипте что-то лучше
'2' + 2 === '22'; // true
2 + 2 === 4; // true
'3' * '5' === 15; // true
+'2' + 2 === 4; // true
На чем веб программировать то?
| |
|
6.59, AlexAT (ok), 22:36, 21/06/2013 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Можно подумать в жабоскрипте что-то лучше
> '2' + 2 === '22'; // true
Вот это кстати хуже всего. В PHP "+" (сложение) и "." (конкатенация), тьфу-тьфу, разделены.
| |
|
5.94, kurokaze (ok), 15:00, 22/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
>и вместо этого отдавать сервером сырец приложения
Буратина, признайся уже, php вывалил твой отвратительно написанный сорец и тебя засмеяли коллеги.
| |
|
6.112, бедный буратино (ok), 15:27, 22/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
>>и вместо этого отдавать сервером сырец приложения
> Буратина, признайся уже, php вывалил твой отвратительно написанный сорец и тебя засмеяли коллеги.
мне не жалко, могу и признаться. только я не понял, в чём?
ps. у меня нет коллег :( я сирота :(
| |
|
|
4.46, arisu (ok), 16:53, 21/06/2013 [^] [^^] [^^^] [ответить] | –1 +/– | ок это проблема в мозгах авторов языка боооольшая проблема ах, если бы автор ... большой текст свёрнут, показать | |
4.54, лох (?), 21:33, 21/06/2013 [^] [^^] [^^^] [ответить] | –1 +/– | Посмеёмся же над полным бредом Выходит, РНР - тоже что-то абстракное Хотя угол... большой текст свёрнут, показать | |
|
5.60, AlexAT (ok), 22:39, 21/06/2013 [^] [^^] [^^^] [ответить] | +/– | Это гораздо лучше, чем если бы он работал не так, как в описании Множество моло... большой текст свёрнут, показать | |
|
|
3.56, pro100master (ok), 22:16, 21/06/2013 [^] [^^] [^^^] [ответить]
| +2 +/– |
>Когда язык разрешает делать так: $b = $a + 5; без инициализации $a - это поощряет безалаберность.
не позволяет. Я пробовал. И если вы осуждаете какую-то сущность, потрудитесь ее хотя бы минимально узнать. Операции с неинницилиазированными объектами выдают эксепшн, как и в Си, например. Если же вы работаете, с блокировкой эксепшнов, то это именно low level или безалаберность. На "сях" тоже можно игнорировать вонинги компиляции и это может прокатить, а может и вылиться в серьезные проблемы. И что? Си, после этого, порождает бездарей? Поэтому, вместо того, чтобы писать тут холиварные глупости, идите подучите предметную область :)
| |
|
|
5.156, pro100master (ok), 16:50, 22/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
>Я уже приводил ссылку. Я просто сделал apt-get install php5-cli (свят! свят! свят!), и всё.
еще раз - не умеете пользоваться - не пользуйтесь. При включении соответствующего уровня отладки и перехвате исключений такие ошибки ловятся еще в процессе написания. Т.е. вы не осилили элементарные встроенные средства, но уже всех "посчитали"... круто, чо! Изобретателя указателей в "сях" по-вашему, хуже дьявола :)))
| |
|
|
7.248, pro100master (ok), 19:37, 22/06/2013 [^] [^^] [^^^] [ответить]
| +2 +/– |
>Мы говорим о том, что язык культивирует. Чтобы разобраться в подобных "сделать из дефолта что-то сравнимое", это тупо нужно знать
это называется профессионализм, бэби. Если ЖД шпалы будут укладывать люди, которым лень "тупо" узнать, как надо, у нас все поезда под откос уйдут)
[offtopic]странную тенденцию заметил: последние 5-6 лет, народ хочет тупо рубить бабло, но при это не то что не работать, даже думать не хочет)))[/offtopic]
| |
|
|
9.251, arisu (ok), 20:50, 22/06/2013 [^] [^^] [^^^] [ответить] | +/– | ты мне, конечно, не поверишь, но у нормальных людей принято сначала изучать язык... текст свёрнут, показать | |
|
|
|
|
|
|
|
|
1.2, бедный буратино (ok), 09:25, 21/06/2013 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
> Поддержка сопрограмм (coroutine) и генераторов (generator), предоставляющих простой и не требующий создания шаблонов способ реализации итераторов;
Вот я никогда не понимал, зачем? Кому нужно писать на php, тем всё это добро не впилось, только мешает. А тем, кому всё это нужно, на php писать в здравом уме не будет. В итоге только переусложнение "для своих", и этим никак не привлечь "чужих", у кого подобная функциональность есть давным-давно (а то прям в окно выглядываю и вижу, что за массовый забег, куда бегут все эти люди? а это с эрланга перебегают на php).
Впрочем, раз надо, так надо. Чем бы дети не тешились. :) Дай им бог здоровья. Лет через 10 и php 5.5 до хостингов докатится. :)
| |
|
2.47, AlexAT (ok), 18:15, 21/06/2013 [^] [^^] [^^^] [ответить]
| +1 +/– |
Он практичен и удобен для скриптовых решений. Нет возни с предкомпиляцией, C-подобный синтаксис, огромное число встроенных функций прямо в языке, без подключения модулей. И так далее.
| |
|
3.50, arisu (ok), 18:22, 21/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
> огромное число встроенных функций прямо в языке
это да. прямо в глобальном namespace. причём хоть бы имена в одном стиле выдерживали…
| |
3.55, лох (?), 21:46, 21/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
> Он практичен и удобен для скриптовых решений.
в сравнении с чем? С Си? с шеллом?
> Нет возни с предкомпиляцией,
это не плюс именно РНР.
> C-подобный синтаксис,
это и плюс, и минус.
> огромное число встроенных функций прямо в языке, без подключения модулей.
О да! при этом если модуль не подключен, то без root вы его вообще в принципе не подключите. Cool.
Не говоря о том, что всё равно никто не в состоянии запомнить не то что 50 000 функций в индексе руководства, но и банально их названия, порядок и типы аргументов str_replace vs strtr, strip_tags vs stripslashes, array_search(arg, array) vs array_filter(array, arg) и прочие array_shit vs (array_)fuck и str_shit vs strfuck, которые во всех нормальных ЯП являются методами Array и String.
> И так далее. | |
|
4.58, AlexAT (ok), 22:34, 21/06/2013 [^] [^^] [^^^] [ответить] | +1 +/– | Это плюс Когда вы пишете только на 1С питоне, руби, нужное вписать - вы пишет... большой текст свёрнут, показать | |
|
5.82, arisu (ok), 13:35, 22/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
> Мануал под рукой иметь не принято, угу. Настоящему кодеру^W камикадзе мануалы ни
> к чему.
один из признаков хорошо сдизайненого языка — логичность. бесспорно, можно зазубрить 100500 разных названий функций и порядок их аргументов: пыхеры так и пытаются делать (и фэйлят). а можно иметь *консистентную* (пардон май френч) схему именования и логичный одинаковый порядок аргументов — и тогда в мануал надо лазить *гораздо* реже.
| |
|
6.88, AlexAT (ok), 13:49, 22/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
> один из признаков хорошо сдизайненого языка — логичность. бесспорно, можно зазубрить
> 100500 разных названий функций и порядок их аргументов: пыхеры так и
> пытаются делать (и фэйлят). а можно иметь *консистентную* (пардон май френч)
> схему именования и логичный одинаковый порядок аргументов — и тогда в
> мануал надо лазить *гораздо* реже.
Все зависит от количества встроенных функций. В PHP их _слишком_ много. Но это - одно из удобств метаязыка, жертвовать которым не стоит. Все равно ведь придется лазить в мануал - только уже не по языку, а по нужным библиотекам. Разницы - никакой. Ну и да - между разными библиотеками *конзистентности* обычно тоже где-то в районе 0.00.
| |
|
7.111, arisu (ok), 15:26, 22/06/2013 [^] [^^] [^^^] [ответить] | +/– | тут уже приводили чудесные примеры консистентных наименований и чудную единообр... большой текст свёрнут, показать | |
|
|
9.132, arisu (ok), 15:59, 22/06/2013 [^] [^^] [^^^] [ответить] | +/– | вот об этом я и говорил всё время, собственно груз легаси плюс изначальное отсу... текст свёрнут, показать | |
|
|
|
|
5.98, kurokaze (ok), 15:05, 22/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
> Это плюс. Когда вы пишете только на 1С (питоне, руби, нужное вписать)
> - вы пишете только на одном языке, и привыкаете к его
> синтаксису до уровня прибивания гвоздями.
> Когда вы универсал - вам будет удобнее C-шный синтаксис, ибо он и
> в C, и в плюсах, и в PHP, и даже в
> жабе с шарпами.
Чепуха. Я и на ruby пишу и на c++/objective-c/java/perl/sh
| |
|
|
|
2.97, kurokaze (ok), 15:03, 22/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
> Вот я никогда не понимал, зачем? Кому нужно писать на php,
Ну так не пиши. Тебя что по вечерам избивают, заставляя писать на php?
Я например не пишу, но и не истерю. А ты как всегда разводишь бодягу на тему какой ты дартаньян. Что заставляет подозревать в тебе обычного кодеришку.
| |
|
1.3, бедный буратино (ok), 09:32, 21/06/2013 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
А вообще, судя по ченчлогу, php плавно скатывается в python (разработчики явно с туториала python-а не вылазили), только с С-синтаксисом и набором legacy-ужаса.
Но, опять же, зачем? Зачем нишевую вещь превращать в гибрид ужа и матрёшки? Кому это надо? Отпугнуть одних и не привлечь других.
Или это уже агония?
| |
|
2.14, Аноним (-), 10:11, 21/06/2013 [^] [^^] [^^^] [ответить]
| +7 +/– |
Тоже самое говорили такие же «аналитики» про 5.0 версию — «php скатился в java», «зачем это нужно». Агония затянулась, не находите?
| |
|
3.15, бедный буратино (ok), 10:18, 21/06/2013 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Тоже самое говорили такие же «аналитики» про 5.0 версию — «php скатился
> в java», «зачем это нужно». Агония затянулась, не находите?
Раньше сравнимых альтернатив по сложности/стоимости не было, и php мог хоть каждые три дня менять функции, стерпели бы (живой пример - mswindowstm). А сейчас, когда особых причин выбирать php нет (кроме привычки), вместо того, чтобы сохранять тех, кто даёт языку ценность, они лезут туда, куда его пользователям не особо и надо...
Кто использует родные функции map/reduce/filter в php, поднимите руки?! Кто использует нововведения 5.3 и 5.4, много ли таких?
Ну а что половина ченчлога это python в чистом виде, вплоть до скобочек - это вообще смешно.
| |
|
4.32, куросава (?), 14:05, 21/06/2013 [^] [^^] [^^^] [ответить]
| +1 +/– |
Пхп есть смысл выбирать хотя бы потому, что это сейчас единственный нормальный инструмент веб-разработки. Питон - поделка для лабораторных исследователей и админских утилит, с убогим ООП и отсутствием поддержки контрактного программирования "из коробки". Руби - тот же перл, где можно одно утверждение написать восемью способами, поэтому суппортить проекты на нем невозможно. Ява - микроскоп для забивания гвоздей.
| |
|
5.36, Аноним (-), 14:40, 21/06/2013 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Руби - тот же перл, где можно одно утверждение написать восемью
> способами, поэтому суппортить проекты на нем невозможно.
Это зависит от стандартов на код, если их нет, то да, будут проблемы, но так в любом языке.
| |
5.45, Rodegast (??), 16:40, 21/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
> Пхп есть смысл выбирать хотя бы потому, что это сейчас единственный нормальный инструмент веб-разработки.
Похоже что пых это как раз самый ненормальный инструмент веб-разработки.
| |
|
4.35, Аноним (-), 14:39, 21/06/2013 [^] [^^] [^^^] [ответить]
| +3 +/– |
> Кто использует родные функции map/reduce/filter в php, поднимите руки?!
Все используют, они написаны на C и более оптимальны, чем если писать руками интерпретируемый цикл.
> Кто использует нововведения 5.3 и 5.4, много ли таких?
Ну как только мигрировали на серверах, так сразу и стали использовать, $res = []; удобнее писать чем $res = array();
> Ну а что половина ченчлога это python в чистом виде, вплоть до
> скобочек - это вообще смешно.
Смешно — это библиотеки python и их совместимость с python 2 и python 3 :)
| |
|
|
6.77, arisu (ok), 13:21, 22/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
> myfunc(**r)
единообразие налицо, ага. {}, значит — это сложно, ради единообразия пишем dict(). а вот ** вместо какого-нибудь unpack() — это ничего, это нормально.
гвидофаны такие гвидофаны.
| |
|
7.79, бедный буратино (ok), 13:27, 22/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
>> myfunc(**r)
> единообразие налицо, ага. {}, значит — это сложно, ради единообразия пишем dict().
> а вот ** вместо какого-нибудь unpack() — это ничего, это нормально.
> гвидофаны такие гвидофаны.
Ковычки, скобочки, двоеточечки - отвлекают внимание, когда они перемешаны. Взгляд туда сюда тащится.
**r никак не отвлекает внимание, не усложняет лексический парсер глаз. myfunc(unpack(r)) однозначно усложнит парсинг глазами и увелчит нервную усталость (мозгу нужно о фигне думать) из-за двойных скобок. Терпеть не могу двойных (а уж как не могу терпеть тройных-четверных)))) скобочек, за ними всеми нужно следить, как за дитями маленькми. Хуже только } в условиях { :)
| |
|
8.103, arisu (ok), 15:16, 22/06/2013 [^] [^^] [^^^] [ответить] | +/– | я не сомневался, что у тебя есть Обоснование а вот я тебе скажу, что длинные сл... текст свёрнут, показать | |
|
|
|
|
|
|
|
|
|
|
|
|
22.265, AlexAT (ok), 07:22, 24/06/2013 [^] [^^] [^^^] [ответить] | +/– | PHP нельзя сравнивать с Python - последний по сравнению с PHP достаточно куцый ... большой текст свёрнут, показать | |
|
|
|
|
28.185, AlexAT (ok), 17:46, 22/06/2013 [^] [^^] [^^^] [ответить] | +/– | Без авторизации - проблематично Но вот имея ссылку в двух окнах - мы получим ра... большой текст свёрнут, показать | |
22.180, arisu (ok), 17:35, 22/06/2013 [^] [^^] [^^^] [ответить] | +/– | ты сам всё и описал отличный пример костыляния с ходу, не думая я делаю функц... большой текст свёрнут, показать | |
24.187, arisu (ok), 17:49, 22/06/2013 [^] [^^] [^^^] [ответить] | +/– | да на здоровье я ж сказал, это no-brainer возвратить результат типа 171 пере... большой текст свёрнут, показать | |
25.189, AlexAT (ok), 17:52, 22/06/2013 [^] [^^] [^^^] [ответить] | +/– | Это не no-brainer Это нормальное поведение Юзер может в соседней странице и ф... большой текст свёрнут, показать | |
32.224, arisu (ok), 18:39, 22/06/2013 [^] [^^] [^^^] [ответить] | +1 +/– | вот поэтому, например, тебя вообще нельзя допускать к разработке сколько-нибудь ... текст свёрнут, показать | |
26.192, arisu (ok), 18:03, 22/06/2013 [^] [^^] [^^^] [ответить] | +/– | я имел в виду свой пример 3 как это 171 забыла 187 это возможно только по... большой текст свёрнут, показать | |
30.219, arisu (ok), 18:30, 22/06/2013 [^] [^^] [^^^] [ответить] | +/– | очень просто надо только отвыкнуть пихать везде глобальные переменные 8212 и... большой текст свёрнут, показать | |
31.223, AlexAT (ok), 18:37, 22/06/2013 [^] [^^] [^^^] [ответить] | +/– | Непросто Контекст может включать в себя целую пачку объектов, а цепочка вызовов... большой текст свёрнут, показать | |
32.227, arisu (ok), 18:47, 22/06/2013 [^] [^^] [^^^] [ответить] | +1 +/– | и это не страшно совсем irl 8212 совсем немного одна функция 8212 одно ... большой текст свёрнут, показать | |
34.241, arisu (ok), 19:11, 22/06/2013 [^] [^^] [^^^] [ответить] | +1 +/– | я, собственно, слово 171 фрэймворк 187 и употребил первый и даже написал о ... большой текст свёрнут, показать | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
10.120, arisu (ok), 15:36, 22/06/2013 [^] [^^] [^^^] [ответить] | +/– | а я ожидаю двойное разыменование указателя а почему эта фигня заместо работы с ... большой текст свёрнут, показать | |
|
|
|
|
|
|
|
3.17, бедный буратино (ok), 10:46, 21/06/2013 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Тоже самое говорили такие же «аналитики» про 5.0 версию — «php скатился
> в java», «зачем это нужно». Агония затянулась, не находите?
Да никто и не говорит, что php умрёт в одночасье - кто ж тогда ораву голодных пыхеров кормить будет, которые так ничего делать и не научились? Речь именно о тенденции, о движении, когда проект думает не о своей основной аудитории (быдлокодеры, пишушие небезопасный лапшеобразный код), а начинает вводить то, что этой аудитории непонятно. В результате и получится гибрид, который будет только терять "своих" пользователей.
| |
|
4.42, Аноним (-), 16:05, 21/06/2013 [^] [^^] [^^^] [ответить]
| +1 +/– |
чтобы умер php, надо убить много cms да фреймворков.
интернет, ессно, в одночасье не умрёт - не применило ещё сшп сиё оружие в полной мере. готовится только.
ну а как бабахнет - тут уж не волнуйтесь. неандертальцы им много выгоднее человеков, так что искоренят, будьте на этот счёт спокойны.
| |
|
|
6.48, AlexAT (ok), 18:17, 21/06/2013 [^] [^^] [^^^] [ответить]
| +1 +/– |
>> "хочу python/ruby, но на php"?
Вот это и называется - быдлокодер. Надо отстреливать сразу. Если пишешь на языке - будь добр учитывать его особенности, а не "хочу другой язык" и лепить костыли.
| |
6.53, Аноним (-), 21:03, 21/06/2013 [^] [^^] [^^^] [ответить]
| +1 +/– |
> Пытаются эмулировать вещи, которых в php нет, но при этом при малейшем погружении вглубь оказывается, что их там и не появилось.
Это ещё чё. Современные программеры - лишь жалкие подражатели извергов, эмулирующих машинными кодами функции ассемблерных компиляторов. Где это видано, чтобы процессор обладал функциями компиляции кода? А выполнять он тогда что будет? Он же перегреется от мнемокодов прежде, чем завершится считывание перфокарт.
Сколько лет с тех пор прошло, сколько ядер в процессорах домашних компов перерабатывают ютуб в тепло да пакуют сейвы скайрима, а ни одного эксцеля и ни единого фотошопа внутри архитектур не появилось.
Истинно, это -- закат нашей цивилизации. Помяните моё слово.
| |
6.61, Аноним (-), 22:47, 21/06/2013 [^] [^^] [^^^] [ответить]
| +2 +/– |
Потому что PHP как платформа для web разработки - лучше. А у ruby с python не получилось, не фортануло :)
| |
|
|
|
|
2.100, kurokaze (ok), 15:09, 22/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
> А вообще, судя по ченчлогу, php плавно скатывается в python (разработчики явно
> с туториала python-а не вылазили), только с С-синтаксисом и набором legacy-ужаса.
Не, когда php опуститься на дно окончательно, снизу постучит гвидобейсик. Это же надо было такого идиотизма наплодить что в системе приходиться держать 2.7 и 3.2 к примеру (это еще учитывая что я не ставлю софта работающего на гвидобейсике)
dev-lang/python
Available versions:
(2.5) 2.5.4-r4 2.5.4-r5
(2.6) 2.6.8 2.6.8-r1
(2.7) 2.7.3-r2 2.7.3-r3 ~2.7.4 ~2.7.5
(3.1) 3.1.5 3.1.5-r1
(3.2) 3.2.3 ~3.2.3-r1 3.2.3-r2 ~3.2.4 ~3.2.5
(3.3) **3.3.1 ~3.3.2
| |
|
3.106, бедный буратино (ok), 15:18, 22/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
>> А вообще, судя по ченчлогу, php плавно скатывается в python (разработчики явно
>> с туториала python-а не вылазили), только с С-синтаксисом и набором legacy-ужаса.
> Не, когда php опуститься на дно окончательно, снизу постучит гвидобейсик. Это же
> надо было такого идиотизма наплодить что в системе приходиться держать 2.7
> и 3.2 к примеру
Это трагедия. Потеря целых 20 мб свободного пространства!
Какой-нибудь пых захочешь, а не сможешь держать несколько конкурентных веток (при использовании mod_php - уж точно). А в python хоть 5 штук изолированных используй, без проблем.
| |
|
|
1.4, Sylvia (ok), 09:38, 21/06/2013 [ответить] [﹢﹢﹢] [ · · · ]
| +6 +/– |
для тех кто будет переезжать:
APC - более не поддерживается, в связи с внедрением zend opcache авторы на дальнейшее развитие расширения забили. Тем кому нужен кеш для переменных могут воспользоваться APCu (есть в PECL, версия 4.0.2), APCu создан на базе APC двумя авторами APC
eaccelerator - можно взять из master ветки github'a как и для 5.4, в eaccelerator.c убрать #include "php_logos.h" , можно пользоваться, хотя ZendOpcache отчасти лучше будет
Xcache - версия 3.1.0-dev доступна в trunk
личные впечатления от перехода на 5.5 - больше тормозит и с аппетитом кушает память
| |
|
2.31, DeadLoco (ok), 14:00, 21/06/2013 [^] [^^] [^^^] [ответить]
| +1 +/– |
А ведь еще недавно ходили слухи, что именно АРС будет включен в штатную поставку пхп... А теперь его вообще погнали лесом.
| |
|
3.39, Sylvia (ok), 15:45, 21/06/2013 [^] [^^] [^^^] [ответить]
| +1 +/– |
его не погнали, просто амбиции авторов поумерили, вот xcache не претендовал на включение по умолчанию, или даже в pecl, а автор продолжает делать свое дело
авторам apc никто не мешает и дальше делать то что делали, расширение по преждему в pecl, но текущая версия с php 5.5 несовместима, авторы сами решили спрыгнуть на поддержку apcu, но имхо поддержка только variable cache это тупиковый путь и конкуренция тут еще более жесткая, и не только xcache, но и memcache и редиска. может передумают еще.
| |
|
|
1.5, бедный буратино (ok), 09:43, 21/06/2013 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
> Добавлена возможность использования нескалярных итераторов в качестве ключа в цикле foreach (например, "foreach ($iter as $k => $v)");
А можно для деревенских, что это?
for i in iter: я понимаю, а вот это? кто кого харлал?
Вообще, тупо эти самые новомодные в 5.5 итераторы в foreach поддерживаются?
> Прекращение поддержки Windows XP и Windows 2003.
"ну теперь венде точно капец" (ц)
| |
1.6, труляля (?), 09:44, 21/06/2013 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
> Поддержка ключевого слова "finally"
> Релиз PHP 5.5.0
лучше поздно, чем никогда.
| |
|
2.9, бедный буратино (ok), 09:48, 21/06/2013 [^] [^^] [^^^] [ответить]
| –3 +/– |
До 5.5 разработчики даже не знали о существовании python. А тут открыли мануал, и узнали для себя много нового. Причём многое сделано прямо в лоб, один в один.
| |
|
1.8, бедный буратино (ok), 09:46, 21/06/2013 [ответить] [﹢﹢﹢] [ · · · ]
| –1 +/– |
Новость в реалтайме меняется. Одно откомментируешь, другое появляется. Стесняются сразу всё показать, что ли?
| |
1.11, бедный буратино (ok), 09:50, 21/06/2013 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
> Возможность использования empty() и isset() над результатом работы функции и произвольными выражениями (например, empty(foo()));
В смысле? А что, и этого не было? ЛЮДИ! КАК ВЫ ТАМ ЖИЛИ?
| |
|
|
|
4.21, arisu (ok), 12:07, 21/06/2013 [^] [^^] [^^^] [ответить]
| +4 +/– |
>> эк тебя bombanulo.
> ась?
именно то. пыхеры сидят, улыбаются. перловщики сидят, улыбаются. гвидобейсиковцы сидят, улыбаются. буратино бегает и кричит «ужос-ужос-ужос!»
| |
|
|
6.41, бедный буратино (ok), 15:58, 21/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
> зато сколько уникального контенту.
> зачем пхп, когда постинг?
буратино vs php
останется только один
максимум два
| |
|
|
|
|
|
1.23, Аноним (-), 12:13, 21/06/2013 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
>добавлены новые языковые конструкции
Это когда-нибудь закончится? ALGOL-68 получится.
| |
|
2.24, arisu (ok), 12:23, 21/06/2013 [^] [^^] [^^^] [ответить]
| –1 +/– |
>>добавлены новые языковые конструкции
> Это когда-нибудь закончится?
когда умрёт последний пыхер.
| |
|
1.26, Аноним (-), 12:31, 21/06/2013 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
Пых напоминает ту категорию людей, которую все знают, шпыняют и постоянно используют, как хотят. При этом сам человек прекрасно всё понимает, и не смотря на это продолжает двигаться вперёд. Такой вечно вкалывающий неунывающий пофигист.
| |
|
2.33, Пышпер (?), 14:11, 21/06/2013 [^] [^^] [^^^] [ответить]
| +3 +/– |
Этим шпыняющим просто завидно, что они бизнесу нафиг не нужны со своими модными языками.
Это из разряда "собаки лают, караван идет"
| |
|
1.51, chester (?), 20:55, 21/06/2013 [ответить] [﹢﹢﹢] [ · · · ]
| +1 +/– |
Красота то какая, сколько мнений )) Я лично считаю знание сила, не важно какой язык программирования ты знаешь. Поэтому хаить пых и его программеров глупо, лучше взять мануал и работать над собой)) Всем удачи.
| |
1.68, бедный буратино (ok), 08:50, 22/06/2013 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
кстати, господа пыхеры, помните конкурс по написанию простой, понятной и краткой реализации задания:
Пример: найти гласные буквы (латинские), которые встречаются во всех словах
ruby (простая):
words = 'fuckthemall aeouy yeah'.split
result = ['a', 'e', 'i', 'o', 'u', 'y'].find_all{ |c| words.all?{ |word| word.index c } }
python (простая):
words = 'fuckthemall aeouy yeah'.split()
result = [c for c in 'aeiouy') if all(c in word for word in words)]
там в теме есть и "нечто совершенно иное": http://www.opennet.me/openforum/vsluhforumID3/90334.html
покажите вариант на php?
| |
|
|
3.70, бедный буратино (ok), 11:52, 22/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
> А сможешь объяснить, зачем?
Чтобы сравнить элегантность, удобство читать и удобство писать для языков.
| |
|
4.71, AlexAT (ok), 11:56, 22/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
> Чтобы сравнить элегантность, удобство читать и удобство писать для языков.
Это можно сравнить, только взяв два аналогичных по функциям достаточно больших проекта. К сожалению, ничего на ум не приходит.
| |
|
|
6.73, AlexAT (ok), 12:26, 22/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
> ps. А зачем большой?
А затем, чтобы избежать предвзятости сферического сравнения в вакууме. На больших проектах обычно и вылезают все самые интересные моменты языков.
| |
6.95, arisu (ok), 15:01, 22/06/2013 [^] [^^] [^^^] [ответить]
| –1 +/– |
> Даже по этому сравнению видно, что python-конструкция проще и нагляднее
чушь.
| |
|
|
|
|
2.75, AlexAT (ok), 12:43, 22/06/2013 [^] [^^] [^^^] [ответить]
| +2 +/– |
$in = 'fuckthemall aeouy yeah'; $letters = array('a','e','i','j','o','u','y');
foreach (str_word_count($in, 1) as $word) $letters = array_intersect($letters, str_split(count_chars($word, 3), 1));
Не знаю, кому как, а мне по читабельности этот код гораздо проще для понимания, чем примеры на Ruby и Python. В основном за счет простых и понятных названий функций и ключевых слов.
| |
|
|
4.81, AlexAT (ok), 13:29, 22/06/2013 [^] [^^] [^^^] [ответить]
| +1 +/– |
Суть не в этом. Когда я беру чужой код - я хочу наглядности. Потому что времени разбираться в мешанине из простейших слов, сдобренной спецсимволами, с литровой бутылкой водки - нет. Одна из проблем, которая убила perl.
Ну и подытожим: указанная тобой задача выше в любом из предложенных языков решается элементарно, с несущественными различиями. Т.е. не является критерием для сравнения, о чём изначально тебе и говорилось.
| |
|
|
6.86, AlexAT (ok), 13:45, 22/06/2013 [^] [^^] [^^^] [ответить] | +/– | Общие принципы, которые ныне используются везде - это принципы C Тчк А знаешь,... большой текст свёрнут, показать | |
|
5.84, бедный буратино (ok), 13:41, 22/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
> Ну и подытожим: указанная тобой задача выше в любом из предложенных языков
> решается элементарно, с несущественными различиями. Т.е. не является критерием для сравнения,
> о чём изначально тебе и говорилось.
Осталось только провести опрос среди разных людей-итышек с просьбой наглядно оценить, ЧТО ДЕЛАЕТ ЭТОТ КОД.
| |
|
6.87, AlexAT (ok), 13:46, 22/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
> Осталось только провести опрос среди разных людей-итышек с просьбой наглядно оценить, ЧТО
> ДЕЛАЕТ ЭТОТ КОД.
Причем желательно среди людей активно программирующих, но не сильно знакомых с конкретным языком. Это, кстати, будет очень интересный показатель.
| |
|
7.92, бедный буратино (ok), 14:07, 22/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
>> Осталось только провести опрос среди разных людей-итышек с просьбой наглядно оценить, ЧТО
>> ДЕЛАЕТ ЭТОТ КОД.
> Причем желательно среди людей активно программирующих, но не сильно знакомых с конкретным
> языком. Это, кстати, будет очень интересный показатель.
irc, jabber-конференции, жуики всякие. я в подобных вещах ничего не понимаю, поэтому подсказать не смогу, но тут наверное есть кто-то "с выходом".
| |
|
|
|
|
|
2.273, almadomundo (?), 13:48, 24/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
Не очень знаком с синтаксисом Ruby/Python. Если речь о том, чтобы найти все гласные буквы, которые хотя бы раз присутствуют в слове, то, например,
$sWords = 'fuckthemall aeouy yeah';
$rgResult = array_intersect(['a', 'e', 'i', 'o', 'u', 'y'],str_split($sWords));
Если хочется через замыкание, то - пожалуйста
$sWords = 'fuckthemall aeouy yeah';
$rgResult = array_filter(['a', 'e', 'i', 'o', 'u', 'y'],function($sLetter) use ($sWords)
{
return strpos($sWords, $sLetter)!==false;
});
Суть в том, что не стоит недооценивать инструмент, который не до конца знаете (или не знаете вовсе). В PHP начиная с версии 5.4 появилось много хороших вещей.
Лично я считаю PHP трудным языком - потому что на нём трудно писать "правильно" - язык действительно предоставляет слишком много возможностей, так что начинающему программисту легко запутаться и начать делать неверные решения. Не спорю так же и с тем, что очень много плохого "наследия" - в виде всевозможных side-effect функций наподобие sort/shuffle - тут, увы, ничего не поделаешь. Надеюсь только, что в будущих релизах волевым решением сделают всё единообразно и уберут этот процедурный подход PHP 4.
| |
|
3.274, arisu (ok), 13:56, 24/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
> В PHP начиная с версии 5.4 появилось много хороших вещей.
например, «замыкания», которым надо *руками* указывать, что они захватывают. голуби от хохота с проводов падают.
| |
|
4.275, almadomundo (ok), 14:22, 24/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
Это можно считать как плюсом, так и минусом.
С одной стороны - согласен, если нужно много сущностей того scope, в котором объявлено замыкание, а таковых сущностей порядка 10, то да, утомляет.
С другой стороны - если учесть, что параметры контекста могут быть именованы, а само замыкание - привязано к объекту (через bindTo) - то это хорошая возможность - поскольку предоставляет возможность использовать свойства объекта внутри замыкания. Я бы сказал, это компромисс - если мы хотим, чтобы было возможно второе, то придётся получить недостатки первого.
Наконец, если переменных настолько много, что перечисление их не представляется хорошей идеей, всегда есть get_defined_vars() - но, по правде, у меня никогда не возникало нужды передать замыканию контекст из более чем 3-4 переменных - в силу организации данных. Есть ведь массивы/объекты. Необязательно всё хранить в скалярах.
| |
|
5.276, arisu (ok), 14:30, 24/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
> Это можно считать как плюсом, так и минусом.
это минус. потому что заставляет выполнять руками задачу, с которой отлично справляется компилятор. все переменные из outer scope, которые используются внутри функции, попадают в замыкание. всё. если надо кого-то исключить — «затеняем» его локальной декларацией. но у похапэ… ОПА! нет локальных деклараций.
впрочем, и это обходится элементарным анализом байткода: если переменная из outer scope не используется до первого присваивания ей значения, то захватывать её не надо. костыль, конечно, но в большинстве случаев будет работать и позволит не вводить новый синтаксис.
| |
|
6.281, AlexAT (ok), 14:48, 24/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
> это минус. потому что заставляет выполнять руками задачу, с которой отлично справляется
> компилятор. все переменные из outer scope, которые используются внутри функции, попадают
> в замыкание. всё. если надо кого-то исключить — «затеняем» его локальной
> декларацией. но у похапэ… ОПА! нет локальных деклараций.
Это концепция языка - у него только принудительное наследование между scope'ами.
Где-то она неудобна, да. Но реально - в ряде случаев страхует от весьма трудноуловимых багов (переменная объявлена в глобальном контексте, не объявлена в локальном, но используется как локальная).
| |
|
7.283, arisu (ok), 14:52, 24/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
она везде неудобна, потому что заставляет делать за машину её работу. с таким же успехом я могу собрать всё, что мне надо, в массив/новый объект и передавать его, например.
а если попроще — то это «мы не поняли, зачем нужны замыкания, поэтому сделали в меру своего непонимания». в итоге вместо облегчения жизни добавили костылей.
| |
|
|
5.277, arisu (ok), 14:32, 24/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
алсо, bintTo() не нужен. достаточно иметь нормальные nested functions, и тогда такие «биндеры» элементарно пишутся на самом языке. но у похапэ традиция костылестроения.
| |
|
6.278, almadomundo (ok), 14:39, 24/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
Не соглашусь. Использование переменных внутри тела замыкания неявно привязывает его к контексту. А с именованными параметрами мы получаем вполне себе переносимый код, одновременно корректно работающий с контекстом и не зависящий от него. Правда, думаю, это вопрос вкуса - ведь можно в принципе и новое замыкание объявить.
Насчёт nested functions и bindTo - не уловил идеи. Можете подробнее?
| |
|
7.280, arisu (ok), 14:45, 24/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
> Не соглашусь. Использование переменных внутри тела замыкания неявно привязывает его к контексту.
эм... это и есть суть замыканий: захватить с собой контекст.
> А с именованными параметрами мы получаем вполне себе переносимый код, одновременно
> корректно работающий с контекстом и не зависящий от него.
это, пардон май фрэнч, фигня какая-то. странная помесь недозамыканий и dynamic scoping.
> Правда, думаю,
> это вопрос вкуса - ведь можно в принципе и новое замыкание
> объявить.
и можно, и нужно. не надо превращать замыкания в непонятных монстров.
> Насчёт nested functions и bindTo - не уловил идеи. Можете подробнее?
если я верно понял, что делает bindTo, то оно пишется вот так:
function makeBind (obj)
function closure ()
print(obj.field);
end;
return closure;
end;
obj0 = { field=42 };
cls0 = makeBind(obj0);
cls1 = makeBind{ field=666 };
cls0(); -- prints 42
cls1(); -- prints 666
| |
|
|
|
|
|
|
1.291, Аноним (-), 23:42, 26/06/2013 [ответить] [﹢﹢﹢] [ · · · ]
| +/– |
Вы такие смешные, ребята. Кто-то в это время на пхп кодит и бабло зарабатывает, а вы тут бои по переписке устраиваете, видимо мамы перекормили вас.
| |
|
2.292, arisu (ok), 23:54, 26/06/2013 [^] [^^] [^^^] [ответить]
| +/– |
> Вы такие смешные, ребята. Кто-то в это время на пхп кодит и
> бабло зарабатывает, а вы тут бои по переписке устраиваете, видимо мамы
> перекормили вас.
а мы уже заработали, нам не надо с утра до вечера горбатиться.
| |
|
|