Майк, если отбросить исторические ссылки и аргументировать выбор, то он:
1. Прост
2. Быстр относительно других языков.
3. Поддерживает множество парадигм, выбирай на вкус.
4. Поддерживаем любым современным броузером, т.е. не надо никаких спец. инструменто разработки.
5. У него есть стандарты
6. У него есть очень большая коммьюнити
7. У него есть много библиотек
8. Он используется в hosted environments и standalone, как
Е еще динамика развития. Тот же jQuery, сильно добавил к популарности языка. И тенденция прослеживается четко. Если лет 10 назад язык казался несколько поделочным, то на текущий момент на нем научились писать очень качественный код.
Стакан на треть пуст.
Прост????????????????
Во-первых , там есть объекты.
Во-вторых они там ещё и instantiated
В-третьих , там "локальные переменные" можно определять в любом блоке.
В-четвёртых { } там является именно "блоком" ( в смысле BEGIN; END; языка PL/1 ), а не в смысле "составного оператора",
В-пятых - там есть try ....catch
В-шестых - свойства екземляра объекта там являются "динамическими". Там можно "во время выполнения" добавлять объекту новое свойство ( в т.ч. и "метод" ).
И это "просто"? Этот JavaScript ведь "запутаннее" чем все существующие реализации C/++ и Java вместе взятые.
А ведь я даже о DOM interfaces не вспоминал.
P.S. У меня front-end для работы с БД полностью на JavaScript написан - там просто внутри пустого "тела страницы" всё делается на JavaScript по "onload". Поэтому я очень хорошо знаю всю обманчивую простоту JavaScript.
Как шутили на сайте Google Projects - ну и кто здесь думает , что хорошо знает JavaScript??????
JavaScript начинался как "простой язык". Но даже в самом начале из-за возможности динамического создания свойств объектов он был во многих отношниях "круче" чем LISP.
А сейчас он превратился в монстрообразное чудище. Меня больше всего удивляет - как при этом кто-то ещё умудряется ругать C.
Last edited by crazy-mike; 02-16-2013 at 09:50 AM.
Жизнь дается человеку один раз и прожить ее надо так, чтобы не ошибиться в рецептах.
Строить Асгардию побуждает тьма, посетившая людские души
Объекты это плюс языка.
"instantiated" objects –*мне этот термин не встречался. Ты имеешь ввиду что объекты можно инстанциировать? Ну во первых это так почти везде. Во вторых, это не обязательно для JavaScript. Если конечно ты не имел ввиду что то другое.
{} - блок? А можешь пояснить чем это мешает?
try...catch – это плюс. (Не хочешь не пользуй)
динамические свойства объекта -*это плюс (это долгая тема, но как человек писавший на плюсах 11 лет где такого нет, я могу это смело утверждать, возьми хотя бы библиотеки для тестирования кода, там где нет динамики это страшный пейн)
DOM - оставь пока, не надо мешать все в кучу. Мы о языке. Заметь, что почему то ассоциация про DOM, у тебя возникла, а возникла бы она у тебя если б я сказал что будущее за С? Что лишь указывает но гораздо большую применимость JS.
Там конечно есть неприятные вещи, типа правил на что указывает this, но их не много и workarounds известны. Скажем так их несколько. Сравни с C++, где таких мест сотни, целые книги посвящены этому.
Просто язык который не ограничивает программиста сильно, не ограничивает и в написании ужасного кода. Свобода языковых средств идет на пользу тем кто не умеет писать код. А их отсутвие мешает жить тем кто умеет.
Стакан на треть пуст.
Всё проще - там нет средств , которые принудительно мешают делать глупости. "Хороший язык программирования" должен изначально ограничивать свободу делать ошибки по максимуму. Соответственно JavaScript - "плохой язык программирования" , поскольку на нём можно ночью нарисовать то , что потом днём будет очень трудно понять , а как оно вообще работает.
В "плохих языках программирования" , конечно же , есть своё очарование. Но "хорошими" они от этого не становятся. Мало того - любой "хороший язык программирования" по мере добавления в него новых возможностей становится "плохим". Pascal , сразу поле того как его придумали - был "хорошим языком программирования". А что с ним сделали потом ????????
Кстати , кроме C++ ведь был и C--. Там "недостатки C" пробовали преодолевать путём удаления "неправильных дополнительных возможностей".
Жизнь дается человеку один раз и прожить ее надо так, чтобы не ошибиться в рецептах.
Строить Асгардию побуждает тьма, посетившая людские души
Это экзактли то что пытались сделать разработчики C++. Что б не смог сделать то, что б это. Что бы типы правильно приводились. В итоге правила стали такими сложными что их понимают только language lawyers. И все равно реальность подсовывала постоянно случаи, когда эти правила были нафиг не кому не нужны. Например вектор константных ссылок не приводится к вектору константных ссылок на базовые классы. Безопасная логически операция, но противоречит правилам языка. А const антность в интерфейсах? Тот кто хоть раз пробовал сделеать константные интерфейсы, знает что ей начинают заражаться все вокруг, причем даже то что не хотелось бы заражать. Опять же благое намерение - сделать ограничение помогающее программисту не сделать ошибку. И даже не смотря на все правила языка, есть управление внешними ресурсами, памятью, например, где языковые средства предоставляют мало поддержки программисту. Про умнейшие мозги человечства бьющиеся над составлениями конверсий умных указателей один к другому я уже умолчу.
Вобщем мой вывод был такой - ну их к черты эти языки с костылями не позволяющими упасть. Невозможно заранее подстелить солому во всех местах. Нехорошее это дело. Перешел на динамические и не разу еще не пожалел. Разве тормоза иногда достают. Но JS шустрый весьма. Динамический язык + хорошая тестовая фрейворка для unit/integration тестов - все что надо для счастья.
Кстати я тут был на этой неделе на одной конфе посвященой одной из JS фреймфорков. Там было человек 150, наверное. Когда предложили работодателям проанонсировать вакансии, очередь выстроилась человек в 20.
Стакан на треть пуст.
Javascript популярен по той же причине, по которой были популярны бейсик и php - легко написать программу, и язык стерпит многие вольности со стороны программиста. Что дает очень высокую производительность труда в небольших проектах. С другой стороны, когда проекты становятся сложными, и их приходится поддерживать в течение нескольких лет, преимущества оборачиваются недостатками. Большой проект на Javascript превращается в страшное спагетти, в котором не могут разобраться даже его авторы.
Не превращается - если использовать "объекты" в качестве "модулей" и если не пользоваться всякими "странными" вариантами eval.
Но после появления web-worker-ов говорить о том , что на JavaScript "легко писать программу" ??????
А JavaScript "популярен" практически по единственной причине - в браузерах просто ничего другого нет. Если бы IBM сделала браузер с поддержкой PL/1 вместо JavaScript ( или хотя бы REXX )....![]()
Last edited by crazy-mike; 02-18-2013 at 09:09 PM.
Жизнь дается человеку один раз и прожить ее надо так, чтобы не ошибиться в рецептах.
Строить Асгардию побуждает тьма, посетившая людские души
There are currently 1 users browsing this thread. (0 members and 1 guests)
|
|
Terms of Service | Privacy Policy |
|