Hi,
I happen to be watching some of the Dart conference videos again, and Lars Bak said that it is important for people to send them benchmarks showing some real-world performance problems that they are having.
Regarding Dart performance, one of their priorities seems to be to balance the code size or the generated code so that the startup or the memory footprint can be improved.
Fletch can load its generated snapshot faster than the Dart VM can its snapshot. I'm not sure why that is. Perhaps given all of the features that the Dart VM has, it ended up making the startup noticeably slower. But the Dart VM is full featured compared to most VMs including Fletch. So it's not entirely fair comparing their performance at this point.
They did let a hint out that they could experiment with pre-compiling some of the program's code so that it was faster, perhaps only a feature for the iOS at the beginning since that was the context of the conversation.
But if we compare the Dart VM to the Java VM, one of the concerns that they tried to tackle since the beginning was startup time, just because the Java VM always had a problem with that, but also because mobile requires that your application always be starting up.
Perhaps they think that the Dart VM is already plenty able to drive most UI needs that people have. If their UI needs is like loading a native UI, presenting and collecting some data with basic input fields, etc. Before they dropped support for the Dart VM on Chrome, some users were also willing to code their games with the Dart VM, implying that the Dart VM was also relatively good for game development.
Since mobile is in its infancy despite its huge popularity, anything could happen concerning mobile development tools. Something that could happen to Dart is that they would start demanding "implementation types" as a subset that would get compiled ahead-of-time to some mobile platforms. An alternative view is that people would try to bring the ease of development (relative) of the web to mobile so that the clients remained "thin" and most of everything remained on the servers. And a "thin" client could be just interpreted like JavaScript is on the web.
iOS forbidding "JIT" also throws a wrench at just using the Dart VM for everything.
They cannot promise much at this point. But here is what could happen... Fletch could produce a standard bytecode set that they would try to run through the LLVM compilers which would compile Dart ahead-of-time. It seems that many high level languages have been dreaming of something like that.
Cheers,
Joao