From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: Nicolas Neuss Newsgroups: gmane.lisp.guile.devel Subject: Re: Roadmap and goals? Date: 19 Apr 2002 10:38:06 +0200 Sender: guile-devel-admin@gnu.org Message-ID: <87sn5sxevl.fsf@ortler.iwr.uni-heidelberg.de> References: <3CBD68DB.2CC96A4F@staff.ttu.ee> NNTP-Posting-Host: localhost.gmane.org X-Trace: main.gmane.org 1019208206 3827 127.0.0.1 (19 Apr 2002 09:23:26 GMT) X-Complaints-To: usenet@main.gmane.org NNTP-Posting-Date: Fri, 19 Apr 2002 09:23:26 +0000 (UTC) Cc: guile-devel@gnu.org Return-path: Original-Received: from hermes.netfonds.no ([195.204.10.138]) by main.gmane.org with esmtp (Exim 3.33 #1 (Debian)) id 16yUc1-0000gH-04 for ; Fri, 19 Apr 2002 11:23:26 +0200 Original-Received: from fencepost.gnu.org (fencepost.gnu.org [199.232.76.164]) by hermes.netfonds.no (8.10.1/8.9.3) with ESMTP id g3J8dMf11213 for ; Fri, 19 Apr 2002 10:39:23 +0200 (CEST) Original-Received: from localhost ([127.0.0.1] helo=fencepost.gnu.org) by fencepost.gnu.org with esmtp (Exim 3.34 #1 (Debian)) id 16yTv8-0002R4-00; Fri, 19 Apr 2002 04:39:06 -0400 Original-Received: from iwr1.iwr.uni-heidelberg.de ([129.206.104.40]) by fencepost.gnu.org with esmtp (Exim 3.34 #1 (Debian)) id 16yTuG-0002Jg-00 for ; Fri, 19 Apr 2002 04:38:12 -0400 Original-Received: from ortler.iwr.uni-heidelberg.de (ortler.iwr.uni-heidelberg.de [129.206.120.136]) by iwr1.iwr.uni-heidelberg.de (8.11.1/8.11.1) with ESMTP id g3J8cAJ16021; Fri, 19 Apr 2002 10:38:10 +0200 (MET DST) Original-Received: (from neuss@localhost) by ortler.iwr.uni-heidelberg.de (SGI-8.9.3/8.9.3) id KAA68195; Fri, 19 Apr 2002 10:38:07 +0200 (METDST) Original-To: Tanel Tammet In-Reply-To: Tanel Tammet's message of "Wed, 17 Apr 2002 15:21:47 +0300" Original-Lines: 158 X-Mailer: Gnus v5.7/Emacs 20.7 Errors-To: guile-devel-admin@gnu.org X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.0.9 Precedence: bulk List-Help: List-Post: List-Subscribe: , List-Id: Developers list for Guile, the GNU extensibility library List-Unsubscribe: , List-Archive: Xref: main.gmane.org gmane.lisp.guile.devel:409 X-Report-Spam: http://spam.gmane.org/gmane.lisp.guile.devel:409 Dear Guilers. Motivated by the recent message from Tanel Tammet on the guile-devel mailing list (and the answers, which are IMO unsatisfactory), I want to present also my point of view on Guile. First, let me tell a little bit of my own history. I was a C programmer who searched an extension language for an application. First, I thought about using Elisp (having immediately an integration with the editor). Thus I wrote to Stallman and asked him about this, and, of course, he suggested Guile. I came to Guile in 1998. Maintainer was Jim Blandy at that time. Somewhat later he gave up, was followed by Maciej Stachowiak, who was joined by other developers (Mikael Djurfeldt, Michael Livshin, and Marius Vollmer, if I remember correctly). Who is maintainer now? I don't know precisely, because I read the Guile mailing list only superficially since the year 2000. Now, what are Guile's goals? IMO, Guile arose from several ideas of RMS: the first that Lisp-like languages are best, the second that combining several languages (i.e. using extension languages as he did with Emacs) is the way to go, the third that Elisp should be replaced by Scheme, and the fourth that such software has to be under the GPL and maintained by the FSF. During the so-called TCL flamewar, a fifth idea was brought up, namely that the FSF extension language should emulate others. Unfortunately, all those goals are very questionable. First, non-lisp languages get more and more of Lisp's capabilities[1] and the advantage is not large any more, especially for the spartanic Scheme branch. Second, my guess is that most applications are written within one language, because maintaining the interface between two languages is a problem. Third, replacing Elisp with Common Lisp would probably be both easier and better (but is still difficult, see below). Fourth, more liberal licenses than the GPL (e.g. some BSD license) or GPLed software not maintained by the FSF is also a nice thing[2]. Fifth, emulating languages in an integrating way is easy to say, but difficult to work out (this is proved by Guile not emulating one single other language in a reasonable way). Where does Guile stand now? In my eyes, Guile is fighting on a lost position. I will elaborate a little bit on this in the following. First, there are several strong and healthy Schemes competing. I don't know about SCM and Bigloo which the previous poster suggested, but I know a little about PLT Scheme. This Scheme has an IDE making it work under Windows, Mac and Unix very nicely. And a lot of work is put into it from several people at several universities (Matthias Felleisen, Shriram Krishnamurti, ...). [One can look at this as unfair competition because Guile has no such direct university support. But that doesn't count, at least for me as a user.] Its license is even more liberal than the GPL, and therefore could be accepted IMO. Second, I have serious doubts that Scheme as a language succeeds (in spite of PLT Scheme). It is quite astonishing that at this time a language is propagated as the ultimate weapon, which has neither OO support nor modules/namespaces in a standardized way. It seems that the Scheme dogma of accepting only perfect solutions approaches now a boundary where only several 90% solutions are available, and thus cannot be extended further. Even inside the Lisp language family, Scheme looses against (ANSI) Common Lisp which supplies both a very strong OO system and packages in a standardized way. There are also good and free CL implementations, namely CLISP (GPL, only byte-compilation, very portable) and CMUCL (public domain, compilation to native code, less portable). [3] [Third, of course, it is questionable if Lisp itself will survive, because the Lisp family as a whole is attacked by other languages like Java, C++, ML, Smalltalk/Squeak, ... But there were Kassandras for Lisp all the time during its long life.] What should Guile do? In my opinion, there should be a drastic change in direction. First, of course, you should finish the current ?1.6? release as fast as possible. But then you should evaluate several other Scheme implementations, as well as CLISP and CMUCL. If it should turn out that Guile has enough merits (apart from the merit that it's the Scheme you know), fine, forget my words. If not, you should talk seriously to RMS. Because then it is time to rethink this project and take appropriate actions. These actions may go from joining with SCM on the one side[4] to shifting the whole project towards Common Lisp as extension language on the other side (leaving the domain "Scheme as an educational language" to PLT Scheme). Concerning Elisp replacement, it would make sense to drop Scheme in favor of CLISP, too. This would make the project much easier, because CL and Elisp are comparatively near (especially when you do (require 'cl) in Emacs:-). Further, there are Emacs-like editors written in CL, see Hemlock for CMUCL from which one could maybe take some code. Also, there may be CL people willing to help, even Erik Naggum (see footnote) once planned something like that. One should keep in mind, that it is still a hairy project[5]. But it could succeed, if Stallman pushed it. That's all I have to say. What concerns myself, I have switched to Common Lisp about two years ago. I guess, I'll drop out of the Guile mailing list soon. I want to thank the people that were and are on this list. I learned a lot of things, but I prefer another playground now. Goodbye, Nicolas. [1] see the web page of Paul Graham at [2] It seems that while the GNU system being under the GPL is certainly achievable, it does not really work that the FSF is the copyright hodler of all essential parts. This goal should be abandoned. [3] I do not mention GCL here, because it is not ANSI compliant, and appears not to be actively developed any more. It seems to be one of those projects where you have to tell people NOT to use the FSF version (similar to the Hurd kernel, and maybe Guile). [4] IMHO, it is a terrible nonsense that people work on so many Scheme implementations in parallel, only to feed the egos of their respective leaders. [5] See the articles on this topic at the Xemacs web site http://www.xemacs.org/Architecting-XEmacs/index.html . P.S.2: If some of you did not yet look at CL, you could start with reading comp.lang.lisp. [You will meet several other (former) Guilers there:-).] But when joining that newsgroup, please remember the following things: 1. It is about (Common) Lisp, not about Scheme. Scheme has an own newsgroup (comp.lang.scheme). 2. Many burning questions (why is () equal to #f?, why are there two namespaces?, replacing Elisp, ... and so on) have already been discussed, most of them several times. You can find such info in the FAQ or via Google group search . 3. There is a guy called Erik Naggum who is very rude. Nevertheless, he is one of the sharpest guy I know, and you do everyone a favor if you keep that in mind. Don't get into a struggle with him, those exchanges are extremely annoying. 4. As with every newsgroup or mailing list, you should read it for some time without posting. In parallel, you should read an introductory book (I'd recommend Graham's "ANSI Common Lisp"). And install the Common Lisp Hyperspec (because of this tremendous thing, documentation is not a problem with CL). P.S.2: I thought about sending this also to guile-user@gnu.org. I refrained from doing so, because Tamel did not do that, and because I do not want to be too destructive. But IMHO, also users should know about these problems in Guile's design. So, it remains for you maintainers to inform them... _______________________________________________ Guile-devel mailing list Guile-devel@gnu.org http://mail.gnu.org/mailman/listinfo/guile-devel