You might as well ask why Brendan Eich invented JavaScript.
Also quoting one of the project founders: "FWIW what we've seen in usability studies is that people who know JavaScript can pick up Dart without even noticing. (Literally, after an hour in a usability study we'd ask people what language they'd been using and they would respond with surprise, having not even noticed that it was a new language."
Whether it was a good idea or not I'll leave for you to decide, but the reason that they landed on is that the Dart VM allows for AOT compilation, which is required for iOS, while still being flexible enough to do Hot Reload.
I would like to consider it a beginning of something better.
It wouldn't be native compiled code (which this says it is), and it would have a poorer language experience plus all the baggage that comes with JS.
>No one uses Dart
You'd be surprised.
Qt comes with 5, 000 classes for every situation to back you up, before you need to go to the community.
I think that a lot of developers are simply scared of it, without just cause. They believe rumours, without ever actually trying to use the thing. They don't evaluate first.
I look forward for the Electron wave to fade away just as MSHTML and XUL waves died before it.
Yes. It's well-written C++. Any IDE can handle it, but the also have their own which gives you a few more things, like drag'n'drop design.
* Hot reloading
Depends.
Old-school Qt? No. It's more powerful, but can't hot reload.
New-school QML? Yes. But you are limited to QtQuick, which is only on-par with Electron's features.
* Ability to target mobile and desktop, etc.
Yes. Supported targets include: Windows, UWP, Linux, macOS, Andorid, iOS, watchOS, tvOS, QNX, and other embedded platforms.
QT is either GPL which is viral i.e. you have to open source your software under the same license, or quite expensive. Even if you’re working on open source GPL software, free QT edition has less features, esp. on embedded.
it is not.
It doesn't:
> WebView is a component for displaying web content which is implemented using native APIs on the platforms where this is available, thus it does not necessarily require including a full web browser stack as part of the application. [0]
I tried Flutter over a year ago and found the instant reloading of code nice and has most of modern features but went back to native as the library support is still non-existent.
The real competitor to flutter is kotlin cross-platform from jetbrains. Most android developers are already familiar with kotlin, unlike dart, and also has great tooling.
I look forward to seeing which one wins mind share as they are well designed options.
> Dart’s flexibility in compilation and execution doesn’t stop there. For example, Dart can be compiled into JavaScript so it can be executed by browsers. This allows code reuse between mobile apps and web apps. Developers have reported as high as 70% code reuse between their mobile and web apps. Dart can also be used on a server either by being compiled to native code, or by compiling to JavaScript and using it with node.js.
Source: https://hackernoon.com/why-flutter-uses-dart-dd635a054ebf
The other things are just icing on the cake: best in class framework, hot-reloading, runs on IOS (until Apple gets irritated), development on Linux, and a more than decent language to write apps in.
Plus who will decide to use this in a market dominated by Electron?
* Dart/Flutter {iOS, Android} [0]
* (Scheme|Lua|C)/IUP {Linux, Windows, macOS} [1]
* (QML with JS)/QtQuick {Windows, Linux, macOS, UWP, Android, iOS...} [2]
* (C++|Rust|Go|Python...)/Qt {Windows, Linux, macOS, UWP, Android, iOS...} [3]
* (TCL|Ada|Haskell|Python...)/Tk {Windows, Linux, macOS} [4]
* (TCL)/Hecl {Windows, Linux, macOS, Android} [5]
* (Scheme|C|JS|Haskell...)/GTK+ {Windows, Linux, macOS, Android^} [6]
* (C++|Python|Ruby|...)/WxWidgets {Windows, Linux, macOS, {Anywhere GTK or Qt run...}} [7]
(^ May not be stable or officially supported)
... All the platforms listed are cross-platform.
Some look native, some don't, but no Electron app does anyway.
Most package to single binary, some need proper packaging.
All are very simple to get started.
Tk has the least features, but TCL is just a shell language, so getting started is ridiculously easy. However, Tk can do things like inject its frames into any running process's window.
QT and GTK+ are the most powerful, which can confuse newcomers. But they're still simple to do simple things with.
I've used all but Flutter in a professional environment (but evaluated it), sometimes as maintainer, sometimes building something new. They're all solid. Different drawbacks with all of them, but there's always tradeoffs in programming.
For a beginner, I'd probably recommend QtQuick or WxWidgets.
[1] http://webserver2.tecgraf.puc-rio.br/iup/
[2] http://doc.qt.io/qt-5/qtquick-index.html
[3] https://wiki.qt.io/Language_Bindings
You ship apps, and they can be in whetever you like. No user cares if the app is in Electron or whatever (except only negatively, as Electron wastes resources).
If Flutter apps run faster and eat less resources, people will go to them, everything else being equal.
More dev currently using Electron will not matter.
It doesn't matter which framework really, any improvement is much better then what we currently have. WhatsApp on Mac currently uses 1GB Memory sitting there doing nothing. Not too bad for an Electron App I guess since Telegram uses 650MB after being opened for 48 hours, but it does sit at 150MB once it is closed and reopened.
And before anyone else say Memory were suppose to be filled, consider that paging actually lower the lifespan of a SSD, I have currently done 2TB of writing over the past few days.