4 ms·
"is there any feature of Dart that is required by Flutter?" The Dart platform provides the following features: - Subsecond hot reload - AOT to ARM - Bytecod
by xxgreg 8y ago
"is there any feature of Dart that is required by Flutter?"
The Dart platform provides the following features:
- Subsecond hot reload
- AOT to ARM
- Bytecode interpreter for debug mode on IOS
- JIT for debug mode on Android
- GC tuned for Flutter's build methods. (like React's render)
Not aware of any other platform provides all of these features. Bolting these features on to another existing language and platform which wasn't designed with these goals would be hard.
- pjmlp 8y agoSpend some time with Common Lisp, specially the commercial versions like Allegro or LispWorks. Eiffel would be another possibility. Then there was the way Oberon was originally designed. The fact is that there is nothing special about Dart other than trying to save the language.
- ilrwbwrkhv 8y agoi dont think lisp is as popular... i actually prefer a java like language than learn prefix calls and conj
- pjmlp 8y agoSure, the point being there is nothing special about Dart. What it gets promoted as Dart special features for Flutter is also available in other languages, not only Lisp.
- kazinator 8y agoC-like languages have prefix calls; what you have to learn is that no commas are required and the opening parenthesis encloses the operator, not just the arguments. You were able to create a HN account, so I think you can handle it.
- xxgreg 8y agoSo much arm chair theorising, lol. Meanwhile someone has picked up the Dart tool chain and built a compelling framework with it. There is nothing "theoretically" special about this, but it is special in the "practical" sense that it exists, and I can use it today. I can download it, install it, and get hot-reload on Android and iOS mobile devices while coding. I can swap out code at any layer of the framework since all of the framework's layout code and widgets are implemented in the same language as used to build an app. Dart's performance characteristics and the combination of the AOT, JIT, and bytecode interpreter make this possible. I write Clojure for a living. I like the elegance of Lisps. Clojure is mostly tolerable. The thing I like most about it is loading code immediately into the REPL. I hope more of the industry moves towards live programming. (or moves back to live programming, since I guess back in the Smalltalk days it used to be mainstream.)
- pjmlp 8y agoCommercial Common Lisp compilers can also target mobile platforms, nothing theoric about it. In any case, the issue is that Dart isn't a special snowflake with some extraordinary set of AOT, JIT, and bytecode interpreter not available to any other programming language. There are plenty of programming languages that offer these applicabilities. Flutter can be equality well implemented with any of them and I believe Dart is going to bet the cause of Flutter's failure, unless Google forces it upon us, e.g. replacing Android with Fuchsia.
- xxgreg 8y agoWell for the mainstream VMs: Hotswap on the JVM is very limited, likewise with edit and continue on the CLR. Xamarin has live XAML updates, only for markup though. V8 is better at hot reloading, but then suffers on the performance front, since it's basically impossible to do efficient AOT for it. So which languages/platforms do you mean?
- pjmlp 8y agoEiffel would be such an example, from the list I have listed. Regarding JVM, hotswap is only limited if you constrain yourself to the OpenJDK basic features. As we in the Java community are well aware, that are other options out there, like HotswapAgent and JRebel for example. Commits adding Fuchsia support for ART started to land on AOSP, so lets see how much love Flutter/Dart will actually get from Google internal politics.
- xxgreg 8y agoHaven't used Eiffel. Seems to compile to C and CIL, also GPL and likely even less popular than Dart. Jrebel dicontinued android support. Does hotswapagent support android? Cool watching Fuchsia evolve. It will definitely support Android apps, otherwise google throws away their playstore monopoly.
- pjmlp 8y ago