This is the mail archive of the guile@cygnus.com mailing list for the guile project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Just Another Guile Hacker



This is an interesting comparison of the communities.  Thanks for
posting it.

The Tcl vs. Scheme conflict at the genesis of Guile is very
unfortunate, and hope we will eventually put it behind us.  I think
the measure of a system is what people accomplish with it; by this
measure, Perl and Tcl are wildly successful.  Criticizing them on
grounds of linguistic ugliness is a very dangerous exercise, because
the reality suggests, rather dramatically, that whatever you're
complaining about isn't that important in practice.  :)

So I think being a Guile supporter requires a bit of humility.  We are
going to do a better job, and we are going to show that having a good
language does make a difference.  But we're not there yet; thus, the
need for humility.

R4RS Scheme is a beautiful formalism for talking about the essence of
computation, but it's missing everything you want for shell scripts.
We need to borrow the best ideas from Perl, Tcl, and everywhere else,
but put them in the context of a better language, and show how much
*more* useful they become.

Case in point: AWK's list of of patterns and actions looping over
input lines is clearly a useful approach.  But if you want to switch
to a separate list of patterns and actions for a few lines, you're
hosed.  You can't nest that control structure; it's only available at
the top of your program's parse tree.  Perl is cool because it
provides a very similar kind of structure, but lets you reuse it
anywhere you like.  I can write
	if (/pattern/) { action }
        elsif (/pattern/) { action }
anywhere I need to.

Guile should do the same kind of thing, but take advantage of the
quality of the notation to make structures that are even more reusable.