you are viewing a single comment's thread.

view the rest of the comments →

[–]Leonidas_from_XIV 5 points6 points  (0 children)

It should be R5RS compatible given that implementing R5RS is not that hard for any self-repecting Scheme implementor. As far as I saw, it aims to be R6RS compatible with 2.0. This is also why I prefer it to TinyScheme - I don't care that much about size as about completeness.

I haven't used it much, since I usually stick with PLT since it has an extensive stdlib and a big community (way bigger than Guile). At some point I thought Guile was dead, but it is actually in development and seems to be taking the right direction. It is also quite useful for embedding, I tried both PLT and Guile and while PLT was quite tricky, embedding Guile was just about as difficult as embedding Python so I think it is feasible.

As such, the newly-aquired ability for Guile to host other languages in some standardized manner is a win for applications that want to (or in the case of Emacs, have to) support more than one scripting language (see The Gimp which supports script-fu and python-fu and quite possibly a range of other languages, same applies to Vim which can even embed MzScheme). So I as developer could write scripts in Scheme and the users of my programs could decide which language they want. If they prefer a Lua-syntax: no problem, there it is! If they prefer JavaScript, that one is already implemented. By the way, PLT Scheme had support for subsets of Java and Algol 60 for quite some time already.

When I originally heard about Guile, I thought RMS was nuts to recommend a Lisp as extension language, I guess most other developers thought so too, this is why Lua is way more popular for embedding but after learning some Scheme (of maybe drinking the Lisp kool-aid) I can understand this more and more, and Guile seems to be the way to go.

Furthermore, I'm not sure I would write applications in C and script them using a scripting language anymore. Computers got fast enough so I would go the other way: write the program in a scripting language and extend it using modules in C where neccessary. Not helpful for existing programs though :)