Improving the Guile Ecosystem - System Crafters Live!


@daviwil , I found out what you are looking for in Arun Issac blog.

Arun Issac gave a talk about guix forge in Fosdem

Related links

I think I may have an idea why the Guile/Scheme ecosystem is in its current state. First let me describe the state as I see it. Unfortunately, most of the large publishing houses aren’t publishing books on Scheme or its derivatives; Github repos don’t indicate Scheme or its derivatives to be used in many projects. It does not have the “critical mass” to be growing development environment. This is EXTREMELY unfortunate.

While I’m sure there are many reasons, and to choose just one may be to over-simplify the matter, I think it starts at the BEGINNING. What does every non-Scheme type language begin by teaching you: how to print “Hello, World”. (This includes K&R C) What does every Scheme related book/class begin by teaching you: syntax. For example, page 7 of the Little Schemer:

What does car take as an argument? It takes any non-empty list

The world does not need any more greetings and salutations, however people learning the language need to see the function, or how the language can be used before they are dropped into the minutia of the programming language.

Just my $0.02 … (and yes, I realize I’m using USD as currency here). I welcome opposing arguments. But it seemed like David was looking for suggestions on how to improve the ecosystem in yesterday’s live broadcast. I thought, increasing the “critical mass” of developers might help.

Now back to banging my head against the wall on the current chapter’s Scheme homework.


1 Like

Thanks for creating the post for the stream! This is exactly the project I was thinking about, glad you linked it :star2:


This is a good point! How do you feel the Guile course fares on that front? I know that we do start pretty low level, but I hope it’s a bit more interesting that printing Hello, World. I appreciate the perspective!

1 Like

I’m SOOOOO glad you didn’t do any “Hello, World” projects.

As far as the class goes, on the “Plus” side the information on bindings, syntax and expressions is FANTASTIC. These are all aspects common to and necessary to any programming language and not something that someone who is self taught picks up on when learning Python/PHP/Javascript. When and if you learn them, you become a much more effective engineer. I had a professor in college who taught a course on compilers using Scheme much like you’re teaching it. He said thats the way its taught at MIT to first year students. They are expected to know how to program before they get there. (I always thought that was kinda harsh).

On the “Minus” side, it would really be helpful to see more of the input/output. For example, how do you call a procedure and return data from that procedure, how do you print output outside of the REPL. Thats kind of the “Hello, World” aspect and its probably the way a self-taught programmer thinks about how to interact with the language. Syntax and structure are great, but unless you can see how it effects the running program, its hard to get a real good feel for it. At least for me.

I read this review on Amazon for the book “The Little Learner: A Straight Line to Deep Learning”:

“Had to revise rating to one :star: from :star::star:… I’ll be returning this book. The book feels more like an intro to Scheme code which is a computer language from the 70’s that nobody uses in modern day applications. It would not be such a big deal if the author didn’t lean so much into Scheme code and its various ideologies to teach concepts. I bought the book to gain a better/richer understanding of Deep Learning. Not learn Scheme code which serves zero utility in 2023.”

Obviously, the reviewer is incorrect in many regards … but that’s what you need to look at when trying to increase interest in Scheme. Programs like Emacs (lisp being a great derivative of Scheme) certainly adds interest to the language. As a systems administrator, I can absolutely say distributions like GUIX are a fantastic way to increase interest.