Profile cover photo
Profile photo
Gregory Golberg
Этот шмель не летит, он исполняет "Полет шмеля".
Этот шмель не летит, он исполняет "Полет шмеля".
About
Posts

Post has attachment
Add a comment...

Post has attachment

Post has shared content
Some thoughts on programming languages and virtual machines. It happened that by accident 3 languages recently caught my eye: Scala (http://www.scala-lang.org/), CoffeeScript (http://coffeescript.org/), and LESS (http://lesscss.org/). Ok, so LESS is a bit of a stretch for the purposes of this discussion, but it did catch my eye and I need it to make the point, which is the following: all these languages compile down to already existing runtimes.

Now, this might be a trivial observation to you, but when I would learn a new language, I am also used to it carrying its runtime with it. This is of course true to languages that compile to assembly (C{++}), but also - Java, Perl, Python, PHP, ActionScript, etc. So this observation got me thinking: Scala, CoffeeScript and LESS all add a lot of expressibility over the original languages designed for their target runtime (Java, Javascript and CSS). But why not their own runtime? Well, having hung out in the Flash world for so long, my first guess was - runtime platform penetration. Sure, for CoffeeScript and LESS, which are client-side-targeted languages, this makes sense - browsers implement Javascript and CSS, and pushing another runtime to the client is not feasible. But Scala is a server-side language, so that isn't it. Now, there are considerations of Scala compiling to Java bytecode so that it would be interoperable with existing Java libs (as +Gregory Golberg tells me). But I want to make a sweeping generalization here (put your helmets on!).

Constructing a new language and taking care of its semantics and expressibility (let's call this the Expressibility Problem) and implementing its runtime (VM or interpreter - not sure what the difference between those two is) and ensuring that it runs efficiently on all the target platforms are two completely different problems. They require two completely different competences to boot. So it would make total sense if the market of programming language construction would stratify itself in this way - once the existing virtual machine runtimes would be sufficiently mature. Which is the era we appear to be in now. 
Add a comment...

Post has attachment
Add a comment...
Wait while more posts are being loaded