Решил на досуге познакомиться с языком программирования Dart от Google. Впечатления скорее положительные, но в бочке меда нашлась ложка дегтя, которая все портит.

Я рассматривал Dart в качестве альтернативе JavaScript для создания больших приложений, работающих на стороне клиента. Это именно то, ради для чего и предназначен язык Dart.
Большинство критиков Dart упираются в тот факт, что виртуальная машина Dart еще не встроена в броузеры и программы на Dart приходится компилировать в JavaScript. Я не вижу в этом никаких проблем. Компилятор Dart генерирует быстрый и достаточно компактный (для больших приложений) JavaScript код. Эти люди ведь не кричат что н Си++ писать нельзя, так как процессоры не понимают синтаксис Си++? Во и с Dart проблем нет.
В языке есть ряд приятных фишек. Они уже много раз описаны, поэтому не буду повторяться. Дам только ссылку на вот эту статью для тех, кто еще не читал. Мои небольшие тесты языка были написаны легко и приятно, а после написания работали как часы во всех броузерах. Однако есть одна проблема, про которую почему-то нигде не пишут, но которая меня несколько огорчает. Это дурацкая система библиотек.
Неудобство заключается в том, что в Dart есть только два уровня видимости: публичный и приватный. Нет ограничений видимости на уровне пакетов, к чему привыкли программисты Java, нет даже ограничения видимости только для наследников класса. Кроме того, они очень неудобно объявляются: имена всего, что должно быть приватным, должно начинаться с символа подчеркивания. Это раздражает, так как я регулярно забываю что есть приватное а что нет, и автодополнение в редакторе дает закономерный сбой.
Другая проблема заключается в самой организации библиотек. В главном файле библиотеки приходится перечислять все файлы, из которых она состоит. Это неудобно, так как с областью видимости начинает твориться редкостный бардак. В большой библиотеке (а речь идет именно про большие программы) одной части библиотеки вовсе не обязательно иметь в своем пространстве имен все детали реализации других частей.
С такими проблемами можно жить. Достоинства Dart перевешивают его недостатки. Пока я не вижу никакой другой альтернативы для разработки больших клиентских приложений, работающих на стороне броузера.