Another suggestion of code I've played with before: http://IKVM.net to run Java (JVM bytecode) on C#, errr, .NET CIL.
The Language-Language Matrix
41–50 of 54 posts
Re: The Language-Language Matrix
#42Earlier quoted context omitted.
I haven't watched that part of the video yet, but I've always believed that Rich's biggest blind-spot seems to be about not realizing how Clojure's macro system can be used to rewrite regular code into FRP. Just have a look at what a macro like Javelin [1] already enables [2] and imagine how powerful that would be when combined with 'live' Datolog queries where the query results in the browser will stay up to date wi…
It's not classic FRP, but you're basically describing core.async. Have you looked at that at all?
While Core Async is about powerful non-threaded coordination of processes, Javelin is about creating self-updating non-cyclical function graphs.
Basically it's about automatically keeping a derived a view from a small set of data up to date when the source data changes.
It's the exact same thing a spreadsheet does for numbers, but becomes much more interesting when the derived view is a DOM tree derived from database+view state.
FWIW; I was inspired by the the work of Kenny Tilton (a.k.a. Smuglispweeny) and his Cells library and manifesto [1]. His work seems to be falling in disarray, but there's still some stuff up on the wayback machine [2][3]
[1] http://smuglispweeny.blogspot.nl/2008/02/cells-manifesto.htm...
[2] https://web.archive.org/web/20080925125040/http://www.tilton...
[3] https://web.archive.org/web/20080925113544/http://bc.tech.co...
Re: The Language-Language Matrix
#43It 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?
Re: The Language-Language Matrix
#44Re: The Language-Language Matrix
#45Take 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?
Then consider that, via Emscripten, any language which targets LLVM can be compiled to Javascript, so add every language with an LLVM frontend.
The consider that C has an LLVM frontend, and add every language which can be compiled to C.
Yes, indeed! We now live in a time where your Chicken Scheme codebase can be compiled to C, then compiled to Javascript, then intepreted in a Javascript interpreter that is being interpreted on a Java interpreter that is being interpreted on a .Net interpreter.
Re: The Language-Language Matrix
#46Earlier quoted context omitted.
> Many would also say that (1) and (2) make Clojure a joy to program in, ... Yep, the opposing view being that the lack of syntax that some see as a benefit actually makes it inexpressive, compared to a language with more syntax that expresses its ideas more like human language (e.g. Ruby, Python). > but I'll leave that to the reader to judge for themselves. Same! Not made my mind up yet, currently struggling through…
I recently came across this new Clojure book: http://www.braveclojure.com/ Seems like potentially an accessible and entertaining intro to the language. Perhaps it could be a good way to get your feet wet before diving into one of the larger tomes.
Re: The Language-Language Matrix
#47Earlier quoted context omitted.
Clojure is designed as a hosted languages from the start and intentionally exposes platform semantics for many operations, such as math, strings, etc. This makes porting easier, since one doesn't have to implement "compatibility layer" for all those operations. On a side note, Clojure concurrency primitives implement different ideas compared to FRP. A good source to learn about ideas behind Clojure concurrency is thi…
I haven't watched that part of the video yet, but I've always believed that Rich's biggest blind-spot seems to be about not realizing how Clojure's macro system can be used to rewrite regular code into FRP. Just have a look at what a macro like Javelin [1] already enables [2] and imagine how powerful that would be when combined with 'live' Datolog queries where the query results in the browser will stay up to date wi…
When asked what is the right direction he explicitly mentions that it's when all your data is immutable, which definitely applies to Javelin.
Re: The Language-Language Matrix
#48Isn'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.
Re: The Language-Language Matrix
#49There was a similar project mentioned here before showing transpiler chains, can't find it. Seems like it should be mentioned.
A quine perhaps? (Perhaps Endoh's crazy quine? https://github.com/mame/quine-relay )
Re: The Language-Language Matrix
#50Is 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).