3 ms·
of course if everyone chose existing runtimes, there would be no new ones ;) From the blog "So if I were insane enough to create a programming language for u
by plinkplonk 14y ago
of course if everyone chose existing runtimes, there would be no new ones ;)
From the blog
"So if I were insane enough to create a programming language for use by others, I would, without hesitation pick one of the following hosts:
Factor: the concatenative programming language has a stunning compiler and runtime
GHC: the Haskell compiler and extensions with the appropriate runtime libraries
Java Virtual Machine: world-beating megatech
JavaScript itself or a specific JavaScript targets like Node.js or V8
Erlang’s virtual machine
A Common Lisp implementation
Racket via its #lang feature
"
Fair enough, but...
if all those "hosts" had also made the decision to 'build on top of existing runtimes' they wouldn't be potential " plug and play" hosts today for others to target ;)
We these choices today, only because some people who ignored the 'build on an existing language's runtime vs creating your own' idea.
V8 is (relatively) very new but they didn't choose to build on top of the JVM, say. As a result we have new and exciting technology vs being locked into an aging, sorry, "mature" JVM.
"Moving into the future I believe one would need to be gutsy, ill-informed or insane (or a mix of the three) to create a language runtime from scratch."
You always needed to be gutsy, well informed and knowledgable, and yes just a little insane, to build a language runtime from scratch.I hope we get more and not less of these types of people. There is a lot of research that hasn't made it into runtimes yet.
The Factor runtime for e.g is quite different from the GHC runtime and both teach different lessons and embody different design decisions. We need more of these, not less, till there is some solid math/theory on what makes a good runtime.
In any case, if a language is good enough on its native runtime, it will probably get ported to the JVM or whatever the latest 'mature' runtime is.
- MatthewPhillips 14y agoAren't language design and runtime design different skills though? I think one of the reasons we've had an explosion in languages in the last few years is that it is very easy to take your ideas and staple it onto the JVM or transpile to JavaScript. I contribute to a to-JS language myself and I wouldn't know where to begin with writing a runtime/vm. And I have no interest in doing so.
- plinkplonk 14y agoThey aren't unrelated or orthoganal skills, just different points on a spectrum. fwiw nobody is asking you to learn runtime design if you don't want to. If you want only to compile new 'language designs' down to existing VMs,bytecode etc, then sure, you have that option (and you always had this option once the first 'host runtime' was in existence). All I am saying is that one needs to be careful not to paint with too broad a brush, and reccomend that no one explore runtime design because we have all these platforms already and it is 'too hard' (so don't go there).