Pull to refresh

Comments 31

Dart — довольно интересный язык. Вот только, что с ним будет дальше — не понятно. У гугла много своих языков. Да и скоро ecmascript 6 зарелизится.
Есть много действительно крутых и удобных штук, но все же языку нужна поддержка, гугл ее может дать, но не понятно хочет и будет ли. Пока язык как будто в подвешенном состоянии.
UFO just landed and posted this here
Ваш комментарий устарел года на 3. Сейчас все больше народу используют Dart и отмечает существенное увеличеиние производительности при этом. А ECMA6 — штука хорошая конечно, но это как «дополнительная рука пришитая к Франкенштейну». Я люблю JS, хейтеры Вам больше расскажут.
Я, к сожалению, не слежу за развитием Dart, поэтому, возможно, и комментарий выше был не в тему.

Просто с обывательской точки зрения:
1) Dart для Гугла — это один из. А, как мы знаем, гугл довольно часто закрывает свои проекты. Причём google ещё и AtScript сделал. Не совсем понятно, прямая это альтернатива, или нет, но тоже есть над чем задуматься.
2) Как мы знаем, AngularJS имеет реализацию на Dart. Как мне кажется, не совсем приятно поддерживать две кодобазы (js + dart) вместо одной (js). Так что, с выходом angular 2 не совсем понятно, получит ли Dart буст в виде angular 2.
3) Есть такой конкурент, как TypeScript. Это язык, как мне кажется, имеет более сильный тулинг, чем у Dart.
Для понимания, что происходит и что будет происходить:
1) Добавление Dart VM в Chrome www.chromestatus.com/feature/6682831673622528 произойдет после того как допилят Oilpan, его собственно и начали пилить ради того чтобы добавить Dart в Chrome. Выглядит как довольно серьезные и продолжительные инвестиции ресурсов в переборку внутренностей Chrome. С чего бы вдруг им прекращать этот процесс? Вы понимаете какие перспективы открываются если один и тот же сильно полезный в ежедневной работе сайт(типа Gmail) для всех остальных браузеров кроме Chrome отображается на треть медленнее? Или перспективы для тех кто разрабатывает эти сложные сайты, когда время разработки(а значит и финансовые затраты) сложного проекта на Dart в разы меньше чем при разработке на JS? Вы представляете насколько упрощается жизнь у тех директоров когда им нужно будет находить в проект просто + еще одного разработчика который знает Dart, а не программиста на JavaScript исповедующего идеологию разработки навязываемую конкретными фреймворками которые угораздило использовать в проекте?
2) In ng-europe videos you can find Misko Hevery keynote — Angular 2 will have single codebase: for AngularJS and AngularDart (both will be compiled by traceur).
www.opennet.ru/opennews/art.shtml?num=41006. Они просто собрали ресурсы обеих команд в единое целое и сделали компиляцию в JS и Dart при помощи traceur.
3) Про конкуренцию и тренды 2014 года:
plus.google.com/+KatsushiYako/posts/EcEznAE5Hom
за 2014 TypeScript переместился с 205 места на 194, Dart с 124 на 34.
И просто для понимания кто использует уже сейчас, будет использовать Dart и для чего www.dartlang.org/community/who-uses-dart.html
Есть такие штуки как Enterprise и Intranet разработки, а там вообщем сделать определенный браузер корпоративным стандартом не проблема. А если при этом все разработанное еще и на остальных браузерах вполне себе работает, то почему бы и не сделать Dart корпоративным стандартом и для вообще любых разработок в компании. Выгоды за счет унификации на больших объемах — колоссальные.
Ну да, верные у вас рассуждения. Выбрать для компании какой-нибудь определенный браузер — не проблема. И тогда действительно разработка на Dart будет иметь свои плюсы.

С другой стороны, я не очень люблю, когда какая-нибудь технология (Dart VM, например) имеет вендор-лок (например, на chromium). Как-то это вызывает у меня в душе грусть и печаль.
Нет вендор лока. Все open-source. И запроси сейчас Firefox включить в себя Dart VM ему так активно помогать кинуться, что еще и денег занесут. Есть интересы других производителей браузеров продвигать собственные решения. И dart2js любую грусть и печаль снимает как рукой. Ибо разработка под любой браузер на dart имеет наиважнейшие плюсы: скорость разработки и качество кода, сопровождаемость кода и простота доработки функционала. Все всегда упирается в деньги.
Вы представляете насколько упрощается жизнь у тех директоров когда им нужно будет находить в проект просто + еще одного разработчика который знает JS, а не программиста на Dart исповедующего идеологию разработки навязываемую конкретными фреймворками которые угораздило использовать в проекте?
В случае с Dart идеология конструирования классов, загрузки модулей по требованию, асинхронного и многопоточного выполнения кода едина, представлена в базе языка и не меняется от фреймворка к фреймворку. Причем эта самая идеология едина и на клиенте и на сервере и для облака.

А сколько нужно времени чтобы "+ еще одного разработчика который знает JS" научить использовать AngularJS или ExtJS?
Вот в Java тоже из коробки модули, классы и многопоточность — все равно фреймворков много (и вебовых, и DAL, и гуевых, и графических). Так же и с Dart'ом будет.
Много фреймворков и фреймворки опирающиеся на разную идеологию конструирования классов это принципиально разные вещи.
Не согласен. Классы есть классы, какая разница, как оно там заимплеменчено?

Да, разница между дартовскими фреймворками и джаваскриптовыми, бесспорно, будет меньше за счет хотя бы бо́льшей стандартной библиотеки последнего, но все равно они будут разные. Даже если все будут MVC, все равно будет разница в интерпретации авторами этой парадигмы.
Вам сюда.Каждый программист на javascript должен написать свою реализацию классов. ©
Я вам толкую про идеологию реализации классов, а она фундамент для фреймворка, определяющий логику работы с ним гораздо более значимо чем разница в интерпретации MVC. Так вот в случае JS этот фундамент для разных фреймворков используемых в проекте оказывается разным, а для Dart унифицированно одинаковым.
Охохо. Что именно в предложении «классы есть классы, какая разница, как оно там заимплеменчено» вам непонятно?
А взаимодействовать с объектами классов в которых «… какая разница, как оно там заимплеменчено» вы будете при помощи объектов созданных согласно идеологии классов фреймворка1 или фреймворка2? Или будете писать трансляции из одного вида объектов в другие?
Ах да, я и забыл, что в приложении на Backbone.js я не могу делать new Promise() — ведь промизы у нас теперь нативные, а бэкбоновские классы — нет. Всё, вопросы снимаю.
Существенное увеличение производительности — по сравнению с JS? Во всех браузерах?
Увеличение скорости и качества разработки имелось в виду.
лол, похоже я в альтернативной реальности живу:
ни одной вакансии на дарте за последние полгода не видел (не значит, что их нет), но видел кучу на кофе (который мне тоже не нравится)
на конференциях по фронтенду где я был никто не выступал с докладами про дарт (пару лет назад выступали)
6 статей на хабре за 2014 год
а ES6 штука действительно хорошая
Не подскажете как там сейчас ситуация с размером JS, который получается в результате dart2js?
Собственно для меня было 2 решающих фактора, из-за которых я отложил углубление в этот язык: это малая популярность и большой размер результирующего js файла.
Размер всех исходников ~184KB
Размер всех сторонних пакетов ~1180KB
Размер JS файла на выходе ~984KB
Напишите об этом команде разработчиков Dart. Думаю, они приятно удивятся.
Интерфейс игры раздражает: больше всего, что нет кнопки «Начать заново» в уровне. А поиграть хотелось — игровая механика интересная. То есть, прошли обе главы мало людей не из-за сложности игры, а из-за непреодолимого интерфейса.
+1. Ещё непонятно как скролить экран при приближении (увеличении).
Спасибо за совет, добавили кнопку. Посмотрим как пользователи поведут себя дальше.
Что еще из интерфейса показалось непреодолимым? Будем разбираться и исправлять.
Неточно поворачивается палка. Приходится долго пыжиться для того, чтобы она стала просто ровно например. Слишком чувствительна к поворотам (я с тачпадом).
Мне понравился этот комментарий habrahabr.ru/post/247809/#comment_8221389 от ko11ega и я бы хотел поделиться впечатлениями о разработке на Dart, а не о его судьбе. Разрабатывал на нём несколько небольших проектов как чисто для бекенда, так и с фронтендом.

Общее впечатление: много «детских болезней», продукт сыроват. Вы конечно можете на нём разрабатывать, но если зайдёте далеко, то готовьтесь к боли. Это особенно заметно, когда ты переходишь с языков и инструментов, которые уже отточены годами. Вот для примера несколько частных случаев, которые лично меня не устраивают:
  • Нет документации по isolates (многопоточность). Разрозненные статьи разной степени актуальности не считаются. Он вообще уже не раз менялся. Единственный актуальный и работающий пример я нашёл в группе Dart-а.
  • Симлинки для папок package-ей вставляют палки в колёса. Проблема появилась, когда я попробовал запустить проект через Vagrant. Виртуалка VirtualBox плохо работает с симлинками, что приводит в неработоспособность процедуру билда проекта. Задача по отказу от симлинков висит уже больше года.
  • angular.dart. Опять же крайне мало документации. Разработка в последнее время стоит. Видимо не хотят трогать до объединения с JS. И очень сильно раздражает баг с относительными путями. Писать в коде абсолютные пути очень накладно, но генерирование относительных путей это огромная глупость. Не понимаю как можно было до такого додуматься. Такое ощущение, что фичу пилили без оглядки на то как оно на продакшене работать будет.
Спасибо за понимание и позитив!
Похоже вы глубоко продвинулись в освоении Dart если в ваших проектах возникали вопросы использования многопоточности. Тем ценнее ваш опыт и большое спасибо, что нашли возможность поделиться им.
Я согласен с тем, что в текущем состоянии у Dart много чего еще не «устаканилось», меняется и будет меняться. Меня в свое время изрядно сбивали с толку примеры с package:js/js.dart на SO.
Подскажите пожалуйста использовали ли вы в своих разработках Polymer.dart и Redstonedart и какие впечатления у вас остались от их использования?
И если не секрет, какие проекты вы разрабатывали на Dart, когда и с каким результатом? Ну т.е. сделали и работает или пришлось все переписать на чем то еще?
Polymer.dart пробовал :). Вместо Redstone.dart выбрал shelf. Shelf не плох, но и не идеал.

Проекты — раз, два (не работает, писалось на чемпионате). Плюс один приватный, пока не могу показать. В нём активно юзал angular.dart, shelf и isolates.
Sign up to leave a comment.

Articles