5 ms·
Well 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 thou
by xxgreg 8y ago
Well 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 agoEiffel uses its own VM for interactive development, and compilation to native code via system C and C++ compilers. CIL and Java support is just a kind of integration support, the MELT VM is what matters. Eiffel is a commercial language, with a GPL based license for open source projects. It is also used in enterprise production code since the mid-90's, definitely more battle tested than Dart will ever be, which lets be honest it is struggling for survival.
- xxgreg 8y agoBack to where this started: "is there any feature of Dart that is required by Flutter?" This is me paraphrasing why the Flutter team think Dart is a good fit: It's a familiar language for developers who have written JS, Java, C#, or C++. It has types to allow working on large codebases, and efficient AOT compilation. It has tooling for popular IDEs. Does subsecond hot-reload on iOS and Android (also more than just method bodies). It's performance, even on iOS dev mode is sufficient to do all of the layout and widget code. It's open source under liberal license which allows you to embed it your app. Your claim: "There are plenty of programming languages that offer these applicabilities." I don't think this is true. Even if you want to count Eiffel that's one, not plenty. Nor could Eiffel have been used for Flutter since the GPL means you can't embed the VM in your app. Nor is it particular familiar for developers of existing mainstream languages. Anyways, I agree that there's nothing "special snowflakey" about any of this technology, but no-one else, that I'm aware of, is shipping a language and toolchain that ticks all of these boxes at the moment. Hopefully someone will build this stuff for other popular stacks too. (I am also aware of Eiffel. I remember hearing about it at uni back in the mid-90s when discussing CBD. I think it may be older than mid-90s too. I also don't think it would have been a very good choice for Flutter.) Also what's with this whole "Dart struggling for survival" meme of yours. It comes off as kinda unhinged. Feel free to ignore the language. And people who like using it can happily ignore you.
- pjmlp 8y agoDart was dropped by Chrome and Angular teams, rescued from certain death by the AdWords team. Without something like Flutter, the language has nowhere else to go. The judge is how there regarding how Flutter adoption is actually going to take off on the mass market, outside a few agreements to show off at keynotes.
- xxgreg 8y agoSo seems similar to GWT which also saw little adoption outside of Google, and was used by the AdWords team. But here we are in 2018 and GWT is still ticking along with regular commits. I guess that means Dart is here to stay too. And now Flutter is becoming popular and is being used by external developers. "Struggling for survival" is hyperbole today, and pre-Flutter, but agree this was true in the pre-AdWords days. https://github.com/gwtproject/gwt/commits/master https://github.com/gwtproject/gwt/commits/master
- ptx 8y ago> Hotswap on the JVM is very limited It mystifies me why this has not been integrated into Sun's/Oracle's JVM and OpenJDK, since it's been available in other JVM implementations for a long time and is so obviously a hugely useful feature – with the agonizingly slow startup of Java applications you really need code reloading at runtime. Anyway, the Android VM (ART) has Instant Run nowadays. It also doesn't support hot-swapping anything more than method implementations without restarting, but restarting on Android is not as painful as on the regular JVM. https://developer.android.com/studio/run/#instant-run https://developer.android.com/studio/run/#instant-run
- xxgreg 8y agoHopefully Flutter's popularity will bump the priorities of the other VM developers to improve code reloading.