Pull to refresh

Comments 3

Вкусовщина и IDE всё равно будет подписывать, либо тип, либо название переменной/имя поля.

Второй месяц уже ковыряю Dart и Flutter
На данный момент весьма двойственное ощущение от всего этого.

  • С одной стороны, вроде как это реальная действующая и рабочая кроссплатформа, и при этом на данный момент абсолютно свободная. Для сравнения тот же Qt официально "свободен" только для некоммерческих поделок, а за коммерцию официально плати немалые деньги за каждое рабочее место.
    Интерфейс можно делать очень симпатичный, особенно для мобилок.
    Так же относительно легко можно переносить морды в ВЕБ
    На десктопе и мобилках компилируется в найтивный код. А в лучае с чистым Dart так вообще в один единственный EXE-шник, как на каком-нибудь старом добром Delphi

  • А вот с другой стороны, несмотря на относительно дружелюбный синтаксис Dart, построение более или менее сложного интерфейса превращается в какой-то адский и плохо читаемый спагетти-код. Декларативная часть получатся по сути как бы адским замесом вызова конструкторов и вспомогательных функций с необходимостью вызова кучи callback функций для изненения состояний и реакции них, и уже потом где-то там вызова реального кода обработки. И вся эта фигня как бы вдохновлена React-ом и таким же "богомерзким" WEB-JS спегетти кодо-ложеством, как раз для того чтобы в конечном итоге в чистый JS для WEB и компилироваться.


    Кроме того как бы заявленная компиляция в найтив по крайней мере на десктопе по скорости работы конечного кода, мягко говоря, оставляет желать лучшего. Тестовые прогоны на обработке матриц и прочих алгоритмов показали 7-ми кратно отставание от С# .NET Core и 12-ти! кратное от чистого найтива в виде VS C++.
    Конечный ассемблер пока рассмотреть не удалось, но вполне возможно, что никакой компиляции в те же найтивно-процессорные регистровые integer там нет, а происходит постоянная работа с объектами типа Integer.

Короче, IMHO на десктоп этому пока рано или вообще не надо.А вот для мобилок и ВЕБ-а это неплохой выбор. Хороших альтернатив с унифицированным интерфейсом не так много или они уже требуют ощутимых денежных влияний

Благодарю за ценный комментарий!

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

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

И вся эта фигня как бы вдохновлена React-ом и таким же "богомерзким" WEB-JS спегетти кодо-ложеством, как раз для того чтобы в конечном итоге в чистый JS для WEB и компилироваться.

Да, с веб в этом есть проблема. За счёт этого велико время первой загрузки веб приложения, над этим работают и уже можно компилить в wasm. Попробуйте в wasm, это получше чем в js. JS - вообще сам по себе проблема, даже если писать на нём нормально. А React - это JS в квадрате.

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

Тестовые прогоны на обработке матриц и прочих алгоритмов показали 7-ми кратно отставание от С# .NET Core и 12-ти! кратное от чистого найтива в виде VS C++.

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

Когда говорят про флаттер vs Натив, обычно Натив - имеется в виду Котлин, но не C++. Видимо у вас та ниша, где от десктопа нужна мощная производительность. Для такой ниши попробуйте FFI C. Я пробовал, скорость на уровне C.

на десктоп этому пока рано или вообще не надо

Если сравнивать с тем что изначально заточено под десктоп типа C# или C++, то да, дарт слабоват. Но на десктопе он живёт не хуже тех же самых JS и Python. Даже с учётом FFI, скорость разработки на Дарте для всех 6 платформ не сравнима с другими подобными технологиями. Отдельно взятые Swift, C#, JS - в своих родных нишах выигрывают, но построить инструмент, который будет лучше натива во всех нишах - по-моему нереальная задача, имхо. Но, в плане десктопа, я полностью согласен с тем что есть над чем поработать. Я бы добавил, что сейчас слабое место Дарта - не десктоп, а сервера.

В любом случае, спасибо вам за то что поделились опытом и ценной информацией!

Sign up to leave a comment.

Articles