6 ms·
Can anyone tell me if Guile is relevant? The list of example programs written in Guile is small. EmacsLisp and not Scheme seems to be the Gnu lisp of choice. Th
by didibus 10y ago
Can anyone tell me if Guile is relevant? The list of example programs written in Guile is small. EmacsLisp and not Scheme seems to be the Gnu lisp of choice. The VM is not the fastest and not the most portable. Is there any driver behind it?
- tathougies 10y agoYou usually don't write anything other than emacs extensions in emacs lisp -- it would be overkill to have to start emacs just to start an HTTP server. For these purposes, guile would be a better choice?
- tree_of_item 10y agoBesides being controlled by GNU, not really. Guilemacs is probably not going to happen either. 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).
- davexunit 10y agoAndy is not the only one contributing to Guile. He does a ton, for sure, but Guile is far from a one man show. There are 2 other maintainers and many other contributors.
- tree_of_item 10y agoTake a look at https://www.openhub.net/p/guile/contributors/summary https://www.openhub.net/p/guile/contributors/summary 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.
- davexunit 10y agoGo away, troll.
- tree_of_item 10y agoWhat? It's a serious question. It'd be great if a flagship GNU project was a serious competitor with other programming languages, but it honestly looks like Guile is being kept afloat by one or two people. Why is mentioning this trolling?
- davexunit 10y agoSorry, but it seemed like you were trolling. Guile is not a one man show. I have been active in the Guile community for 5 years now, so I know. I will admit that the bus factor in the compiler portion of the code is high, driven almost exclusively by Andy, but he has done a significant amount of writing about how the compiler works and even listed several other improvements that can be done in an effort to get more people involved. I have no experience with compiler hacking and yet I was able to implement an optimization and get it into the 2.2 release. The commit history alone isn't enough to understand the group of people that push Guile forward.
- killin_dan 10y agoShame you're being downvoted. Your work inspired me to learn to program with guile and SICK a few years ago. Thanks for everything
- tree_of_item 10y ago
- davexunit 10y agoYes, it is relevant. For example, Guile powers an entire GNU/Linux distribution[0] where Guile is used for the init system, initial ram disk, and package manager. [0] https://www.gnu.org/software/guix/ https://www.gnu.org/software/guix/
- flukus 10y agoThat looks cool and/or terrifying. How does it go usability wise?
- amirouche 10y agoIt's easier to declare packages recipes using guile than a mix of xml/bash/config files that other distro use.
- davexunit 10y agoIt's quite usable, but like anything could be better. I run GuixSD as my daily driver OS on a laptop and desktop and it's very comfortable for my needs. OS upgrades can be easily rolled back in case I screw something up so I feel more confident to experiment with my system.
- B___K 10y agoHow does it compare to say Arch?
- amirouche 10y ago0) Guile is a GNU project 1) Guile has no Global Interpreter Lock. 2) Guile is a scheme, so it is homo-iconic cf. https://en.wikipedia.org/wiki/Homoiconicity 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#n2392 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 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/ http://guildhall.hypermove.net/ and http://sph.mn/content/3e73 http://sph.mn/content/3e73
- peatmoss 10y agoMany of these would apply to most if not all scheme implementations though. I'm genuinely curious if there are use cases that set Guile apart from, say, Chez Scheme. EDIT: Given that the original question appeared to imply "relevant as compared to other schemes"
- didibus 10y agoI was implying that yes. Or even more so, relevant to other Lisps.
- milcron 10y agoWhat does "cf." mean?
- hencq 10y agoIt means compare. So typically you'd use it to give a contrasting example. In this case it seems to be (mis)used to mean 'see' though.
- rixed 10y agoIt is still very relevant as an extension language for C (and C-likes, I suppose). 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).
- NelsonMinar 10y agoBack in 1994 rms told us all we should not use Tcl, that GNU was building their own scripting language. True believers have been using Guile ever since. http://vanderburg.org/old_pages/Tcl/war/0000.html http://vanderburg.org/old_pages/Tcl/war/0000.html
- silky 10y ago> One will be Lisp-like, and one will have a more traditional algebraic syntax. What's that algebraic syntax'ed language he mentions?
- sirn 10y agoPart of Gnucash uses Guile, principally parts that related to reports. I'm Gnucash user myself, but don't know how large is Gnucash userbase though. Another example is GNU dmd, originally the init system for GNU/Hurd, is also written in Guile.
- ziotom78 10y agoAnother important example is Lilypond [1], a music engraving program. It requires the user to write scores in text files, which are then compiled to PDF/PS files. The core is implemented in C++, and Guile is used as an extension language [2]. 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/ http://lilypond.org/ [2] http://lilypond.org/doc/v2.18/Documentation/extending/index http://lilypond.org/doc/v2.18/Documentation/extending/index