>Then we could all write in our favorite languages and make sure the code is transplied to Lisp - just a thought.<p>I read this as:<p>"There are too many programming languages. Why can't everyone just use Lisp?"<p>I laughed a little to myself due to the Lisp user stereotype of parading Lisp around as every programmer's savior. Did it come off that way to anyone else? I don't mean to offend, as I rather enjoy Lisp too. But I felt the premise of the article was "all code should transpile to other code" and I ended up reading it as "all code should be Lisp".<p>Maybe that was the intended humor. Maybe humor wasn't intended. Either way, I got a laugh out of it.<p>There are a ton of libraries/wrappers use to run X code in Y language or middle-men. Rubypython [一] comes to mind. While it doesn't fully cover the problem it's a start. However is that method the one we want to use? Does a better method even exist or is a better method even possible?<p>[一] <a href="http://rubypython.rubyforge.org/" rel="nofollow">http://rubypython.rubyforge.org/</a>
This doesn't work because there are a number of semantic distinctions layered even on top of Lisp-like syntax tree, and all those languages have different semantics. Common Lisp, Scheme, Clojure, and Arc are all Lisps, but you can't use code written in one of them inside a different one.<p>The way you get language interoperability is to define a common data format and a common way of indicating which code will execute next. A number of standards do this - platform ABIs, C calling conventions, LLVM/JVM/.NET bitcode, RPC frameworks like gRPC/Thrift/CapnProto/MessagePack/JSON-RPC/Avro - but they're all lower level than you would normally want to program in.
Projects like zproto [1], by using the "Universal Code Generator" GSL [2], have maybe already found the "common denominator" you are looking for.<p>[1] <a href="https://github.com/zeromq/zproto" rel="nofollow">https://github.com/zeromq/zproto</a><p>[2] <a href="https://github.com/imatix/gsl" rel="nofollow">https://github.com/imatix/gsl</a>
I suggested something similar to this a while back:
<a href="http://www.halfbakery.com/idea/Tech_20Spec_20Plugins" rel="nofollow">http://www.halfbakery.com/idea/Tech_20Spec_20Plugins</a>
Here's a crazy thought: we already have a common denominator -- IPC.<p>You <i>can</i> write part of your program in Java and other part of it in Python. But the cost of transmitting messages is considered too high most of the time.