Какая польза от языка Dart над JavaScript (Node.js) - программирование
Подтвердить что ты не робот

Какая польза от языка Dart над JavaScript (Node.js)

Я не вижу смысла Dart в отношении проблемы, которую они пытаются решить.

Я читал, что он был создан из-за коротких ошибок JavaScript, однако эти короткие предложения не были предоставлены.

Может ли кто-нибудь объяснить преимущества обучения Дарту, а не изучать Node.js?

4b9b3361

Ответ 1

Технический обзор как представляется, суммирует разницу достаточно хорошо:

  • : в то время как JavaScript объектно ориентирован и не предоставляет классы (по крайней мере, в его последних воплощениях), это действительно язык на основе прототипа, а не язык на основе классов. Хотя это не является по своей сути хуже, оно отличается от большинства основных языков OO, что усложняет изучение большинства людей.

  • (необязательно) статическая типизация: вы не можете статически вводить текст (как в: "проверяется компилятором" ) в простом JavaScript. Преимущества (и недостатки) хорошо известны и широко обсуждались.

  • поддержка языков для библиотек: "загрузка этого файла до этого" является очень примитивным способом реализации библиотек, и большинство современных языков имеют определенную поддержку библиотек в некотором роде.

Эта страница также упоминает инструментарий, но это не является неотъемлемой разницей между языками. Конечно, статически скомпилированный и типизированный язык легче писать хорошие инструменты, но это не принципиальное отличие, которое невозможно решить при программировании.

Ответ 2

Основная проблема, которую я рассматриваю как решение для создания больших приложений с несколькими разработчиками.

В Javascript я могу написать совершенно правильный код:

function x(y) {
 return y*y;      
}

document.write(x(3,4,5));

И это будет выполнено отлично, но это явно ошибка.

Теперь отделите определение функции и вызов функции несколькими разработчиками и несколько месяцев над кодовой базой из нескольких тысяч строк кода.

Первоначальная функция x (y) могла первоначально быть функцией x (y, z, a), но с тех пор была реорганизована с течением времени. Здесь javascript терпит неудачу для меня, и это то, что дротик поможет решить.

Изменить (май 2013 г.) В дополнение к моему ответу выше, который, как я считаю, по-прежнему остается верным, я думаю, что история производительности также становится довольно убедительной. Ларс Бак и Каспер Лунд беседуют с Google I/O дают некоторые доказательства.