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] |
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.