Little by little, MTASC is getting better. It doesn’t take too much of my time and it should reach soon 1.0 . Recent talks on the mailing list are about ECMAScript compliance. MTASC could be better compliant than Flash compiler, but users could not anymore compile their old AS2 code withing making it ECMA compliant. That’s why right now I’m focusing on changes that doesn’t break MTASC safety or design, but still are keeping maximal backward compatibility with Macromedia compiler. Realistic over Idealist (well if I was not pragmatic I wouldn’t have chosen AS2 !).
This document is giving some benchs of different functionnal languages that have been ported to .Net (Fig 8.). Performances are bad, really bad (up to 200 times slower than code produced by native ocaml compiler).
I’m worried that if Microsoft does not move to ILX and if both .Net and JVM are the main runtimes tomorrow, then functionnal programming languages will get marginalized a little more due to lack of support from theses virtual machines. That’s bad news, especially when you consider that performances are one of the key points that brings people to programming Ocaml.
Looking at .Net ECMA documents, I understand now how much .Net approach is different from Sun JVM. While Java started directly with high level features and dropped most of C oddities, .Net still have them all ! In particular, different float and integer sizes, pointer manipulation, different calling conventions and more. That makes the Metadatas particulary rich and difficult to implement. The goal of Microsoft is clear here : try to keep as much backward compatibility as possible. While .Net was introduced as a brand new technology that was bringing a new framework, it looks like they couldn’t get rid of which is now almost the past of programming. That might help speed up things a lot but that won’t help the language designer to target .Net. But still, the merits of .Net are to bring a clear - although uncomplete - answer to multiple language interactions, while Sun JVM was mainly designed for Java.
Reading an article in French CS magazine, a quote from someone at Sun (doesn’t remember who) was saying that langages are becoming more and more easy and fast to learn and that most of the time now are being spent on learning APIs. Well, I guess it’s particulary true for Java and Python which have very few basic concepts and a lot of APIs barely trying to implement complexes schemes using them. When the APIs become so difficult to learn and use, not because of quantity but because of complexity, and when at the same time languages are recognized to be easy to learn, then it’s a clear call in favor of adding concepts to ease API design and usage.
Back from Kyoto ! Time shift is 8 hours, quite big but ok in this way (it’s something like a 32 hours monday).