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] |
>>>>> "Lalo" == Lalo Martins <lalo@webcom.com> writes: Lalo> I feel that the current discussion about defined? and Lalo> undefine is a sign of Guile's worst weakness; and that is, Lalo> IMHO, lack of direction. I think it appears that way because there are no killer apps out there that are forcing GUILE to adopt new features. Guile is lacking polish, not features. Consider where the current effort is going: Rewriting a working module system. Improving an existing garbage collector. Implementing a variant of an object system that already runs in GUILE (tinyclos). I'm glad these are all happening, but guile is a good extension language without any of them. Lalo> What ======== Lalo> The objective of Guile, as I see it, is to develop a Lalo> powerful extension language (emphasis: extension, not Lalo> scripting). Is good to know it's possible to create Lalo> all-Guile software, but this is not the primary goal. Anyone Lalo> disagrees? To my mind, any powerful extension language is almost by definition a powerful scripting language. Just to give a data point, in my work >>99.9% of the code is C or F77 (by line count), but I spend most of my time working in GUILE writing scripts that use the libraries. Lalo> How ======= Lalo> Even if we agree on above, this doesn't say a lot. There are Lalo> many concepts of "powerful" and many ways to get there. Lalo> These are the three major directions I see people trying to Lalo> pull Guile to: Lalo> 1: generic extension library/interpreter. This is the Lalo> direction we advertise the most, and the one chapioned by Lalo> projects like CTAX, tcl->scheme, Sonya, etc. If this is the Lalo> path we want to follow, the priority should be in constructs Lalo> to allow bizarre Perl and Python constructs (one example Lalo> that comes to mind: Python's "type" type) I'm dubious that this will work. GUILE can never hope to be as good an implementation of Perl as Perl. Most of the target languages have too many undocumented idiosyncrasy. Lalo> 2: a powerful Scheme implementation. Everytime I see "but Lalo> Scheme does this by..." or "the standard doesn't have this" Lalo> or "this is not schemely" I realize how powerful this Lalo> "party" is. I hope Guile won't try and compete with Scheme implementations that are purely Scheme. I think a good third is: 3) An extension language based heavily on Scheme, but with many powerful extentions. In my opinion, GUILE main strength is that it uses a "real language" as it's base. By this, I mean a language that was designed to solve general computing problems. This is in direct contrast with TCL and Perl which were designed to solve special purpose problems. I'm always glad when new features are implemented in a "schemely" way, and when GUILE doesn't duplicate features that are already part of Scheme in a slightly incompadible way. I hope that GUILE continues to follow rnrs. I hope that GUILE will not deviate too far from it's Scheme heritage. On the other hand, GUILE should not be fettered by the rather minimalistic scheme view of the world. Lalo> Most people could care less for Scheme. Lalo> Scheme isn't easy to learn... That's true, but I think a more correct statement is "Programing isn't easy to learn". Personally I found Scheme much easier to learn and use than Perl, and I've written far more Perl. Even after using it for a long time, I still need the manual on the desk to weave my way through Perl's web of inconsistencies. I find it such a nightmare that I dread starting new projects in Perl and I loath maintaining the once I work on. The trick is that I've never seen a good friendly introduction to Scheme. Everything I've seen starts out something like "Hey, we can write a neat recursive factorial function in 33 keystrokes." Yes I'm exagerating, but seriously scheme tutorials are not aimed at computer phobes. Compare that to the Perl book whose first chapter essentially says, "relax, it's not that hard" and then gives lots of seemingly simple examples. Lalo> Why must SIAG, one of the greatest Guile champions, have Lalo> Python and TCL interpreters? I'm not familiar with SIAG, but if SIAG wants to allow extensions in Python and TCL, why shouldn't it have those interpreters? Isn't it better to have the real languages available rather than some similar by subtly different knock-off? Lalo> Perl and TCL are the most used languages. Python is famed to Lalo> be the easiest to learn. Unless we have an Lalo> interpreter/library that can read all three of them, I don't Lalo> think people will care. I think it's a mistake to try and be all things to all people. I hope that GUILE focuses on being a killer scheme based extension language. Cheers, Clark