> Я говорю о своем впечатлении, а не утверждаю, что язык абсолютно плох. А я тоже не говорил про "абсолютно плох".
Тем не менее я считаю, что было выявлено недостаточно проблем именно для того заявления, которое вы сделали, а не для "абсолютно плох".
> Он как раз понравился мне, в нем реализованы интересные идеи ООП, но несколько пакостных моментов забыть никак не могу. Как показывает практика, язык вполне юзабелен и популярен, вот только могло бы быть и получше.
Мне тоже не нравятся "пакостные моменты" в языках. И я перебрал много языков, в надежде найти что-нибудь "получше" (еще начиная с C++). Но везде какие-нибудь да есть пакостные моменты.
Вообще, чем более популярен язык, тем больше "пакостных моментов" из желания угодить всем.
Чем менее популярен - либо вообще не подходит, либо пакостных моментов почти нет (в синтаксисе и семантике) - но хуже поддержка, стабильность, интеграция, библиотеки и т.п.
> Вот такой - по-моему, олмановский. В данном случае разбор оператора return закончится в первой же строке, т.е. совсем не так, как можно было бы предположить.
Наверное таки да. Надо будет мне этот момент повнимательнее изучить.
>> А здесь-то в чем проблемы? Это полностью соответствует ОО-концепции.
>> null - это тоже такой объект. Все правильно.
> Технически-то он является, но, учитывая его особое назначение, могли бы сделать исключение, ИМХО.
А вот здесь я с вами по-прежнему не согласен.
Это именно не технически.
Это именно семантика ОО-модели. Все есть объекты, включая типы, синглтоны, безтиповые константы, функции, код, даже операторы языка и т.д. и т.п. - это я не о JS, это как должно быть.
> Кроме того, в JavaScript не все является объектами, есть еще строки, числа и undefined, а вот null внезапно оказывается объектом, хотя по логике означает отсутствие какого-либо значения.
Если не являются, то плохо. Но насколько мне известно - являются.
Надо будет мне этот момент еще раз изучить.
А как именно это проявляется, что они не объекты?
P.S. Планирую на JS перейти, в связи его развитием как полноценного языка, не привязанного к браузеру.