4 ms·
I wish someone would take the compiler infrastructure of Go and would make native Clojure with it, with an easy access to C instead of Java. I need a good exit
by mhd 16y ago
I wish someone would take the compiler infrastructure of Go and would make native Clojure with it, with an easy access to C instead of Java. I need a good exit path from things like Java, not something to just ease the pain.
- bitdiddle 16y agoIf I recall correctly this was one of the goals of Guile, which is essentially Scheme, arguably cleaner than common lisp.
- mhd 16y agoI won't get into the CL vs. Scheme pissing contests, but if I remember correctly Guile was basically RMS' answer to Tcl, a language he didn't particularly like. And it was more intended to replace Emacs Lisp, while most of the infrastructure would still be written in C. Running on Hurd, of course.
- bitdiddle 16y agoThat sounds correct, but also embeddable and callable from C. It's unfortunate it didn't succeed in replacing elisp. Emacs would be even more awesome than it is today. I'd love to see the same thing done with Clojure and Go.
- mhd 16y agoI'd much rather have a proper, powerful Lisp than being forced to settle on alternate soft and hard layers. But the Common Lisp Emacs project never went anywhere.
- whyenot 16y agoFor anyone interest in Guile's history (and it is kind of interesting), it was born in the great Usenet Tcl War http://www.vanderburg.org/OldPages/Tcl/war/ http://www.vanderburg.org/OldPages/Tcl/war/ It was intended to be GNU's official extension language, but it has never really caught on. That's sort of a shame, because it's actually a pretty nifty scheme implementation.
- dmaclay 16y agoSomeone pretty much has, it's called chicken scheme.
- mhd 16y agoDid it get a native compiler all of a sudden? I thought it just translates into C.
- mark_l_watson 16y agoThat is a nice idea. Another way to reach the goal of an alternative native (non-JVM) Clojure would be to build something on top of Racket or Gambit-C Scheme. BTW, my favorite aspect of Clojure is the common "seq" API for lists, vectors, maps, trees, etc.
- mhd 16y agoI think if you would want a native, high-performing Clojure going the LLVM route would be a possible way. But I was specifically mentioning Go, because it's about as minimalitic as you can get right now, while still supporting a sufficiently large feature set (i.e. not as limited as TCC). A lot of that comes from its Plan 9 heritage, of course. The syntax ain't that grand, though. And it could have a better FFI. So, having that in one package would be really great for some Unix-y programming. Right now, without too much baggage. Basically the lispy answer to Ocaml. And then build some libraries on it that inherently take advantage of Clojure and don't just wrap existing things. Which probably would be similar to the way the node.js infrastructure is growing. It's a pipe dream, I know. The ability to use all that JVM enterprise hooplah is too important for most users. And its a pragmatic language, after all.
- jimbokun 16y agoSounds like you need to follow Rich Hickey's example and create the language you want to program in, as the scratcher for your itch doesn't yet exist. So, not a pipe dream so much as a lot of work to be done.
- silentbicycle 16y agoHave you ever looked into Lua? It's a nice language in its own right (somewhere between Python and Io), and it was designed primarily for use with C. Chicken Scheme is good, too.