all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: ludo@gnu.org (Ludovic Courtès)
To: emacs-devel@gnu.org
Subject: Re: guile and emacs and elisp, oh my!
Date: Wed, 21 Apr 2010 18:43:34 +0200	[thread overview]
Message-ID: <87ljcg4uyx.fsf@gnu.org> (raw)
In-Reply-To: <m3wrw1da4t.fsf@fleche.redhat.com> (Tom Tromey's message of "Tue,  20 Apr 2010 16:36:34 -0600")

[-- Attachment #1: Type: text/plain, Size: 2896 bytes --]

Hello Tom,

(My first post on this list, so I’m a bit impressed.  ;-))

I think this discussion should be framed in the larger context of the
GNU System.  Guile came into existence to “spread the Emacs nature” to
the rest of GNU, to paraphrase Andy[*].

The GNU System as I view it aims to liberate users in two ways:

  1. Legally, by using software licenses that guarantee the 4 freedoms.

  2. Technically, by providing extension points allowing users to easily
     adapt the system to their own needs.

The latter is paramount to the design of 3 key components of GNU:
the Hurd, Guile, and Emacs.

Guile is meant to be a powerful interface between users and the GNU
System, more powerful than a Bourne shell, and more moldable than a C
API.  It aims to be a substrate allowing system components to be glued
together to let new applications emerge.

Users should be able to take Emacs, GnuTLS, and Mailutils and have Gnus
benefit from what each component has to offer.  They should be able to
write GTK+/GNUstep GUIs that present Org-Mode files in a nice way, or
render them as PDF via GNU PDF.

All these GNU libraries, programs, and Emacs modes should be able to be
tightly integrated together, and this is where Guile comes in.

Part of this is already possible, but the interface between Emacs and
the rest of GNU remains disappointingly poor.

A few remarks:

Tom Tromey <tromey@redhat.com> writes:

> First, people have often discussed the desirability of one runtime to
> rule them all.  This has even been attempted -- Gnome floated a
> proposal, there is Parrot, even the JVM and .NET are getting in on it.

Guile isn’t aiming at support for tens of languages like Parrot.  Guile
is a Scheme implementation, first and foremost.

It has an elisp compiler and integrates well with elisp because elisp is
primordial as an extension language for GNU.  It also comes with a
compiler for ECMAScript, which turns out to have many features
comparable to Scheme and a surface syntax that some people prefer.

(It also has a Brainfuck front-end.  Imagine yourself extending Emacs in
Brainfuck, thank Guile!)

> Multiple languages equals chaos.

I don’t think it’s that clear cut.  Vim (heh...) supports several
extension languages, PLT Scheme implements multiple languages.

Emacs-on-Guile as I imagine it would be mainly about elisp and (to a
lesser extent) Scheme, though.

> * FFI, and dynamically loadable libraries.  This feature has come up and
>   been rejected several times for Emacs.

In practice D-BUS can be thought of as an FFI, not to mention the use of
special-purpose external programs such as ‘gnutls-cli’.

Thanks,
Ludo’.

[*] I recommend looking at or rather listening to Andy’s talk at
    Göteborg’s GHM, entitled “Guile, GNU, and You”:
    http://www.gnu.org/ghm/2009/ .

[-- Attachment #2: Type: application/pgp-signature, Size: 197 bytes --]

  parent reply	other threads:[~2010-04-21 16:43 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-04-14 20:18 guile and emacs and elisp, oh my! Andy Wingo
2010-04-15  8:38 ` christian.lynbech
2010-04-15  8:53 ` joakim
2010-04-15 17:34   ` Andy Wingo
2010-04-15 23:54   ` Ken Raeburn
2010-04-16  6:48     ` joakim
2010-04-16 17:05     ` Ken Raeburn
2010-04-16 17:16       ` Ken Raeburn
2010-04-16 18:23       ` Stefan Monnier
2010-04-20 22:36 ` Tom Tromey
2010-04-21  7:37   ` christian.lynbech
2010-04-21  9:27   ` David Engster
2010-04-21  9:49     ` David Kastrup
2010-04-21 11:04       ` Lennart Borgman
2010-04-21 11:58       ` David Engster
2010-04-21 12:22         ` David Kastrup
2010-04-21 16:43   ` Ludovic Courtès [this message]
2010-04-22  9:35   ` Andy Wingo
2010-04-22 15:14     ` Karl Fogel
2010-04-25 19:36       ` Tom Tromey
2010-04-23  2:00     ` Thomas Lord
2010-04-23  8:28       ` Andy Wingo
2010-04-23  9:17         ` Ludovic Courtès
2010-04-23 10:19         ` christian.lynbech
2010-04-23 11:28           ` Andy Wingo
2010-04-23 11:31             ` christian.lynbech
2010-04-23 13:10               ` Andy Wingo
2010-04-23 22:43         ` Thomas Lord
2010-04-24 11:05           ` Andy Wingo
2010-04-25  0:02             ` Thomas Lord
2010-04-25 16:54           ` Richard Stallman
2010-04-25 17:11             ` Andy Wingo

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87ljcg4uyx.fsf@gnu.org \
    --to=ludo@gnu.org \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.