3 ms·
It says that Guile is an implementation of Scheme. Would that make it appropriate for a trip through the SICP?
by jammygit 8y ago
It says that Guile is an implementation of Scheme. Would that make it appropriate for a trip through the SICP?
- equalunique 8y agoAttempts have been made. https://github.com/zv/SICP-guile https://github.com/zv/SICP-guile https://github.com/unindented/sicp-guile https://github.com/unindented/sicp-guile
- gnulinux 8y agoI'm a huge fan of Guile, I think it's the best Scheme implementation out there. Chez is faster and MIT is more standard but Guile offers really amazing extensibility tools I couldn't find anywhere else. It's very easy to embed C in scheme (ffi call) or embed scheme in C using Guile. It's like Lua but I personally prefer Guile as the C api is better imho although they're very comparable. Whenever I write a C program I make it scriptable using Guile. Imho a very essential tool of a C programmer. It supports other languages too but I never tried them (elisp and JavaScript) since I don't care for js and kinda dislike elisp (even though I'm an emacs user).
- bjoli 8y agoI think that the main difference compared to lua is in how you embed guile in multithreaded applications. In lua you use multiple interpreters and some sort of channels between while in Guile you use one guile instance and multiple threads and environments. I prefer the guile way (and the guile language), but I know many that don't.
- armitron 8y agoLua (LuaJIT really) is battle-tested to the extreme and utterly reliable at this point (it's used all over the place, including in the game industry). Guile is still very much focused on Linux and has well-documented issues on other platforms (including Windows and macOS) not to mention absence of developers and users. For all the talk about it being the "official" extensibility language of the GNU project, my understanding is that Guile has a minimal userbase. Finally, having used both Guile and LuaJIT, I have to say that LuaJIT FFI blows Guile FFI out of the water. It's so much better in every possible way. I haven't tested Guile 2.9.1 but I wouldn't think it comes close to LuaJIT in performance either. Embedding Lua or LuaJIT is a piece of cake too, since it has no dependencies whatsoever. Guile loses here too: $ port deps luajit luajit @2.0.5_0 has no dependencies. $ port deps guile Full Name: guile @2.2.4_0 Build Dependencies: gsed Library Dependencies: readline, gettext, libiconv, libtool, gmp, libunistring, boehmgc, libffi, ncurses, pkgconfig So, empirically speaking, I don't see Guile as an alternative to Lua. It simply can't compete.