From: Thomas Lord <lord@emf.net>
To: rms@gnu.org
Cc: tzz@lifelogs.com, emacs-devel@gnu.org
Subject: Re: Guile in Emacs (was: integer overflow)
Date: Mon, 12 Apr 2010 13:05:39 -0700 [thread overview]
Message-ID: <1271102739.6067.38.camel@dell-desktop.example.com> (raw)
In-Reply-To: <E1O1Imk-0002MF-4w@fencepost.gnu.org>
On Mon, 2010-04-12 at 08:30 -0400, Richard Stallman wrote:
> When I read about Sun's plan to make TCL the universal scripting
> language, I decided to oppose that. The plan I chose was to implement
> Scheme and support other scripting languages by translation into Scheme.
> Guile is the program I chose to adopt to do this with. That plan
> is what I am talking about.
>
> Whatever history that code had before its adoption for this plan
> is not what I am talking about.
Sure. In one sense it was just your use of the word "original"
as in "original goal" that I was objecting too.
Yet, there is another aspect of this which I think is
relevant to "Guile in Emacs" and to your notion of
supporting other scripting languages -- otherwise I
wouldn't harp on it:
In those early days of Guile, after your decision, those
of us closer to the project discussed at considerable
length how exactly to support Tcl, Emacs lisp, and
other languages. Not just how to be able to run programs
in those languages but how to integrate them into a
cohesive environment.
In each and every case we discovered devils in the details
and realized "Well, we can't." We could make a TCL-like
language that could run many simple TCL programs but that
would not be upward compatible - and have that TCL-like
language nicely integrated with the larger environment.
We could make an Emacs Lisp style of environment that
could run some Emacs Lisp code directly but that would
not be upwards compatible - and have that alternative Emacs
Lisp nicely integrated with the larger environment.
But we absolutely could not, for fundamental reasons,
directly support Tcl and Emacs Lisp with fidelity and
wind up with a sane programming environment.
We realized that pretty quickly and tried (but failed) to
convey to you this notion that we could not promise to
seamlessly integrate those other languages - but that we
could offer a reasonable compromise. It was always
an oversimplifying exaggeration to say that Guile would
support all of those other languages in any strong sense
of the word "support". We could offer alternative
syntaxes. We could offer environments with simplified
evaluation models and more flexible types. We could
give people the *feel* of Tcl or Python or Emacs Lisp
but there was no point in trying to faithfully reimplement
those languages in detail. We failed miserably at
communicating that distinction, apparently.
There was some momentary political convenience, back
then, around the burning question of which scripting
language would "win" and take over the world. Would
Tcl become the ubiquitous scripting language? Python?
It was an easy story to tell that Guile somehow transcended
the question for it could be both Tcl *and* Python (*and*
Scheme) depending solely on user preference. But it was
clear at the technical level that really Guile could only be
Scheme, pure and simple, although perhaps offering a
Tcl-*like* environment and a Python-*like* environment.
We - meaning you, me, and several others - were sloppy
back then about making that distinction clear.
If anything remains of the shared *technical* vision
of a complete GNU system that is lisp-centric with
many extensible, self-documenting programs -- and if
sentiment remains that Scheme is a fine choice for
extension language -- then I mainly hope that people
pursuing that vision today won't go down the same rat-hole
that caught us up back then. "I, alone, survive to tell
the tale...".
If you want a half-decent Scheme as your core
extension language then *make that work first* and don't
worry so much about compatibility with legacy code
in those other languages. There are no good answers
about how to cleanly integrate Emacs Lisp and other
languages with Scheme at that level. People have
thought about for, what, something over 15 years now
and the ones thinking about it today are getting
stuck going over the very same questions people got
stuck on 15 years ago.
Meanwhile, with all the (often interesting and skilled -
admirable) work that has gone down that rat-hole in
those years, a thoroughly Scheme-based but not upwards
compatible Emacs could have been casually produced by,
say, 10 or 12 years ago. Coulda' Shoulda' Woulda' but
Didn't, as the saying goes.
I just hope that the next 10 years of GNU generally
and Emacs specifically isn't going to be tied down
to the historic baggage of the "Tcl Wars" and the
misunderstandings it provoked.
Someone -- that is to say "someone" -- should just
rip Emacs Lisp out of the C part of GNU Emacs, bind
the best parts of that stuff to Guile, and start *there*.
It's not a small job but it's also not a "more than
a decade" job. It could have been started much more than
a decade ago. It'd be, in my view, a giant leap back
towards the vision of a GNU system that was shared
among several key GNU hackers back in the early 1990s
and earlier. And it'd be, in my view, technically sane
in comparison to some more popular alternatives like
trying to support Emacs Lisp in detail.
I'm done. I've said my piece.
-t
next prev parent reply other threads:[~2010-04-12 20:05 UTC|newest]
Thread overview: 127+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <4B8147A9.7030504@gmail.com>
[not found] ` <87ljemdzxo.fsf@stupidchicken.com>
2010-02-23 5:31 ` Next pretest, and branching plans Jason Rumney
2010-02-23 18:29 ` Eli Zaretskii
2010-02-23 21:12 ` Jason Rumney
2010-02-24 6:04 ` Richard Stallman
2010-02-24 13:34 ` Sean Sieger
2010-02-24 15:05 ` Davis Herring
2010-02-24 15:18 ` Sean Sieger
2010-02-24 14:05 ` Chong Yidong
2010-02-25 14:26 ` Richard Stallman
2010-02-26 18:03 ` manuals [was Re: Next pretest, and branching plans] Glenn Morris
2010-02-27 2:32 ` Richard Stallman
2010-02-27 16:52 ` Next pretest, and branching plans Johan Bockgård
2010-03-03 3:52 ` Glenn Morris
2010-03-05 0:31 ` Johan Bockgård
2010-03-05 19:50 ` integer overflow [was Re: Next pretest, and branching plans] Glenn Morris
2010-03-05 22:35 ` integer overflow Stefan Monnier
2010-03-06 2:55 ` Glenn Morris
2010-03-06 3:11 ` Chong Yidong
2010-03-06 7:03 ` Helmut Eller
2010-03-06 15:45 ` Stefan Monnier
2010-03-06 16:23 ` Davis Herring
2010-03-06 16:33 ` Drew Adams
2010-03-07 7:52 ` Richard Stallman
2010-03-07 16:06 ` David Kastrup
2010-03-07 17:18 ` Stephen J. Turnbull
2010-03-07 17:42 ` David Kastrup
2010-03-08 4:49 ` Jay Belanger
2010-03-08 8:04 ` Richard Stallman
2010-03-08 14:41 ` Guile in Emacs (was: integer overflow) Ted Zlatanov
2010-03-08 17:32 ` Guile in Emacs Ted Zlatanov
2010-03-08 18:42 ` Guile in Emacs (was: integer overflow) Chad Brown
2010-03-09 7:07 ` Ken Raeburn
2010-03-09 16:22 ` Guile in Emacs Ted Zlatanov
2010-03-10 8:07 ` Ken Raeburn
2010-03-10 13:58 ` David Kastrup
2010-03-09 3:19 ` Guile in Emacs (was: integer overflow) Richard Stallman
2010-04-11 23:33 ` Thomas Lord
2010-04-12 12:30 ` Richard Stallman
2010-04-12 20:05 ` Thomas Lord [this message]
2010-04-13 12:44 ` Guile in Emacs Bruce Stephens
2010-04-13 15:51 ` Thomas Lord
2010-04-13 16:07 ` Stefan Monnier
2010-04-13 18:56 ` Thomas Lord
2010-04-13 19:22 ` Christian Lynbech
2010-04-14 10:14 ` Bruce Stephens
2010-04-14 14:10 ` joakim
2010-04-13 19:13 ` Christian Lynbech
2010-04-14 1:47 ` Thomas Lord
2010-04-14 3:33 ` Christian Lynbech
2010-04-14 23:33 ` Richard Stallman
2010-04-14 5:02 ` Richard Stallman
2010-04-14 6:45 ` christian.lynbech
2010-04-14 19:07 ` Thomas Lord
2010-04-14 19:34 ` Bruce Stephens
2010-04-14 20:09 ` Jose A. Ortega Ruiz
2010-04-15 7:34 ` christian.lynbech
2010-04-14 23:33 ` Richard Stallman
2010-04-15 3:52 ` Drew Adams
2010-04-15 6:01 ` David Kastrup
2010-04-15 6:54 ` Drew Adams
2010-04-15 11:59 ` Jeff Clough
2010-04-15 12:49 ` christian.lynbech
2010-04-15 13:54 ` Jeff Clough
2010-04-15 14:03 ` Lennart Borgman
2010-04-15 16:13 ` Drew Adams
2010-04-16 13:48 ` Jeff Clough
2010-04-16 14:03 ` christian.lynbech
2010-04-16 14:25 ` Jeff Clough
2010-04-16 14:25 ` Drew Adams
2010-04-16 14:39 ` David Kastrup
2010-04-16 14:40 ` Jeff Clough
2010-04-16 8:27 ` christian.lynbech
2010-04-17 4:41 ` Richard Stallman
2010-04-19 7:52 ` christian.lynbech
2010-04-16 22:29 ` Emacs Info manuals (was: Guile in Emacs) Juri Linkov
2010-04-15 16:11 ` Guile in Emacs Drew Adams
2010-04-15 7:21 ` christian.lynbech
2010-04-15 7:36 ` David Kastrup
2010-04-15 8:34 ` christian.lynbech
2010-04-15 9:06 ` David Kastrup
2010-04-15 9:45 ` Helmut Eller
2010-04-15 10:39 ` christian.lynbech
2010-04-15 18:47 ` Richard Stallman
2010-04-15 22:42 ` Harald Hanche-Olsen
2010-04-15 22:50 ` Harald Hanche-Olsen
2010-04-17 4:40 ` Richard Stallman
2010-04-15 23:02 ` Helmut Eller
2010-04-17 4:40 ` Richard Stallman
2010-04-17 6:46 ` Helmut Eller
2010-04-17 19:55 ` Richard Stallman
2010-04-14 13:30 ` John Wiegley
2010-04-14 14:18 ` Helmut Eller
2010-04-14 15:40 ` Tom Tromey
2010-04-14 7:51 ` David Kastrup
2010-04-14 8:42 ` christian.lynbech
2010-04-14 9:55 ` immanuel litzroth
2010-04-14 10:28 ` christian.lynbech
2010-04-14 11:25 ` Stephen J. Turnbull
2010-04-14 12:26 ` christian.lynbech
2010-04-14 16:49 ` Ken Raeburn
2010-04-14 18:29 ` Tom Tromey
2010-04-14 20:02 ` Ken Raeburn
2010-04-14 11:23 ` Jeff Clough
2010-04-14 13:11 ` Stephen J. Turnbull
2010-04-14 13:11 ` Stephen Eilert
2010-04-14 13:49 ` Helmut Eller
2010-04-14 15:47 ` Tom Tromey
2010-04-14 16:41 ` Drew Adams
2010-04-14 20:10 ` David De La Harpe Golden
2010-04-15 10:38 ` Leo
2010-03-06 19:04 ` integer overflow Helmut Eller
2010-03-06 21:26 ` Stefan Monnier
2010-03-07 7:51 ` Richard Stallman
2010-03-07 19:05 ` Johan Bockgård
2010-03-06 20:35 ` Chong Yidong
2010-03-13 3:10 ` Next pretest, and branching plans Christoph
2010-03-13 7:42 ` Eli Zaretskii
2010-03-13 14:54 ` Christoph
2010-03-13 18:30 ` Stefan Monnier
2010-03-13 19:06 ` Eli Zaretskii
2010-03-14 2:38 ` Jason Rumney
2010-03-14 2:50 ` Christoph
2010-03-14 3:07 ` Jason Rumney
2010-03-14 17:55 ` Eli Zaretskii
2010-03-17 0:29 ` Christoph
2010-03-17 4:14 ` Eli Zaretskii
2010-03-17 12:44 ` Jason Rumney
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=1271102739.6067.38.camel@dell-desktop.example.com \
--to=lord@emf.net \
--cc=emacs-devel@gnu.org \
--cc=rms@gnu.org \
--cc=tzz@lifelogs.com \
/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.