Открыть список
Как стать автором
Обновить

Комментарии 99

Elm рассматривали?

Боюсь Elm ещё более редкий язык, чем Dart, со всеми вытекающими

Я же говорил 7 лет назад, что это дорога в никуда, и отсутствие выбора библиотек — бестолковый аргумент.
Ну наконец-то вы решили перейти на $mol. Давно пора!

А если серьёзно, краткое содержание пертурбаций я вижу так:


  • Потыкали "достаточно богатую стандартную библиотеку" — получилась ерунда, нужен фреймворк.
  • На тот момент из чего-то похожего на фреймворк был лишь PolymerDart.
  • Пилили спокойно на Полимере. Ничего не предвещало беды. И тут Гугл его закапывает.
  • Инвесторам-то не скажешь, что "мы пилим не на передовой технологии, а на мёртвой".
  • Надо менять коней. А тут уже AngularDart подоспел.
  • Перепилили на Ангуляр. Ничего не предвещало беды. Но тут Гугл и его закапывает.
  • Инвесторам-то не скажешь, что "мы пилим не на передовой технологии, а на мёртвой".
  • Ладно, перекраивать одеяло не впервой, что нам там предлагают? Flutter for Web? Серьёзно? Мобильный UX растянутый на десктоп? Пользователи такого не примут.
  • В вебе сейчас везде используется jQuery 2.0 React. Нужно что-то такое, но на Дарте. О, есть же уже OverReact!
  • Ээээ, но это же не фреймворк, а огрызок, к которому нужна куча либ, которая есть для экосистемы Реакта, но которых на Dart никто и не думает портировать. Их и на TS-то не спешат портировать — хорошо хоть комьюнити тайпингов напилило.
  • Делать нечего, ради Реакта, придётся переходить на TS. Осталось только как-то помягче сказать всем, кого так долго убеждали, что за Дартом будущее, что они дальше сами по себе.

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

Я честно не понял, почему в своё время они взяли дарт вместо TS. Он тогда был менее удобным в части сахара, но по применимости в промышленных условиях в общем-то не сырее. Возможно, никто из ЛПР не понимал опасности вендор-лока такого масштаба (а TS даже в теоретическом сценарии "MS его всеми силами закапывает" в разы менее лочащий, в конце концов весь TS превращается в JS).

Основной аргумент был: на JS/TS много говнолиб из которых надо мучительно выбирать, а на Dart есть лишь одна стандартная библиотека, где всё уже решили за тебя.
Примечательно, что отсутствие на рынке Dart разработчиков, тогда никого не смутило. Фигня вопрос, берём java/.net бэкендеров, переучиваем их на Dart, получаем фронтенд не хуже.
А когда я показываю кому-нибудь $mol, то самый популярный ответ: "штука интересная, но на рынке мало специалистов по нему, поэтому даже не станем пробовать". А это всего-лишь TS фреймворк, даже не новый язык программирования.

Основной аргумент был: на JS/TS много говнолиб из которых надо мучительно выбирать, а на Dart есть лишь одна стандартная библиотека, где всё уже решили за тебя.

Я по этому поводу припомнил накопители Synology (NAS и прочие), у которых уже очень давно довольно-таки прекрасно и быстро работающая вебморда, которая еще и мультиоконный UI. И работает это всё на… ExtJS. И почему-то не закапывается. Ах да, наверное потому, что ExtJS покупают, а не берут бесплатно с надеждой что добрый дядя будет тащить поддержку.

А часто она обновляется? Есть сложные вьюхи? Как насчёт a11y?

Можно посмотреть, как оно выглядит, загуглив "Synology DSM".
С a11y всё довольно грустно, но это скорее всего не проблема ExtJS, а признак того, что никто ей не занимался.

Wrike выпустил много успешных фич на Dart. Успех ведь не в том, чтобы остаться со стеком навсегда. Не задумывался почему деньги позволяли?

Только вот благодаря Dart или вопреки?

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

Если Dart так действительно был бы хорош и успешен, стал бы Wrike хоронить всю наработанную кодовую базу? Такие шаги делаются не от хорошей жизни, поверьте.

В соседнем комментарии упомянули JQuery. Он сейчас является страшнейшим легаси. Вот у меня к вам вопрос: он был хорошим? Решал ли он задачи? Кажется что просто пришло его время. А JQuery, кто бы что не говорил, прекрасен. Точно также и с Dart. Думаю что основная проблема в том, что AngularDart все.

JQuery не является заменой Dart, это разные инструменты и для разных целей.
он был хорошим?

Это вопрос холиварный, не вижу смысла его обсуждать.
Решал ли он задачи?

Естественно, решал, иначе он не стал бы таким популярным.
Еще раз – в тексте ни слова по похороны существующей кодовой базе на дарте.
А это что, простите, как не медленные похороны Dart в Вашей компании?
Важно отметить, что мы не прощаемся: Dart по-прежнему будет большой частью нашей разработки. Но для новых проектов мы теперь будем рассматривать другие возможности.

Похороны или нет – вопрос эмоций, но, хотя и грустненько, мы будем стараться новые вещи писать на TS

Я думаю они доросли до jQuery
Ага, с другой стороны уже зашли, провернулись.

Был бы у меня iPhone 11 я бы подебажил. Но почему-то владельцы iPhone 11 не спешат вкладываться в open source. Слишком дорого видимо.

Нууууу, я контребьючу иногда Vuetify

Сделайте голосовалку, чтобы хабр комьюнити выбрало стек на котором будут писать ваши разработчики

Если бы ещё Хабр комьюнити в таком случае скинулось на поддержку того, что получится ¯_(ツ)_/¯

Выбор точно пал НЕ на Clojure! Если бы они выбрали Clojure, то написали бы название языка в голосовалке правильно.

Скорее всего, они перешли на старый добрый PHP. Или PHP не бывает для фронтэнда? Надо сделать!

Так React — это и есть PHP для фронтенда.

Опрос генерировал робот! Он не виноват!

Я бы назвал это «D language syndrome» :)

А D тут при чём?

OpenMW изначально на нём был написан, потом переписан.
НЛО прилетело и опубликовало эту надпись здесь
А теперь ответом на вопрос «почему Dart» будет «потому что Flutter».

Для веба ответ "потому что флаттер" не имеет смысла ни сейчас, ни в перспективе.

Не вебом единым богата разработка
Это почему? Flutter хорош, Flutter web пока сыроват, но уже вполне позволяет получить мобильное приложение работающее прямо в браузере. Добавят фичу скомпилировать как web component и будет очень даже перспективно.
но уже вполне позволяет получить мобильное приложение работающее прямо в браузере

Примерно никому (кроме людей, пытающихся задешево выкатить что-то одновремненно в веб и в мобилки) не нужно "мобильное приложение прямо в браузере".
Людям нужны нормально работающие вещи. Если вы хоть раз открывали в браузере gallery.flutter.dev — вам должно стать кристально очевидно, почему это не взлетит. Это, на секундочку, официальная "витрина" flutter web от самого гугла. Жрущая ресурсы, тормозящая (еще бы, учитывая что это canvas на всё окно), работающая "как мобила" (нафига мне тач-скриновые жесты в браузере?), и совершенно не умеющая в работу с текстом (еще бы, всё "запечено" в canvas, ни поискать, ни скопировать).
В обмен на это я получаю что? То, что разработчикам дешево это выкатить?

Примерно никому (кроме людей, пытающихся задешево выкатить что-то одновремненно в веб и в мобилки) не нужно «мобильное приложение прямо в браузере».

Вы попадаете в ловушку нового опыта. Пока нет результатов использования этого подхода, говорить о ненужности невозможно.
Ты просто не компетентен в таких вопросах. Таких «примерно никому» почти весь рынок. Клиенту все-равно как хорошо и на чем написан код, всегда вопрос упирается в сумму, которую готов потратить клиент что бы покрыть основные платформы (web && android && iOS). Посмотри количество вакансий на ReactNative, вряд ли их так много из-за того что это лучшее решения для мобильных платформ.
Клиенту все-равно как хорошо и на чем написан код

Конечно. Пока этим удобно пользоваться и оно не тормозит. А тем, в что результирует flutter web — неудобно пользоваться, и оно тормозит.


Посмотри количество вакансий на ReactNative

Посмотрел на career.habr.com, чтоб далеко не ходить. React Native — ~40, ios и android — каждая по 200 с лишним, веб-разработки вообще вагон.
Это, оказывается "много"? А пацаны-то и не знали.

Это не обязательно canvas, есть два разных рендерера: Skia и html.
Да с текстом пока плохо.
Зато имеем одинаковое приложение везде. В мобильных браузерах вообще неплохо, в десктопных — пока посредственно. И никто не мешает даже сейчас комбинировать, часть на классическом веб, а часть на flutter web. Проблема только в том, что сейчас нельзя легко сделать web component, приходиться использовать iframe.
А нормально работающие вещи — это приложения, а не web :-)
В мобильных браузерах вообще неплохо

В мобильных браузерах, стоит только у вас быть телефону постарее — тормозит.

Постарее — это что конкретно? Прямо сейчас достал и проверил iPhone7 и Samsung S7 — ничего не тормозит.
Эмм, 4 гига памяти это постарее? Да я только недавно с полутора гигов ушел. Этот самсунг довольно близок к сегодняшним середнячкам. Возьмите телефон новый за 4-5к и посмотрите как оно будет работать. Это как раз середнячки постарее примерно так же будут.
Флаттер конечно хорошая вещь, но для мобильных (и то не для всех кейсов). В вебе он ну вообще не вариант для чего нибудь хоть сколь крупного.
Ну вообще-то это жуткое старьё, обоим по 5 лет :-) Уже iPhone12 и Samsung 20 актуальные модели. И как раз для крупного бизнес приложения Flutter отличный вариант.
Старье, но флагман. Я еще год назад ходил с nokia 5(можете загуглить характеристики). Да и бизнес… Помню делали как то приложение для магнита внутреннее (на 1с правда), так они под него году в 2017 samsung j5 закупали.
Не, если вы говорите именно о мобильном приложении — согласен. Но если о мобильном вебе… Да блин, хоть сколь нибудь сложные веб приложения на флаттере у меня на ноуте в браузере fps явно даже меньше 30 выдают (i7 предыдущего поколения, 16 гигов). Даже при простом скролле.
Ну тут смотреть предметно надо, если аккуратно и без выкрутасов — то flutter web не тормозит, тем более на десктопе. Возможно проблема со Skia и Wasm — они сейчас включены по дефолту для десктопа. Надо отключить и собрать для начала с html render.

А в чём проблема завернуть в веб-компонент?

Вот тебе и поддержка большой корпорации, которая сначала криво спроектировала, а потом годами не может хотя бы ограниченно исправить.


Вот тебе и поддержка комьюнити, которая годами ноет, что что-то не работает, но не помогает пофиксить проблему.

Ну а что, есть Swift который на ios/macos и больше нигде, будет dart который только Flutter который только на дроиде.
На дроиде Kotlin.

На нас свет клином не сошёлся, всё-таки по меркам всего мира Wrike маленький. И, конечно, остаётся Flutter, как уже написали. Он локомотивом тащит Dart вперёд

Так всегда, самые ответственные решение приходится принимать в самое не подходящее время.

Да, в самом языке уже есть примитивы, которые позволяют работать с DOM напрямую, но такая разработка может подойти для индивидуальных разработчиков, а не для больших команд.
А как вы всё это время разрабатывали если платформа вас так ограничивает? По поводу локальных стейт-менеджеров — напишите свой. Или рассмотрите альтернативы — давным давно (по меркам фронтенда) существует Mobx, с которым тоже можно использовать локальные сторы. Порт на Dart: github.com/mobxjs/mobx.dart

TypeScript конечно в разы богаче, чем Dart — union типы, mapped типы, условные типы. Но ради этого переписывать кодовую базу на 2.5 миллиона строк…
В статье нет ни слова о переписывании кодовой базы. Речь о новом коде.

Мы и не собираемся всё переписывать, это убиться можно. Всё старое остаётся на Dart, а новое тоже может разрабатываться на нём же. Будет зависеть от скоупа.

— CoffeeScript
— ActionScript
— Flow

Проголосовал за экзотическое Phoenix LiveView. Оговорюсь это не мой выбор, а предположение. Сам бы выбрал Clojure/Script+Reagent

Судя по предыдущим вариантам, вы явно coffeescript выбрали.

Ваг аргумент "нет поддержки всех самых модных фишек" понятен, но, честно говоря, не очень убедителен.


Даже если оставить в стороне вопрос о том, а действительно ли нужны все эти фишки. Вы, как "один из самых больших потребителей Dart за пределами Google", могли бы подхватить инициативу и добавить в AngularDart все необходимое сами. И не зависеть более от прихотей Гугла.

Поддерживать свой фреймворк очень накладно. Это надо отдельную большую команду, которая будет писать новое и фиксить старое. Если посмотреть, за всеми большими фреймворками стоят не менее большие игроки

Может, я что-то пропустил, но какой большой игрок стоит за Vue?

Alibaba
Берите Rust and wasm!

Lit второй версии на подходе, надо хватать. Слишком мало потрогали веб-компоненты, теперь уже пора, да и реакт+тс будет слишком скучно :)

переехать с одной мертвой технологии гугла на другую, очень интересная затея

Интересно, почему не упоминаются трудности с рекрутингом? Неужели было много разработчиков желающих переучиться на язык, востребованный в одной единственной компании?
Трудности с рекрутингом были, как и в любой другой компании с любым другим стеком. Таков уж рынок. Как показал опыт, для серьезного разработчика конкретный стек менее важен, чем уровень инженерных задач, особенности продукта, процессы, культура и бренд компании. За 4-5 лет мы вырастили команду фронтенда с 10 почти до 100 человек, в том числе нанимая людей с бэкграундом в .net, java, с++ и других.

Я тут немного посчитал. Если каждый разработчик будет писать в день ну, допустим, 1000 строк кода, то 100 разработчиков произведут за год примерно 24 миллиона строк кода. А это как раз размер ядра Линукса, причём на весьма низкоуровневом C. Похоже через год нас ждёт новая операционная система на базе менеджера задач.)

1000 строк кода в день можно только копипастить

И ещё пару недель отлаживать

это еще при том что ты завидный холостяк, как Дмитрий.

Так современный фронтенд как раз про горы копипасты. Да и бэкенд (go), впрочем, тоже. Да даже если поделить на 2, то получим ядро Линукса уже через 2 года. А то и быстрее, если продолжать раздувать штат.

Ну только делить надо не на два, а на двадцать. Я у себя на проекте ежемесячно смотрю сколько мы в релиз мержим. На 5 разрабов выходит чё-то около 6000-7000 строк в месяц на питоне. Это уже после прохода через руки тестровщиков и фикса багов, ясное дело. Питон, конечно, довольно лаконичен, и на фронтенде будет больше выйдет из-за всяких html/css, но не настолько же.

Ну, если по себе судить, то на последнем проекте (коллаборативный визивиг) я вообще всего 15К строк написал за два года. Это около 30 строк в день. Но это в MAM экосистеме поощряющей микромодули и обобщённые решения. В индустрии же сейчас популярны низкоуровневые абстракции сдобренные изрядной долей копипасты.

Мы вполне успешно нанимали и нанимаем, так что в этом смысле цифры говорят о том, что это не настолько важно

Достаточно смешная новость.

Мне очень понравился ваш продукт, но цены у вас кусачие, CIO не одобрил ( подумайте над «ценовой локализацией» как у Steam например.
В итоге выбрали jira.

Такие большие проекты должны быть максимально абстрагированы от сторонних фреймворков. Сколько вы их уже сменили, и столько же еще поменяете. При этом подходе, по идее, Dart не должен быть такой уж большой проблемой. Тем более, что в результате все равно получается js. А там, глядишь, и Flutter for Web подрастет.

2,5 миллиона строк кода для SAAS-todo листа с блекджеком и гант-чартами. Охренеть.
У ребят управление CNC с машинным зрением выходит на 50-60 тысяч строк all inclusive. A тут, вы только вдумайтесь, 2,5 миллиона! Я, видать, чего-то не понимаю в современной разработке…
Скажите, а Haxe рассматривали?

Нет, я честно говоря впервые слышу

Ну под озвученные критерии подходит неплохо. Система типов – мощная, интероп с js – налажен через систему экстернов, выхлоп в js – весьма чистый, есть dead code elimination.
Система метапрограммирования вообще чудеса позволяет творить. Посмотрите, вдруг заинтересует.
Мда. После долгих объяснений, что выбор Dart для фронтенда — это путь вникуда, так как они банально не найдут кадры, желающих поддерживащие их дарт приложение и терять свою компетенцию на рынке (а значит просить будут банально x2 по зп). Они все же созрели. Не может быть!

Даже mail созрел быстрее и понял, что надо переводить их стек с perl, на что-то живое, ибо наивные студенты отказываются жрать г*вно, и давно уже поняли, что их где-то обманывают, рассказывая про то, как они будут бороздить просторы вселенной на перле.
Даже mail созрел быстрее

Вряд ли созрел, скорее стали уходить старички-перловики по разным причинам и топить за перл стало тупо не кому. А у молодежи такой любви к перлу не наблюдается.
svelte, полет нормальный.
Похоже, что экзотики вам хватило, а типы всё ещё нужны. Поэтому переходите на TS
Интересно, спасибо что поделились опытом.
У вас Dart только в вебе используется или где-то еще? Бекенд, cli тулы, мобайл…

Есть некоторое количество сервисов на бекенде, много обвязки вокруг самого Дарта написано.

Фанаты хорошей типизации наверняка выберут ReScript

После такого признания нужно уволить тех. дира. Все что вы перечислили как проблемы Dart было очевидно и 5 и 10 лет назад. А проблема ваша в индустрии известна еще раньше. Человек, который принимал решение написать 2.5 млн. строк кода на языке без коммьюнити не может рулить таким проектом.

Спасибо Вам за материалы по Dart!
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.