From mboxrd@z Thu Jan 1 00:00:00 1970 Path: main.gmane.org!not-for-mail From: Jeff Read Newsgroups: gmane.lisp.guile.devel Subject: Re: What is Guile? Date: Mon, 8 Sep 2003 20:33:19 -0400 Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Message-ID: <20030909003319.GC4490@strike.parodycheck.net> References: NNTP-Posting-Host: deer.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: sea.gmane.org 1063072481 14909 80.91.224.253 (9 Sep 2003 01:54:41 GMT) X-Complaints-To: usenet@sea.gmane.org NNTP-Posting-Date: Tue, 9 Sep 2003 01:54:41 +0000 (UTC) Cc: guile-devel@gnu.org Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Tue Sep 09 03:54:39 2003 Return-path: Original-Received: from monty-python.gnu.org ([199.232.76.173]) by deer.gmane.org with esmtp (Exim 3.35 #1 (Debian)) id 19wXiI-0002hs-00 for ; Tue, 09 Sep 2003 03:54:39 +0200 Original-Received: from localhost ([127.0.0.1] helo=monty-python.gnu.org) by monty-python.gnu.org with esmtp (Exim 4.22) id 19wXh0-0003GM-8N for guile-devel@m.gmane.org; Mon, 08 Sep 2003 21:53:18 -0400 Original-Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.22) id 19wWRe-0007wR-5H for guile-devel@gnu.org; Mon, 08 Sep 2003 20:33:22 -0400 Original-Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.22) id 19wWRX-0007rr-V8 for guile-devel@gnu.org; Mon, 08 Sep 2003 20:33:17 -0400 Original-Received: from [204.60.203.69] (helo=mta3.snet.net) by monty-python.gnu.org with esmtp (Exim 4.22) id 19wWRV-0007hI-EG for guile-devel@gnu.org; Mon, 08 Sep 2003 20:33:13 -0400 Original-Received: from strike.parodycheck.net (34.3.252.64.snet.net [64.252.3.34]) by mta3.snet.net (8.12.3/8.12.3/SNET-smtp-1.2/D-1.1.1.1/O-1.1.1.1) with ESMTP id h890Wiri014211; Mon, 8 Sep 2003 20:32:45 -0400 (EDT) Original-Received: from bitwize by strike.parodycheck.net with local (Exim 4.21) id 19wWRb-0001W9-JL; Mon, 08 Sep 2003 20:33:19 -0400 Original-To: Jonathan Bartlett Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4i X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.2 Precedence: list List-Id: Developers list for Guile, the GNU extensibility library List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: main.gmane.org gmane.lisp.guile.devel:2770 X-Report-Spam: http://spam.gmane.org/gmane.lisp.guile.devel:2770 On Mon, Sep 08, 2003 at 02:39:12PM -0700, Jonathan Bartlett wrote: > > The idea comes from Scheme itself - it doesn't really have a syntax. It's > just a raw parse tree with some primitives. Using a combination of > function definitions, macro definitions, etc., you can easily modify > scheme to work like any system you want. Then you just need a parser to > convert the raw code into a parse tree, and have your scheme interpretter > run your parse tree. > > Basically, what you would need is the following: > > a) a flag in Guile so that you could specify which parser / language > module to use > > b) the ability to create both macros and definitions within a closed > environment which can be applied to a list (i.e. parse tree - I believe > this is already there) > > c) an interface definition for parsers and language providers. Don't forget d) parsers and language modules for various languages. :) They probably have to be written in Scheme, and it seems that there are few people willing to do one, or at least, willing to stick to it long enough so that it's a recognizable form of the target language. Converting language X to Scheme, and then interpreting the Scheme is an interesting academic idea but if technology doesn't work for people then it doesn't work. Guile isn't the fastest Scheme interpreter in the world, and adding another layer of parsing and conversion will simply make things slower. If given the choice between a slow, subtly incompatible Perl substitute and Perl, most developers will simply embed Perl. Same goes for Python, or whatever other language you can think of. There's also the taste aversion to Scheme to overcome. GIMP appears to be migrating from Scheme to Perl as its embedded language of choice. Alternatively they will target JVM or MSIL bytecode. Making Guile compile to, say, the Parrot VM before execution and then writing compilers that do X-language->Scheme->Parrot, might be an interesting way to go. Nevertheless, there are numerous marketing hurdles to overcome, the public's taste aversion to Scheme being just one of them. The only way I see Guile becoming everybody's favorite multilingual embedded interpreter is if the FSF really put its weight behind it as The Official GNU Way To Go. That's how free software authors standardized on the creeping horror that is Autoconf (which I'm writing a replacement for (in Guile!)). :) -- Jeffrey T. Read "I fight not for me but the blind babe Justice!" --Galford _______________________________________________ Guile-devel mailing list Guile-devel@gnu.org http://mail.gnu.org/mailman/listinfo/guile-devel