Программирование : Dart & Flutter по-русски
Dmitri Kot
не совсем и не только
Dmitri Kot
заткнись и жди - это скорее select
Анатолий
Ладно, все сложней чем я думал. ??
Dmitri Kot
если в нем нет default - это ровно "заткнись и жди, пока тебе времени не дадут"
Dmitri Kot
ну, в общем и целом, не стоит заяснять, что у ноды какой-то более крутой планировщик, чем у го
Dmitri Kot
например сам создатель ноды признал, что это не так
Анатолий
Ну тогда моих познаний во внутрянке го не хватит чтоб оценивать его
Анатолий
Ну, то что в го он хорош я знал, я просто думал он проще
Dmitri Kot
Автор ноды прямо так и сказал: если бы го был написан чуть пораньше, ноды бы не было
Dmitri Kot
и, собственно, призвал похоронить ноду и всем идти в го
Alex
А кто-нибудь исполтьзует дарт для веба? Я вот выбрал его для изучения (несмотря на то что все кричат что он мертворожден) потому что мне понравилось что все в одном. Вот СДК - херач, достали эти вебпаки, бабели, тайпскрипты, все эти связки и конфигурации.
Анатолий
Веб это фронт или бек?
Anton Anokhin
[
"Мы используем в Wrike уже 3 года. Фронт и немного бэка. ",
{
"type": "mention",
"text": "@bunopus"
},
" много и часто об этом рассказывает"
]
Dmitri Kot
на бэке точно не нужно, на фронте - проще вебассембли подождать
Анатолий
Ну в бабелях тайпскриптах тоже есть свои плюсы - выбор
Alex
Да, в ру комьюнити врайк единственные пропагандисты дарта
Анатолий
Ну они и используют его хорошо
Dmitri Kot
получилось бы у гугеля дарт в браузер затащить - был бы нужен. Не получилось(((. Значит, не нужен(((
Анатолий
Во фронте по сути ты ограничиваешься ангуляром, остальное все сырое походу
Dmitri Kot
в вебе он "просто еще один язык, который транспайлится в js"
Dmitri Kot
по большому счету сейчас он язык одного фреймворка
Alex
Но зато все из коробки, или я один в этом вижу плюс?
Egor
Увы, знаю :D Именно из-за этого мне смешно, когда их пытаются к чему-то еще приравнять. Я надеюсь, что в плюсах году так к 2050-му наконец-то стабилизируется хорошая стандартная библиотека ??
Evgeny Kot
А Тайпскрипт получилось? Значит тоже не неужен?
Dmitri Kot
любой плюс состоит из двух минусов, приглядитесь
Alex
Кароч для фронта использовать не советуете - я правильно понял?
Dmitri Kot
тайпскрипт - это js-с-типизацией. Dart - отдельный язык со своей экосистемой, нужность которого, мягко говоря, сомнительна
Dmitri Kot
для flutter'а просто очень рекомендую! Лучший язык для разработки под flutter!)))
Evgeny Kot
Я советую использовать
Dmitri Kot
Смотри, ts - расширение js с типизацией и классами. При этом с сохранением интероперабельности.
Dmitri Kot
Dart - отдельный язык, который как-то в js собирается.
Dmitri Kot
можете с тем же успехом в сторону Kotlin'а посмотреть.
Evgeny Kot
TS тоже в js как-то собирается, его нельзя напрямую запускать
Dmitri Kot
Тоже компилится где угодно и во что угодно.
Dmitri Kot
Да. Но при этом он - расширение для js.
Evgeny Kot
Компиляция Котлина в js очень сырая >Да. Но при этом он - расширение для js. И?
Alex
А вот с этой как говорят "не пойми какой" транспиляцией на практике были проблемы?
Dmitri Kot
т.е. TS = JS + несколько ложек синтаксического сахара.
Dmitri Kot
А Dart - это отдельный язык вне экосистемы, которая уже наросла поверх js.
Dmitri Kot
Поэтому нивзлитит.
Dmitri Kot
Ну и, собственно, покажите мне сколько-нибудь крупную контору, которая серьезно Dart в проде в веб-фронтенде использует.
Evgeny Kot
Wrike, Workiva, Google
Dmitri Kot
Окей, про Гугл слышал. В каких веб-фронт проектах он использует Dart в продакшене?
Artem Halas
AdSense/ AdWords вроде так
Evgeny Kot
[
{
"type": "link",
"text": "https://www.dartlang.org/community/who-uses-dart"
}
]
Artem Halas
Для меня дарт как глоток чего-то адекватного в мире front-end. TS имеет теже проблемы что и JS - слабый SDK.
Anton Anokhin
[
"Кстати, споры мы можем вынести оффлайн. Пока собираем программу и пилим красивый лендинг, уже можно регистрироваться (и разговаривать с руководством по поводу командировки :) на Дарт-конференцию в Петербурге 1 декабря. Ссылка (пока без основных подробностей) на Timepad ",
{
"type": "link",
"text": "https://wriketeam.timepad.ru/event/817078/"
},
""
]
Dmitri Kot
"Who Uses Dart" - вижу. "Who Uses Dart in Frontend on production" - не вижу
Dmitri Kot
откровенно говоря, пока webassembly + webcomponents не устаканятся, у дарта слабые перспективы
Dmitri Kot
в смысле в веб-фронтенде
Oksana
"Who Uses Dart in Frontend on production" мы мы мы используем, в лайв вышли очень даже удачно) Мы занимаемся B2B для крупных компаний недвижимости в Берлине
Egor
ТС - это уже вагон сахара и не видно ему ни конца, ни края. Чем он себе сильно осложняет дальнейшее развитие :D
Alex
Ну а то что там только ангуляр, ну так ангуляр неплох.
Dmitri Kot
Искренне рад за вас, честное слово. Вы молодцы. Мне самому dart нравится, и я только "за" то, чтобы js "уступил место". Однако на данный момент глобальных перспектив дарта в вебе на ближайшие пару лет не вижу(
Dmitri Kot
ну вот, собственно, есть angulardart и... и все... 1 фреймворк от одной компании. При этом основной язык этого фреймворка НЕ дарт...
Dmitri Kot
это смущает, чесслово
Evgeny Kot
Вот тут не понял
Dmitri Kot
да оно понятно, обратная совместимость его похоронит рано или поздно. С приходом webassembly, например
Egor
Человек просто не в курсе, что Энгуляры разные, не ругайте строго.
Dmitri Kot
Дарт в веб-фронтенде используется ровно в 1 фреймворке, который пилится той же конторой, что и сам дарт, и которая периодически хоронит проекты.
Dmitri Kot
и чем, собственно ангулярдарт5 от ангуляра5 глобально как фреймворк отличается?
Egor
Тем, что у них даже версионирование разное и нет никакой возможности даже сопоставить два пятых ангуляра?)
admin
vue & react тоже есть
admin
А разве дартовский ангулар не = тайскриптовскому?
Evgeny Kot
Простите, но вы не компетентны в обсуждаемом вопросе
Evgeny Kot
Конечно они не равны
Dmitri Kot
ага, и еще миллион РАЗНЫХ фреймворков от РАЗНЫХ разработчиков
Egor
Они давненько уже разделились
admin
Ты все готовенькое хочешь?)
Dmitri Kot
нет, я хочу видеть перспективу языка
Vadim Tsushko
Если что - мы тоже в продакшн используем дарт + ангуляр во фронте и в бэкенде
Vadim Tsushko
Года два уже.
Vadim Tsushko
А разговоры о WebAssembly которого нужно ждать начались года четыре назад
Dmitri Kot
например, наличие живой экосистемы вокруг языка, поддерживаемой более чем одной крупной компанией. Пока за ts один микрософт топил, никуда он не ехал. Гугл поддержал - вуаля, все самые популярные фреймворки давай туда мигрировать. Вот сейчас миграции не видно... так, эксперименты
Egor
Я, кстати, глобальных перспектив для Дарта после отказа от Дартиума тоже не вижу. Но в нем есть другое. Я прихожу и сходу пишу на нем джава-код ??
Egor
А вот тайпскрипт мне учить нужно, несмотря на то, что я тыкал.
Dmitri Kot
просто сейчас dart - язык одного инструмента.
Egor
И это его несомненный плюс для многих)
Dmitri Kot
и этот инструмент НЕ веб-фронтенд. Это flutter
Egor
И фронтенд очень даже. Никому ведь не нужно прыгать и метаться между фреймворками каждый год. Есть один универсальный хорошо поддерживаемый фреймворк - что еще нужно?
Egor
Это ж концепция рельсоманов :D
Dmitri Kot
ну вот angularDart есть. Чем он, кроме специфичных для языка вещей, отличается от TS-ного?
Dmitri Kot
смысл садиться на dart, который работает ровно с 1 фреймворком, если можно ровно то же самое написать на ts, знания из которого пригодятся в миллионе других?
admin
В том, что дарт удобнее тса?
admin
Я не могу писать на последнем в силу миллиона синтакс. сахара, он просто неудобен
Dmitri Kot
при этом вы замыкаете себя внутри фреймворка + отрезаете себя от набора библиотек, которые есть на js...
Dmitri Kot
при этом я не отрицаю, что дарт гораздо симпатичнее TS
Dmitri Kot
я говорю, что он, пока что, не взлетает
Egor
В том, что нужно еще и тс учить. Или жс)) И потом мучиться
Dmitri Kot
а дарт учить не надо?
Egor
Практически нет. Любой джава-программист может писать хороший дарт код через неделю-две.
Egor
А таких немало, поверьте)_
Dmitri Kot
через неделю-две любой программист сможет писать нормально и на TS
Dmitri Kot
неделя-две - достаточно большой срок для изучения базовых конструкций любого языка
Egor
Для тяп-ляп и в продакшн - да. Я говорю про достаточно полное и адекватное освоение языка и его стандартной библиотеки
Dmitri Kot
в смысле, вы гордитесь маленькой стандартной библиотекой?)
Dmitri Kot
или с дартом сразу вот так исключительно качественный код писать начинают?
Dmitri Kot
за две недели?
Dmitriy Vasilyev
Может нужно открыть специальный канал для спора по поводу языка, а тут это запретить?
Dmitriy Vasilyev
Канал теряет ценность для тех, кто все-таки работает с дарт
Egor
Если говнокодер начинает писать на дарте - нет. Качественный джавист - да. И это не повод для гордости, это просто оптимальный вариант решение нехилого такого класса задач
Anton Anokhin
Скорее нужно флуд переводить в личные диалоги, а за оффтопик предупреждать и, возможно, банить
Dmitri Kot
я просто пытаюсь выяснить, есть ли что-то достаточно развитое на дарт'е, кроме flutter'а. И есть ли какие-нибудь преимущества в широком его применении, например, в веб-разработке. Пока из плюсов для веба я услышал только "зато на нем можно еще и бэк, и мобильное приложение, и на губозакаточной машинке"...
Anton Anokhin
Вы не пытаетесь выяснять, а спорите и разводите флуд. Предлагаю на этом остановиться
Dmitri Kot
Егор, вы меня, конечно, извините, но... 2 недели - срок достаточный для любого адекватного программиста для вхождения в базу любого языка. 2 недели - срок не достаточный для любого адекватного программиста для вхождения в лучшие практики любого языка.
Dmitri Kot
просто скажите мне, есть ли реальная фича использования dart в веб-фронтенде, кроме того, что, в теории, на нем еще и бэкенд писать можно.
Dmitriy Vasilyev
Ого, а кто это "вы"? Расскажите по подробнее?
Anton Anokhin
Вы без труда найдете информацию по этому вопросу, если захотите ее найти. И также сможете придумать тысячу аргументов против, если опять же захотите. Мне кажется, здесь собрались люди, обсуждающие ИСПОЛЬЗОВАНИЕ языка, а не спорящие о необходимости его использования.
tdesc
я думаю компания Wrike которая пишет весь фронт енд на дарте могла бы вам помочь в понимании, погуглите на youtube
Egor
В том-то и дело, что я говорю про переход на дарт с одного из самых распространенных ЯП с самой большой базой адекватных кадров. Дарт во многих аспектах буквально слизан с джавы, и лучшие практики очень и очень схожи))
Dmitri Kot
т.е. вопросы "какой профит дарт может дать в веб-фронтенде, и где подводные камни" - оффтоп? Ок, замолкаю.
Dmitri Kot
а вот тут вы неправду пишете. В контексте "многие практики совпадают" - java и dart можно заменить сотней-другой сочетаний других языков без потери смысла фразы. А "совпадают вплоть до специфики применения" - просто неправда.
Dmitri Kot
как бы, C# задумывался как более другая java, и "лучшие практики" в языках достаточно далеки друг от друга
Dmitri Kot
да, к слову, обидно за старичка...
Egor
C# - это совсем другая инфраструктура. Дарт - на данный момент, практически, DSL. Флаттер, ангуляр и ваниль со стандартной библиотекой, мимикрирующей под джаву)
Dmitri Kot
кстати, спасибо за подсказку. По поводу похожести, можно смело заменить "java похожа на dart" на "любойООПЯзык№1 похож на любойООПЯзык№2". Вот ровно в той же степени dart с java похожи
Dmitri Kot
C#, значит, другая инфраструктура... Отличная от Java... А Dart, видимо, внутри java-инфраструктуры существует.
Dmitri Kot
Пожалуйста, не пишите такое больше.
Dmitri Kot
Dart на Java похож не больше, чем Java похожа на C++.
Egor
Спасибо, ваши подсказки по ведению срачей брать не буду :D
Egor
Как не больше, там же тоже 4 буквы?
Anton Anokhin
Давайте остановимся на этом
Анатолий
А человек всего-то спросил можно ли дарт использовать во фронте :)
Анатолий
тут нас хлебом не корми, дай поспорить
BANO notIT
В модели много поточности
Анатолий
Чет мы никак не пройдем отметку 350
Анатолий
Я так часто видет число 247 учитывая что регулярно люди приходят, что уже кажется что каждый прибывший выходит забирая с собой одного
BANO notIT
что-то я не замечал убывающих
BANO notIT
или они тут не отображаюются?
Evgeny Kot
Не отображаются
BANO notIT
а я думал тут только рост происходит
Luqe ********
Я всегда с вами ??
Alex
Вот меня прям смущает что для анонимных функций не указывается тип возвращаемого значения и тип аргументов. Хоть мне как жсеру такое привычно но я думал тут я жестко обмажусь строгой типизацией а оно вон оно как.
BANO notIT
А в анонимных вывода вполне достаточно. Для результата уж точно, а аргументы можно и указать
BANO notIT
Тем более, что анонимная функция умещается в 15 строк, охватываемых взглядом.
BANO notIT
Если не умещается, то она уже не может быть анонимной
BANO notIT
15 это прям максимум
admin
А я думал, что лямбда для другого ??
Alex
Аргументов - можно а вот возвращаемого вроде же нельзя
BANO notIT
Для другого. Но 15 строк еще нормально для внутрискоупной функции. Выше уже совсем плохо все
admin
[
"Именно для стрелочной - нельзя, но можно для нее создать ",
{
"type": "code",
"text": "typedef"
},
". и, можно сделать кастинг (но это уже чисто \"абы було\")"
]
BANO notIT
Мапинг raw данных в объект. Композитная сортировка (реализация ранжирования через снглтон). Такая же сложная функция фильтрации.
BANO notIT
Примеров грязного однотипного кода много к сожалению
BANO notIT
И этот код не подлежит разделению именно из-за однообразности
admin
Я ожидал другого :(
Ivan Frolkin
У тса нету обратной совместимости)
Ivan Frolkin
а дарт типы инферить не умеет, зато стремится их в рантайме проверять
Анатолий
Вообще не так давно был разговор про шаблоны, якобы они не понимают что от них хотят пока не укаешь тип. И тут типа решили что это баг. Так вот, анонимные функции понимают что к ним пришло и что из них выходит из контекста. Они вызывались на элементе, у него есть тип, значит все итак понятно, внутри идет преборазование, и возвращается какой-то тип, значит все итак понятно
Анатолий
Мужчины молчат, потому что руководствуются двумя принципами: 1. И так всё понятно, хули тут говорить. 2. Хули говорить, если нихера не понятно.
Николенко Дмитрий
Коллеги, на flutter уже делал кто-нибудь большие энтерпрайз приложения?
Dmitri Kot
Разработчики го утверждают, что асинхронности
Олжас Сулеймен
[
"Feather Apps - Mobile Apps That Run on the Desktop\n",
{
"type": "link",
"text": "https://feather-apps.com/"
}
]
Олжас Сулеймен
[
"GitHub - google/flutter-desktop-embedding: Desktop implementations of the Flutter embedding API\n",
{
"type": "link",
"text": "https://github.com/google/flutter-desktop-embedding"
}
]
BANO notIT
Какого другого
Alex
А как быть когда мне надо в методе/функции принимать и инты и даблы?
Evgeny Kot
А в чём их энтерпрайзность должна заключаться?
Egor
В отсутствии надписи хелло ворлд? А может быть в большом количестве экранов. В огромном количестве понапиханной аналитики может еше Но скорее вопрос подразумевает то, что без приличного нативного слоя на флаттере пока едва ли можно что-то сложное реализовать и какие проблемы это за собой тащит
Dmitriy Vasilyev
Alibaba делают.
Egor
А что конкретно они делают, не говорили?
Dmitriy Vasilyev
[
{
"type": "link",
"text": "https://www.youtube.com/watch?v=jtYk3gWRSw0"
}
]
Dmitriy Vasilyev
Можно стараться в API прописывать возвращаемый тип, использовать typedef. Если где-то так еще не сделали, можно надеятся, что поправят или сделать даже pull request.
Egor
Ну неплохо, смотрится, кстати. В пользу того, что это флаттер говорит гигантский размер на ios, 32-хбитная версия таки есть.
Egor
Правда работает она не очень, субьективно. Я на слабых телефонах установил - редми 2 везде и всегда тормозит сильнее айфон 5ц, а тут айфон как-то не очень, как будто бы классом ниже устройство)
Dmitriy Vasilyev
Сам бюлд сделал? Релизная версия? Или это про xianyu?
Egor
Про Сьенъю алибабашное
Dmitriy Vasilyev
может что-то не так сделали, не учли какое-нибудь узкое место flutter.
Egor
А может сам флаттер решил поддерживать 32 бит чисто формально, пока он жив
Dmitriy Vasilyev
Как мы поймем, что это именно флюттер тормозит.
Egor
Но в целом нативное таобао алибабашное работает на обоих телефонах заметно лучше, хотя они почти что близнецы
Egor
Сьенъю - секонд-хенд отдел просто :D
Alex
Пока живы 32 бита или флаттер?
BANO notIT
Как минимум в стабильной версии 1.0.0
Egor
Хелло ворлд версии 1.0.0 подойдет? :D
Egor
Там уже или ишак, или падишах
Egor
Кстати, если у кого остался айфон 5s, можно потыкать на тему, это именно 32 бита такие тормозные или от архитектуры не зависит
Egor
На современных-то ясно, что различий на простом онлайн-магазине не очень видно на глазок
Dmitriy Vasilyev
Я на старом Андроиде маленькое приложение тестировал, таск лист с firebase - запускалось очень быстро, также как нативные приложения Гугла.
Egor
А, да, запускаются нативные версии тоже сильно быстрее. Может алибаба как-то не правильно флаттер готовит, а может какие-то хитрые оптимизации в нативщине. Так-то приложения очень схожи даже визуально
tdesc
Запускаются во флаттере нативные приложения. Нет никакой разницы. На инициализацию канваса у флаттера уходит пару сотен милисекунд.
Egor
Смотря что называть нативным\
tdesc
Раннеры нативные, в них исполняется дартовый код, но после обычного нативного старта приложения. А флатерр это типа мозгового слизня.
Egor
Виджеты не нативные же
Анатолий
Там разве дартовый код остается? чет я думал что все дартовое в бинарь перекомпиливается нативный
|