Following my previous post about new opportunities for D with ASM.js, I've caught up with a lot of reading about Dart after seeing the seriousness of the project and a virtual machine being integrated to chrome directly. The benchmarks are already very promising[1]

My position has changed, and I now think D would be in a better position if it ran in the Dart VM. In other words, ASM.js has become the Dart language - the solution is to introduce a D to Dart compiler[2]. This compiler would be written in D with Pegged, the same way I'm writing this ASN.1 compiler[3]

This would require the interfaces from the Dart libraries (front-end DOM objects) to be built into a D library. Of course, the D=>Dart compiler would need to handle druntime and phobos as well for complete integration. I don't think this task is half as complicated as it would have been to go the D=>LLVM=>ASM.js route.

The best part of it all is this: you can compile the back-end (server-side) code to a binary executable using vibe.d and achieve immense performance improvements vs what runs in the Dart VM, and send the front-end code to Dart. This obviously seems like a durable and promising opportunity.

Comments?

[1] https://www.dartlang.org/performance/
[2] https://www.dartlang.org/articles/why-not-bytecode/#compiling-to-source
[3] https://github.com/globecsys/asn1.d

Reply via email to