самое странное в языках программирования
Aug. 14th, 2010 08:57 amhttp://stackoverflow.com/questions/1995113
(увидел на RSDN)
если я правильно посчитал, пальма первенства - за Javascript.
UPD: хотя кошмарнее черты чем коболовский ALTER GOTO никто не признаёт - потому что вышибает почву из-под ног любого программиста, уверенного в неизменяемости кода из высокоуровневного языка.
(увидел на RSDN)
если я правильно посчитал, пальма первенства - за Javascript.
UPD: хотя кошмарнее черты чем коболовский ALTER GOTO никто не признаёт - потому что вышибает почву из-под ног любого программиста, уверенного в неизменяемости кода из высокоуровневного языка.
no subject
Date: 2010-08-14 10:17 am (UTC)Примерно как забивать шурупы молотком и удивляться какой это странный гвоздь. :)
no subject
Date: 2010-08-14 06:03 pm (UTC)А какое - осмысленность неявного ';' после операторов при отсутствии явной системы продолжения строки (как в Питоне)?
no subject
Date: 2010-08-15 09:42 pm (UTC)no subject
Date: 2010-08-16 09:37 am (UTC)no subject
Date: 2010-08-17 07:58 am (UTC)no subject
Date: 2010-08-17 07:13 pm (UTC)Из серии "А почему же тогда на телеги не ставили движки внутреннего сгорания, а лучше сразу электродвигатели - они же лучше лошадей" :))
http://ru.wikipedia.org/wiki/JavaScript
"...Они ставили перед собой цель обеспечить «язык для склеивания» составляющих частей веб-ресурса: изображений, плагинов, Java-апплетов, который был бы удобен для веб-дизайнеров и программистов, не обладающих высокой квалификацией..."
Понимаешь - в выражениях вида
button onclick="return confirm('Вы уверены?')"
или
URL - javascript:alert("hi")
заставлять писать еще ";" несколько не красиво.
Да и куда в этой строке запихнуть обработку исключений (которых тогда и не было в языке) - совершенно не ясно :)
Вместо этого возвращается ошибка. А совсем не "0". (Видишь - тоже недопонимание).
http://javascript.ru/parseInt
"...Если преобразовать в число не удается, parseInt возвращает NaN..."
"..NaN - Не-Числовое значение. Как правило, оно используется для обозначения ошибки при математических операциях. Вместо генерации исключения, функция возвращает NaN. Значение NaN не равно никакому другому числу, включая само NaN."
Кроме того:
"... Большинство реализаций интерпретируют строки, начинающиеся с 0 как восьмиричные. Не все браузеры так поступают. Некоторые (напр. Google Chrome) - интерпретируют числа в десятичной системе, даже если они начинаются с 0. Стандарт это допускает. "
но
"При обработке данных, веденных пользователем, указывайте основание (radix) в вызове. Это даст более предсказуемые результаты."
Т.е снова недопонимание. Вместо четкого указания что ему надо 10тичное число получить - он мучался и даже не пытался проверять возвращаемый результат на NaN.
:)
no subject
Date: 2010-08-14 12:04 pm (UTC)no subject
Date: 2010-08-14 01:07 pm (UTC)no subject
Date: 2010-08-14 06:04 pm (UTC)no subject
Date: 2010-08-17 07:43 pm (UTC)Та же Java врятли из тех же исходников заработает на вроде как похожем C#.
А JavaScript в среде JScript фирмы MS умудряется выжить :)
При том к-ве реализаций движков, браузеров, разных версий реализаций (с разными багами) тем не менее можно написать программу, которая сможет в этом всем функционировать. Сама из себя (без условной компиляции и других внешних механизмов) определит что есть в наличии из методов и объектов (ака библиотечной стандартной функциональности) и воспользуется нужным вариантом. А отсутствующая функция (метод) не завалит выполнение всей программы, а будет просто обойдена чем-то типа if(func) {func()}.
:)
no subject
Date: 2010-08-18 04:59 pm (UTC)http://wtfjs.com/
no subject
Date: 2010-08-29 08:10 pm (UTC)no subject
Date: 2010-08-29 08:28 pm (UTC)no subject
Date: 2010-08-29 08:36 pm (UTC)no subject
Date: 2010-08-29 08:42 pm (UTC)no subject
Date: 2010-08-29 08:46 pm (UTC)