Pull to refresh

Comments 26

Вот по этому пункту есть поправочка:


популярный препроцессор стилей Sass был недавно переписан на Dart, чтобы сделать его более быстрым, более портативным и более простым для разработки

Так совпало, что основной разрабочкик dart-sass (более 90% коммитов), по совместистельству является core-контрибьютором dart и активно коммитит туда.


Поэтому на объективный и непредвзятый пример эта история не тянет.

Ну к слову сказать нигде и не говорится, что этот пример непредвзят. Если в моей команде работает разработчик, создавший один из популярных web инструментов, я бы тоже об этом написал, почему бы и нет.

Да, все так, можно гордиться тем что на нем пишутся полезные инструменты для пользователей. Только вот аргумент «более простой для разработки», когда ты сам являешься разработчиком языка — это какое-то читерство.
Вот бы Dart популяризировался. Я бы с удовольствием его изучил, сейчас пока нет времени, т.к. надо учить более необходимые в жизни вещи.

Раз он уже больше года не даёт мне покоя, когда нибудь я сорвусь и освою этот язык, по наитию чувствую что он прекрасен :-). Надеюсь это правда :)
Популяризируется, благодаря Flutter
Да, это так. Как и TypeScript, RxJS благодаря Angular.
Мне вот только непонятно, чем же он так хорош что, разработчики готовы изучить новый язык, менять привычный стэк ради каких-то выгод. Неужели Java, Kotlin, Swift (продолжите сами) не устраивают мобильных разработчиков? Ну хорошо, бизнес хочет экономить на разработке и по этому прибегает к JavaScript решениям, и тут понятно, JS очень популярен и кандидатов у нанимателя очень много на такие позиции.

Но почему Dart? В чём фишка? :)
Кроссплатформенность, скорость разработки (Hot reload это просто сказка). Фреймворк, который из коробки даёт всё что нужно. Если сравнивать с React Native, то Flutter решает почти все проблемы, которые есть у первого, особенно в плане производительности. Поэтому решающую роль при выборе здесь скорее играет не язык. К тому же после Java или JS, Dart даётся очень легко, переход не такая проблема. И компонентный реактивный подход во Flutter тоже выглядит очень привычно, после React JS.

Я вообще не планировал использовать Dart до Flutter, т.к. вокруг JS уже была огромная экосистема, TypeScript решал проблемы с типизацией, и поэтому смысла использовать Dart не было. Сейчас смысл появился :)
Даже в том, чтобы пробовать Dart на фронте и бекенде (хотя бы ради код шейринга)
И кстати, жду материалы о вашем опыте использования Dart 2. Собираетесь ли на него переходить вообще?

Так мы уже в процессе. Разве что у нас кода очень много, поэтому это процесс небыстрый. Но вообще там есть чем поделиться.

C Dart 1 перходите или с JS? Если второе, то очень интересно совместная работа, когда часть проекта переведена, а часть ещё нет.

С JS мы переходили на Dart где-то три года назад. Теперь с Dart 1 переходим. В принципе можем рассказать, надо только собраться с силами :-)

*Не холивара ради, до сегодняшнего дня ничего не знал Dart.
Быстрое гугление показало, что зародился он в бородатом 2011, потому что JS не очень. 2011 — это тот год, когда strict mode был новшеством. С тех пор прошло много времени и, если я правильно понял, Dart транслируется в JS.
Зачем нужен Dart? Какие актуальные проблемы он решает кроме типизации?

Ну зародился в 2011, вышел в 2013.
Да, в браузере транспилируется в JS, на сервере и мобильных устройствах — нет. Актуальные проблемы:


  • Типизация
  • Богатый SDK (без большого привлечения сторонних библиотек)
  • Кроссплатформенность
    Да, по-поводу последнего трудно спорить с JavaScript, но на мобильных — React Native проигрывает Flutter по удобству и быстродействию. Поэтому в 2018 я бы брал Dart для достаточно больших проектов, в которых нужна сильная система типов, и которые скорее всего будут масштабироваться на несколько платформ.
Я думал, что основное отличие, в том, что транспилится в JS не всегда, а может бегать в DartVM.
Ниразу не специалист. Из вашего ответа трудно понять разницу с Typescript, например.

TypeScript это по сути синтаксический сахар над JS. Dart же — совершенно другой язык. Да, он крутится в DartVM на мобильных и сервере. В браузере тот же JS. Основное отличие с TS — сиcтема типов, Dart — sound language.

UFO just landed and posted this here

Для каких задач? Мне кажется без ответа на этот вопрос ответ нельзя дать. Да и в статье ни слова про Котлин не было.

Не очень понятно для чего это все.
TypeScript год назад был официально принят гуглом для использования во внутренних разработках (https://www.reddit.com/r/programming/comments/64e6x7/typescript_got_approved_as_internal_development/). Тот же angular в гугле пишут на typescript и затем (поправьте если ошибаюсь) транспилируют в Dart.
В общем перспективы и преимущества этого языка не ясны.

Нет, не транспилируют. Версия для дарта сама по себе, под капотом нет Rx, вместо этого «нативные» для дарта стримы. У версии для дарта даже версионность отличается от тайпскриптовой версии.

Но мне тоже непонятно, зачем им одновременно и тайпскрипт, и дарт, и котлин.
Котлином занимается JetBrains, они его признали из-за комьюнити, так что сил на него не тратят. Dart для гугла это Flutter (забрать весь пирог у ФБ), а также он «вшит» в Fuchsia OS (чем бы оно не оказалось в итоге).

Google — огромная корпорация, мне кажется там вряд ли когда-то будет использоваться всего один язык или инструмент. Впрочем про Google лучше ответят mraleph или zviad. Да, есть языки, которые спорят с Дартом в каких-то аспектах. JS есть в каждом утюге, TS прочно закрепился на рынке, для Android есть Kotlin, на сервере же вообще рог изобилия НО:


  • Dart можно использовать на широком спектре платформ. Тот же JS конечно тоже так может но:
  • У Dart есть жёсткая система типов
  • богатый SDK со стримами, коллекциями и прочим
  • Flutter, который (по моему мнению) даст фору React Native
    Т.е. получается, что используя Dart можно получить преимущества единого подхода для большого круга задач. С точки зрения бизнеса это круто, для определённых проектов можно нанять одного разработчика, тот сделает несложный сервер, web клиент, и два клиента под обе мобильные платформы. При этом может ещё и зареюзать код и сэкономить время.
У меня единственный вопрос. Что сейчас с размером кода поддержки на javascript? Вобщем-то когда я выбирал кандидата на замену typescript из числа dart, kotlin и scala.js для одного своего проекта, я выбрал scala.js именно скорей из соображений крайне малого кода поддержки и результирующего размера приложения. Да и сам язык scala поприятней будет. Хотя поддержка разработки IDE для dart безусловно много лучше.

На вкус и цвет :-)
Размер кода — сам по себе overhead конечно есть, но я бы не сказал, что в разы, если писать на голом JS. Есть такая замечательная штука в Dart как tree shaking. Он крайне аггресивно выкидывает неиспользуемый код. Классы, методы, библиотеки. Это + отложенная загрузка из коробки позволяет сделать бандл небольшим. Но опять таки повторюсь, от overhead никуда не деться.

Но опять таки повторюсь, от overhead никуда не деться

Да нет, это я прекрасно понимаю. Но как бы основа всего это МЕРА. Когда например мне kotlin выдал полтора мегабайта джаваскрипта для простейшего приложения типа hello world, я даже не стал разбираться в достоинствах языка. С другой стороны scala.js настолько хороша, что с ней я не пользуюсь даже jquery. Просто использую её самую низкоуровневую dom-библиотеку, а удобную оболочку пишу уже на самой scala. Кстати очень жаль что из dart такую библиотеку выкинули и оставили нечто похожее на jquery в качестве самой низкоуровневой. Ибо dart как язык тоже очень неплох и таким как я любителям минимализма низкоуровневая dom-библиотека + расширения с помощью языка, пришлась бы очень по вкусу.

Есть такая замечательная штука в Dart как tree shaking. Он крайне аггресивно выкидывает неиспользуемый код. Классы, методы, библиотеки.

Вот это уже интересно! В scala.js используется гугловский минимизатор (если мне не изменяет мой склероз называется google closhure compiler). Честно говоря не знаю есть ли у него такой функционал. Не разбирался с ним.

Это + отложенная загрузка из коробки позволяет сделать бандл небольшим.

Тоже интересно. Честно говоря я нормальный отложенный загрузчик так и не сделал. Почему? Как говорится х.з. :) Более сложная штука — менеджер загрузки данных с сервера по web socket(или comet если ws не поддерживается) у меня есть. Хотя и корявая.

А в целом конечно очень здорово, что язык жив и развивается. Вот сейчас раскидаю немного дела, и попробую с этим поиграться :)
А вообще большое спасибо за публикацию. Сейчас закончу с текущим проектом (это разработка для FPGA, а не веб-дизайн), надо будет попробовать что собой представляет новый dart. Веб-дизайн для меня продолжает быть актуальным, хотя профессионально работаю совсем в другой области. Нда… Что поддержку vs code добавили, очень и очень радует.
Sign up to leave a comment.