Программирование : Dart & Flutter по-русски
Ihor Levchenko
как будет больше времени - хочу сделать более глубокое сравнение
Ihor Levchenko
я пока только первые сутки изучаю Дарт ??
Yerassyl Maikhanov
просто я уже читал про такое сравнение на habr
Yerassyl Maikhanov
и там примерно одинаковые результаты были в 17 кажется году
Evgenii Elchev
Ты просто ради фана это делаешь?
Кирилл Матросов
надо уже сравнивать с deno)
???????
Вот это все вообще не имеет никакого смысла и нулевую ценность
???????
Прям вообще абсолютный ноль
Ihor Levchenko
мне не нравится Дено и его подходы
Ihor Levchenko
ну.. кому как. Мне для биг дата важно понимать пиковый жор и на сколько я быстро смогу генерировать ответ
Evgeny Cherkasov
Изолятов же не будет много. Акведук например рекомендует количество ядер минус 1. Инстанциировать комбайн только один раз ведь надо?
???????
За всю свою жисть я видел всего пару задач в которые нельзя смасштабировать или ускорить до менее 1 секунды
???????
И при этом задачи "ну у меня тут расчеты протеинов на пару минут" отлично ускоряются до пикосекунд
Ihor Levchenko
ну если мы говорим про бизнес велью - то понятно что такие цифры в принципе не сильно имеют значение (разве что переход из пайтона на ГО и экономия на 20 инстансах серверов ?? )
Ihor Levchenko
все относительно, я согласен
Ihor Levchenko
но подобные бенчмарки мне просто помогают понять на сколько инструмент эффективен и на сколько мне придется оптимизировать алгоритмику под нюансы технологии, или же писать то, как удобно мне, а ресурса хватит чтобы это быстро замолотить и выплюнуть ??
???????
Ну я про то и говорю. Ну окей, будет у тебя не 20 инстансов, а 19 или 21
Yerassyl Maikhanov
ну мне кажется если работать с финансами, то лучше на dart чем на nodejs
???????
Это вообще имеет хоть какоет значение?
Кирилл Матросов
А зачем использовать dart или node для биг дата? для этого есть инструменты пошустрее
Yerassyl Maikhanov
потому что там мат операции через одно место устроены
Ihor Levchenko
19 или 21 это мелочи но 20 и 10 это внушительные цифры
Yerassyl Maikhanov
если вы не подключили ts, он улучшает ситуацию
???????
Эти "цифры" тебе надо писать на сишке
???????
Или использовать специальные инструменты
Ihor Levchenko
без разницы, TS обеспечивает мономорфность в принципе у меня мономорфность не нарушена
Ihor Levchenko
так как код простой как фанера
???????
Потому и говорю - все твои "тесты" вообще имеют нулевую ценность
Yerassyl Maikhanov
я про обширную бизнес логику, когда у вас 1000+ строчек кода и джуны на проекте
Ihor Levchenko
смотря для кого для меня они имеют высокую ценность чтобы понять где я могу это использовать а где нет )
Yerassyl Maikhanov
потому что js позволяет вам ошибаться и не наказывает за ошибки
Yerassyl Maikhanov
в отличии от dart
Yerassyl Maikhanov
1000+ в одной форме
Ihor Levchenko
ну я вообще глубокий противник писать большие проекты на js, ибо это выстрел с базуки в ногу только TS просто для этих “игрулечек” нет смысла его тащить ??
Yerassyl Maikhanov
один заказчик как то просил все на js написать потому что он где то вычитал что js прогеры дешевые
Yerassyl Maikhanov
как же он ошибался
???????
Ну ващет все прогеры +- одинаково стоят)
Yerassyl Maikhanov
я не знаю откуда он это вычитал)))
???????
ну да, пистонисты чуть подешевле остальных жабисты чуть подороже
Ihor Levchenko
чего-то не могу найти… а в dart2native есть ли возможность компилить под другие архитектуры?
Ihor Levchenko
или компилить нужно на целевой архитектуре только?
???????
если шинда - пользуй wsl
Ihor Levchenko
от жаль то как
???????
Ну по ssh собирать пробуй
Ihor Levchenko
не могу значит я с макоси скомпилить под арм под линукс
???????
Поднял бы какойнить мини сервер с ESXi на борту
???????
шо там, шинде и линю по гигу оперативы и вперед
???????
сама шинда даже с граф интерфейсом жрет 300 метров
???????
арч гдет 80 метров, дебиан 120 метров.
Ihor Levchenko
ну это оверхед жаль в го можно просто компилятору скормить флаги под какую ось и какую архитектуру и получаем сразу целевой бинарник на ci/cd это вообще подарок
???????
Если есть норм машинка, поднял бы и гитлаб заодно
Ihor Levchenko
странно чего они не сделали кросс компиляцию
???????
dart2native всего ничего
???????
в будущем мб сделают
???????
ты не забывай, что дарт вчера появился считай
Ihor Levchenko
я в принципе понимаю что Дарт не для серверов создавался… это в первую очередь для флаттера и ради UI
???????
а до дарт 2.0 - его считай и не существовало
Ihor Levchenko
это я уже от него хочу мультитул на все случаи жизни )
???????
вообщет для серверов, лол
Ihor Levchenko
Дарт для серверов?
???????
флатер уже позже был
Ihor Levchenko
я думал его делали как замену JS для UI
???????
Вроде на нем у гугла то чем они зарабатывают - AD сервисы
Ihor Levchenko
интересно..
???????
Но точно для серверов
Nikita Domnitskii
дартиум тоже для серверов делали?
???????
aot дали возможность всего ничего собирать, до этого он крутился через dart-sdk
Ihor Levchenko
интересный дарт, специфический, но интересный
???????
У нас тут на носу крупный апдейт с nnbd
???????
[
{
"type": "link",
"text": "https://github.com/dart-lang/language/issues/110"
}
]
Ihor Levchenko
ага.. нагуглил тоже его
Ihor Levchenko
это будет включено в следующую редакцию дарта?
???????
полная загадка как поступят
Ihor Levchenko
а есть вообще какой-то роадмап у дарта?
Ihor Levchenko
что собираются реализовывать и добавлять?
???????
с одной стороны, если выпустят в рамках минорной версии - это пиздец как все сломает
Nikita Domnitskii
[
{
"type": "link",
"text": "https://github.com/dart-lang/language/projects/1"
}
]
???????
С другой, весь сдк они уже перевели. Их сча 2 версии. Вряд ли будут сильно затягивать
Ihor Levchenko
интересно мне бы конечно очень хотелось чтобы как в Го сделали кросс компиляцию
Ihor Levchenko
это прямо вообще было бы бомбически
Ihor Levchenko
хотел хоум сервак напистаь для домашней рашбери
Ihor Levchenko
но придется сдк ставить на саму рашбери
???????
Гдето в примечаниях к dart2native я это видел
???????
В целом, лично меня это не печалит
???????
Как только он появился - десктопные линуксы превратились в тыквы для аутистов
???????
А буквально в следущем патче будет wsl 2
???????
Попрубуй через какойнить virtual box автоматизировать сборку
???????
В самом дарте есть офигительный простой инструмент - grinder
Ihor Levchenko
да вот виртуалбокс не умеет эмулировать ARM архитектуру
Ihor Levchenko
там надо как-то… как-то раздупляться
???????
А зачем тебе вообще arm?)
Ihor Levchenko
wsl с этим тоже не поможет, он же все равно эмулирует x86-64
???????
Тем более сам же говоришь: "бигдата"
???????
Шо там у тебя за бигдата на арм?)
Ihor Levchenko
ну у меня есть целый ряд сенсорных терминалов на работе которые работают на АРМ) я же смотрю где и как вообще мне можно дарт применять
Ihor Levchenko
пока что у меня почти все на ноде и есть места где Го
???????
Ну да, малинку купи
Ihor Levchenko
и я просто прощупываю Дарт. что я смогу с ним делать в принципе
???????
Онаж вроде на арм
Ihor Levchenko
да у меня есть малинка
Ihor Levchenko
но да… мне поднимать на своей малинке ci/cd?)
???????
Ну и се, закинь под диван и собирай по ssh
Ihor Levchenko
то есть не круто кагбэ
Ihor Levchenko
круто когда все в облаке и собирается под все платформы которые мне надо )
???????
Тебе там только dart sdk нужен
Ihor Levchenko
но то не проблема, на амазоне есть инстансы с АРМ архитектурой
Ihor Levchenko
но все равно.. кросс компиляция бы решила все мои вопросы
Ihor Levchenko
просто хотелось бы чтобы она таки была
Ihor Levchenko
ну посмотрим.. как дальше язык будет развиваться сейчас вроде как он начинает хайпить
Nikita Domnitskii
Столлмана на тебя нету
Karen
изначально да. делался под веб. да и сейчас его продают как client-optimized
???????
Кста, пока там сильно не углубился. Если что, dart2native не работает с библиотекой dart:mirrors
???????
Тобишь в aot у тебя не будет рефлексии
Ihor Levchenko
мм.. это неприятно конечно
Ihor Levchenko
а вообще мне интересно.. флаттер приложения же собираются на х86-64 архитектуре.. и под арм
admin
Спасибо что вы есть!
Ihor Levchenko
или оно там в режиме интерпретации работает на мобильнике?
???????
Не, выпускает под отдельные архитектуры свои пакеты
Nikita Domnitskii
Флаттер скорее всего делегирует сборку нативным тулчейнам
Nikita Domnitskii
Поэтому сам он не кроскомпилит
???????
[
{
"type": "link",
"text": "https://github.com/dart-lang/sdk/issues/28617"
}
]
???????
[
{
"type": "link",
"text": "https://github.com/dart-lang/sdk/wiki/Building-Dart-SDK-for-ARM-processors#building"
}
]
???????
[
{
"type": "link",
"text": "https://blog.dantup.com/2019/11/easily-compiling-dart-to-native-executables-for-windows-linux-macos-with-github-actions/"
}
]
???????
Корочь, разбирайся
Ihor Levchenko
проголосовал конечно
Ihor Levchenko
будет круто если таки завезут
???????
Будет. Но дело в том, что есть и другие фичи над которыми они работают.
???????
Мне бы не хотелось, чтоб это было приоритетом, например.
???????
Какойнить dart2wasm и допиливание поддержки веб апи былоб бы заметно интереснее.
Ihor Levchenko
типа чтобы приложуху можно было засовывать в веб ассембли?
???????
Да, над этим они также работают
???????
Ну у них вообще очень много задачек. И фичи постоянно новые выпускают.
Dmitriy Orteney
[
"Скорее всего благодаря этому - ",
{
"type": "link",
"text": "https://github.com/dart-lang/language/issues/94"
},
" можно будет указать версию без NNBD, а там уже будет интероп по принципу nullable by default"
]
Ihor Levchenko
конечно планы фейерические
???????
Ну да, мб так и будет. Флаг в пабспек, при не указаном или отсутсвующем - отсутсвие nnbd
???????
А с dart 3 версии уже можно былоб наоборот, nnbd по умолчанию
Кирилл Матросов
Думаешь, что прям сделают dart 3? А не dart 2.10?
???????
Но когдат им же придется глобально переиграть API SDK)
Кирилл Матросов
если писать без null, то проблем не будет)
???????
Ну я уверен, что у тебя куча мест где это дело надо будет поправить)
Кирилл Матросов
[
"Если я правильно понял, то на первых этапах миграции будет достаточно проставить везде ",
{
"type": "code",
"text": "?"
},
", njx,s работало как раньше\nint? String? и тд"
]
Кирилл Матросов
Я переписываю блоки еще с прошлого года, так что не так много)) Почти нигде нет потенциально nullable
Кирилл Матросов
+ линтеры, которые бьют по рукам за null)
???????
над будет глянуть. Можешь накидать список этих линтов? Поправлю свои библиотеки.
Mitai
есть годнота по полке?
Кирилл Матросов
Так я у тебя и списал)
???????
У меняж нет non nullable линтов...
???????
[
"Я частенько пишу так:\n\n",
{
"type": "pre",
"text": "class Sqlite {\n\nDatabase _db;\n\nFuture init() {\n _db = Database()..init();\n}\n\n}",
"language": ""
},
""
]
Кирилл Матросов
так я и не говорил про non nullable просто линты педантика и эффектива для null Например avoid_init_to_null: true avoid_returning_null_for_future: true avoid_null_checks_in_equality_operators: true Проверять не null, а состояние
???????
А это явное нарушение non nullable
Кирилл Матросов
не list != null а list.isNotEmpty
???????
Ну это понятно и нещитово
???????
А за такое меня никто не ругает
Кирилл Матросов
сделай так analyzer: enable-experiment: - non-nullable
Nikita Domnitskii
метод из нот эмпти вос коллед он нулл
???????
Не, если non nullable
???????
[
"ну или делай ",
{
"type": "code",
"text": "list?.isNotEmpty ?? false"
},
""
]
Nikita Domnitskii
Ну так это в любом случае разные вещи же
???????
[
"В данном случае линт там будет ругаться на ",
{
"type": "code",
"text": "list.length > 0"
},
""
]
???????
А не на проверку на null
Кирилл Матросов
Согласен. Если у тебя всегда List list = []; а не List list; то если ты где-то явно null не присвоишь, проблем не будет
Кирилл Матросов
Как вариант делать Fake наследников от Классов и их присваивать
???????
Ну начну разгребать потихоньку попозжа)
Кирилл Матросов
Поэтому я и думаю, что раз эти эксперименталы есть уже почти год, то можно ожидать, что народ плюс-минус готов и не будет dart 3
Dmitriy Orteney
[
"Не, там для этого сделают ключевое слово ",
{
"type": "code",
"text": "late"
},
", как ",
{
"type": "code",
"text": "lateinit"
},
" в котлине\nты как бы обещаешь, что там будет не нул, но должен сам следить, чтобы не дергать до инициализации"
]
???????
Нет, нельзя этого ожидать
???????
Ты не имеешь никакого права менять поведение публичного интерфейса в рамках мажорной версии
???????
И так сделав - будет куча вони.
Кирилл Матросов
А как же тот опрос "Можно ли нам ломать, если вам будет потом хорошо?"
???????
А на счет готовности - сколько там у hive одну строчку в пабспеке по разруливанию конфликта поправить не могут?
Кирилл Матросов
Не сыпь мне соль на рану, не лей мне чай на спину
???????
Мое единственное ишью на либу tuneup (гугловскую, между прочим), с простейшей правкой 1 строки в пабспеке с конфликтом с другой гугловской либой (локализации) - закрывали месяц
???????
Да и тут народ вообще никак не готов к nnbd)
Dmitriy Orteney
дану все кто со сфифта/котлина пришёл сильно ждут )
???????
То что "ждут", еще не значит, что пишут с соблюдением nnbd
Dmitriy Orteney
Ну нет инструмента как бы х)
???????
А всего 1 такой косячок на всю либу - и асталависта, бейба
???????
Никто не готов) Ну или по крайней мере абсолютное большинство
Evgenii Elchev
[
"у меня по всему коду стоят ",
{
"type": "mention",
"text": "@requre"
},
" и assert(some != null) ))"
]
Dmitriy Orteney
согласен маленько помогает
Evgenii Elchev
ну по сути это тоже самое что и nnbd только самому следить преходится, и много бойлерплейта(
???????
Сам же знаешь, что позиция противников тестов "а я пишу код сразу правильно", не делает твой код правильным) Нужен покрывающий инструмент, без него твой код по умолчанию находится в суперпозиции (а по факту - неправильный)
Кирилл Матросов
мне кажется, что будет орать и требовать добавить значение по умолчанию
???????
Будет) На проверки на нулл (по крайней мере за границами assert) - точно будет, ибо лишено всякого смысла.
Кирилл Матросов
[
"и , если я правильно читаю доку ",
{
"type": "link",
"text": "https://dart.dev/guides/language/language-tour#assert"
},
", то assert нет в release run time"
]
???????
Для того его и пользуют, ващет)
???????
Чтоб получать исключения и сообщения только в отладке)
|