1) Guile has no Global Interpreter Lock.
2) Guile is a scheme, so it is homo-iconic cf. https://en.wikipedia.org/wiki/Homoiconicity
3) Scheme (and lisp in general) are nice to write Domain Specific Languages.
4) Guile doesn't have a particular overhead for calling simple functions which makes it possibly as fast as C.
5) Guile has a very powerful object oriented programming framework beating by far Python and Ruby OO systems.
6) Guile is optimised for immutability which makes it for safer code.
7) Guile has Guix which has 'guix pack' command which is awesome cf. http://git.savannah.gnu.org/cgit/guix.git/tree/doc/guix.texi...
8) Guile has a lot of supporters cf. https://lists.gnu.org/mailman/listinfo/guile-user
9) Guile has awesome maintainers
Also, there is not a lot of packages. But programs written in Guile or using Guile tend to be of higher quality, cf. http://guildhall.hypermove.net/ and http://sph.mn/content/3e73
Honest question: How does that help nowadays? Certainly in the early 90s, browsing the GNU ftp site was terrific for discovery, and in the 80s, GNU tapes were even more powerful, but nowadays, GNU seems to be irrelevant for discovery. I can't think of a single software project in the last 20 years that I've discovered through its GNU association. Similarly, GNU used to be important as an infrastructure provider for open source software, but nowadays is one hosting option among many, and not a particularly attractive one.
GNU has never helped much in developing software, the individual projects always stood and fell with their maintainers. So it seems to me that nowadays people put their projects under the GNU umbrella mainly because they buy into a particular worldview of how software should be licensed.
So yes, being part of the GNU project is probably more of a cultural thing than an immediate practical advantage.
EDIT: Given that the original question appeared to imply "relevant as compared to other schemes"
Cf. is an abbreviation of "confer" which is Latin for compare and is used to introduce material that should be compared to assertions made previously.
Viz. is an abbreviation of "vidilcet" which is Latin for "namely" or "as follows" and is used to indicate a more complete statement or example of something that has just been asserted, whereas e.g. precedes examples that illustrate a point.
Viz. and cf. are often confused, as in this case.
If you have all these constraints:
- must be easy to use extensions languages functions from C, and the other way around
- must therefore be easy to convert values from the extension language to C, and the other way around
- must be possible to share this state in a multi thread program
- including, have several threads implemented in the extension language
- must be able to load code at runtime
Then guile is not only a good choice, it's sadly the only possible choice (or at least that was the case last time I checked few years ago). Many languages that claim to be good at extending C are lacking one of the above (usually the multithreading part; Lua, for instance, allows to start several VM in several threads, but they are isolated).
What's that algebraic syntax'ed language he mentions?
Personally, I find Lilypond much better than Sibelius and Finale. In the past I have developed several Scheme snippets that allow me to apply complex layouts to my scores.
[1] http://lilypond.org/ [2] http://lilypond.org/doc/v2.18/Documentation/extending/index
I like Emacs and all, but I'm really not sure why we'd be excited about Guile. Andy is a really awesome guy but he's the only one contributing to Guile, so there's no way it's ever going to compete with things like Chez or Racket (which is moving to Chez soon as well).
Are you saying this is inaccurate? Andy is far and away the top contributor, it's not even close. It really does seem to be a one man show.