How is it for writing cross-platform desktop apps? There seems to be a dissapointing trend of UI toolkits only going for IOS and Android, leaving out the still very essential need of toolkits for cross-platform desktop apps in languages other than c++.
On one hand, the website says that it's compiled to native code (so it can be same speed/faster than Java), but on the other hand, it's based on a soft-type language, which makes optimization difficult (even with V8, JS is still slower than native code).
Side question:
I understand that Dart was soft-typed because it was supposed to replace/compile to JS, but what advantage does soft-types have against "implied-types" (like auto or go's := ) combined with operator overloading (to allow string+int, for example)?
Even the original, untyped, Dart was designed to be easier to optimize that JavaScript (e.g. it's class based, not prototype based, so the runtime doesn't have t work as much to optimize object access).
I'm going to save these links for the next time I get downvoted for saying that js object system and dynamic typing suck for performance :).
When JS performance threads come up I always mention that JS will never be as fast as Go/Java. Some people have a tantrum when I explain these issues. The sources I usually cite are dense and people just continue to downvote without reading them.
AOT compiling was initially all about iOS (where JIT isn't allowed), but you can now do that everywhere with "application snapshots" which were recently added with Dart 1.21.
Unlike the script snapshots, application snapshots also include CPU-specific native code in addition to the serialized token stream of the source code.
So, you don't just skip the parsing stage, you also skip the warmup phase. Your application starts instantly and it runs at full speed from the get-go.
I tried out their demo apps on Android and they were pretty fast but there were still some hiccups. It's definitely not as fast as good Java apps but it is pretty close. Also the animations are on the level of iOS apps - far superior to Java Android apps.
read on the flutter site that text input still wasn't implemented, so i'll probably wait some more.
I didn't find a doc on how low level is this framework going. Or to put it differently , where does it plug itself on the iOS stack ? opengl ? calayer ? uiview ? webview ? etc...
It's fairly low level. It uses Skia, which is a 2d rendering engine Google bought 12 years ago that powers Google Chome / ChromeOS, Android, Firefox and Firefox OS. Skia is built on top of OpenGL, but they've been working on a Vulkan backend that is close to feature parity.
This seems to be how they get the high performance animations. It also explains how they are able to do cross compatibility between devices (You really only need C++ and OpenGL).
You can use Flutter today to write an app that runs on iOS and Android. :)