The Language-Language Matrix
It's impressive to see how many runtimes Clojure has already been ported to.
I'm starting to get my hopes up for a world where a Clojure FRP core drives apps in a host of target languages.
Is it just me, or does the fact that every other language is getting translated to Javascript suggest a lot of problems with the language that so many people are willing to write translators?
(I am not a big fan of JS myself, but I also don't feel I have used the language enough to be competent with it).
"Try running phpjs (JavaScript → PHP) in PHPPHP (PHP → PHP) in PHP.rb (PHP → Ruby) in HotRuby (Ruby → JavaScript) in Narcissus (JavaScript → JavaScript) in Narcissus (JavaScript → JavaScript)!"
Here's C in Common Lisp: https://github.com/vsedach/Vacietis#readme
Omission: there's a very nice on-the-fly compiler, which supports writing an embedded intepreter, for (an old dialect of) Lua in OCaml, written by Norman Ramsey [1]. It's part of the C-- distribution [2].
It would be interesting to do a "chineese whispers" type experiment on these and see what comes out at the end of translating code through multiple languages.
It seems a bit arbitrary to omit mention of Lua's native ability to be trivially embedded in C and C++ programs. Why limit yourself to transpilers?
Cibyl and NestedVM seem to be in the wrong cell. These take C/C++ source and produce Java. Come to think of it, the Java target should probably be "Java/JVM" as NestedVM can skip Java, going straight to JVM bytecode.
Another suggestion of code I've played with before: http://IKVM.net to run Java (JVM bytecode) on C#, errr, .NET CIL.
Nice. Some observations: Many languages compile to JavaScript(has highest number of source languages).
Java(I think JVM) and C++(native binaries??) has higher source languages.
Clojure has highest target languages(good to learn then).
Java to Java => Beanshell is interesting.
No entry for (Common Lisp → Common Lisp) or (Scheme → Scheme)?
This is pretty great, thanks! I would love to see the top row with the language names move down with the page. I really think that would make this easier to read.
I am astonished that PyPy does not appear on this chart.
I have to agree with Yegge, good tools are a big problem (http://googlehow.com/2013/10/09/stanford-seminar-googles-ste...). His project becomes more important as more compilers are written - I hope it exists outside Google someday.
no need to learn javascript as all languages can compile into it. :D
Nice.
Isn't it a bit odd that "C/C++" is a single category? That works in certain contexts, but certainly (1) C is a much more common compilation target than C++, and (2) C is much easier to handle as a source language than C++. So in this table it does not make sense to think of the two as one thing.
Take the languages which can be compiled to Java bytecode, throw in IKVM.NET, add the list of languages which can be compiled for the CLR, and you might have the longest list of languages which can run on one platform?
C++ on C++ = Cling, although it's a bit physics centric
There was a similar project mentioned here before showing transpiler chains, can't find it. Seems like it should be mentioned.
Very nice. It looks to me like PHP.rb should be in Ruby -> PHP rather than PHP -> Ruby.
no mention of recently announced scala.js. Otherwise, good job, I'll be monitoring the list!
Python -> Scala = PyPy?