From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: rixed@happyleptic.org Newsgroups: gmane.lisp.guile.devel Subject: Re: Anything better for delayed lexical evaluation than (lambda () ...)? Date: Mon, 12 Dec 2011 21:39:08 +0100 Message-ID: <20111212203908.GC2686@yeeloong.happyleptic.org> References: <87liqtpsl9.fsf@fencepost.gnu.org> <874nxdwkbi.fsf@rapitore.luna> <87d3bvfo5d.fsf@fencepost.gnu.org> <871usaicvi.fsf@netris.org> <87mxaycmlx.fsf@fencepost.gnu.org> <87wra1hcek.fsf@netris.org> <87liqhbm3u.fsf@fencepost.gnu.org> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Trace: dough.gmane.org 1323722499 27972 80.91.229.12 (12 Dec 2011 20:41:39 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Mon, 12 Dec 2011 20:41:39 +0000 (UTC) To: guile-devel@gnu.org Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Mon Dec 12 21:41:36 2011 Return-path: Envelope-to: guile-devel@m.gmane.org Original-Received: from lists.gnu.org ([140.186.70.17]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1RaCgm-00048p-Se for guile-devel@m.gmane.org; Mon, 12 Dec 2011 21:41:33 +0100 Original-Received: from localhost ([::1]:42665 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RaCgm-0003bD-35 for guile-devel@m.gmane.org; Mon, 12 Dec 2011 15:41:32 -0500 Original-Received: from eggs.gnu.org ([140.186.70.92]:36580) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RaCgj-0003au-8F for guile-devel@gnu.org; Mon, 12 Dec 2011 15:41:30 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RaCgi-0004qK-3J for guile-devel@gnu.org; Mon, 12 Dec 2011 15:41:29 -0500 Original-Received: from smtp5-g21.free.fr ([212.27.42.5]:58479) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RaCgh-0004ni-E1 for guile-devel@gnu.org; Mon, 12 Dec 2011 15:41:28 -0500 Original-Received: from yeeloong (unknown [82.67.194.89]) by smtp5-g21.free.fr (Postfix) with SMTP id 28D54D48474 for ; Mon, 12 Dec 2011 21:41:13 +0100 (CET) Original-Received: by yeeloong (sSMTP sendmail emulation); Mon, 12 Dec 2011 21:39:08 +0100 Mail-Followup-To: rixed@happyleptic.org, guile-devel@gnu.org Content-Disposition: inline In-Reply-To: <87liqhbm3u.fsf@fencepost.gnu.org> User-Agent: Mutt/1.5.21 (2010-09-15) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 212.27.42.5 X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.14 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 Original-Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.devel:13040 Archived-At: > > and that other programs that use Guile for extension will run into > > similar difficulties, but as far as I can tell Lilypond is quite > > unique here. > > Because nobody else uses Guile for serious extensions. And not because > of its performance: that is _irrelevant_ for most extension purposes. > The performance angle is interesting when one uses Guile as a general > purpose _programming_ language. You are sacrificing your target > clientele here. Obviously Guile does not suffer from too many users right now, but stating that Lilypond is the only project using Guile seriously seams a little excessive. Be confident that I'm ashamed by my ignorance but I do not know how exactly Lilypond uses Guile (nor what Lilypond exactly does), but your description of it does sound like it's the only way to "extend" a program. You seams to view an extension language as a tool to extend a language, while many projects use guile merely to extend a program. So let me present you the view of the average Joe Schemer with regard to Guile as an extension language: For me, extending a program (supposedly written in some kind of low level language, let's say some kind of C) with Guile or any other higher level language, is the action of linking together the low level stuff and libguile in a way that some scheme programs can be run with easy access to the inner functionalities of the program, so that : - the poor maintainers of the old C-like program are not forced to code every trivia in C-like language - the poor users are given an easier way to configure and even program the old C dinosaur - if time permits, evolve from extending the C with Scheme to extending the Scheme with C, so that not only the C program can access all scheme facilities and libraries, but also all other programs can use the internal of the old C program (this being only possible if you have only one extension language) In that regard, having Guile being compiled to bytecode, to native, interpreted, JITed or whatever is irrelevant. Indeed, it's also quite irrelevant if it's scheme or anything else, but : - the more expressiveness we have the better - the faster the better - the more available front-end languages, the less frightened the users will be (if not less parentheses then at least at there usual locations...) In my experience these two elements played a great role in the acceptance of Guile (over Lua, mainly) as the extension language. I don't pretend you were wrong to use Guile as you did of course! My 2c, which is not a lot per line, just to let you know that some projects are indeed enjoying their migration from guile 1.8 to guile 2.