Re: off-topic: open challenge to Christian Lynbeck
From: Christopher C. Stacy (cstacy_at_news.dtpq.com)
Date: 03/05/04
- Next message: Adam Warner: "Re: Redefining how a standard object prints"
- Previous message: Adam Warner: "Re: Redefining how a standard object prints"
- In reply to: Pascal Bourguignon: "Re: off-topic: open challenge to Christian Lynbeck"
- Next in thread: Rahul Jain: "Re: off-topic: open challenge to Christian Lynbeck"
- Reply: Rahul Jain: "Re: off-topic: open challenge to Christian Lynbeck"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: Fri, 05 Mar 2004 08:47:40 GMT
>>>>> On 05 Mar 2004 08:53:17 +0100, Pascal Bourguignon ("Pascal") writes:
Pascal> cstacy@news.dtpq.com (Christopher C. Stacy) writes:
>> >>>>> On 05 Mar 2004 07:46:47 +0100, Pascal Bourguignon ("Pascal") writes:
Pascal> For example, could they implement an "emacs"?
>>
>> I think that's called "GNU Emacs", just to cite one popular implementation.
Pascal> No. GNU Emacs has a lisp bytecode interpreter written in C,
Well, first of all, that's not correct. GNU Emacs is much more than a
Lisp bytecode interpreter written in C. The primary editing functions
and data structures of the editor application are implemented in C,
not Lisp. And Emacs Lisp is not capable of implementing those things
nor itself. Secondly, I am not sure I fully understand the point of
your challenge in such a way that this will not devolve into some
"Turing complete" argument.
Pascal> Anyway, the benchmark feature I alluded to was the ability for the
Pascal> user to dynamically redefine the behavior of the application by
Pascal> editing and integrating new functions at run-time. This is not
Pascal> something you usually see in programs written in C, Fortran or Java,
Pascal> at least until they apply Greenspun's Tenth Rule. (That' should be
Pascal> called a Law or even a _Principle_, it sounds so fundamental!).
This feature is common in a number of popular editors written in C.
You can use either their own C-like extension language interpreter,
or you can use an external language of your choice to compile your
extension as a DLL that speaks to the editor's extension API
(which is a more "open" mechanism than what GNU Emacs provides).
These are commercially popular editors (that I hear about from my
non-Emacs non-Unix friends all the time). I don't remember the names
of these products, they all sound alike to me..."Programmer's Perfect
Editor" or something. DOS and Windows. They also support key bindings,
TAGS, regexps, multiple language definable syntax coloring (C,Lisp,etc.),
"electric" language modes providing arglists, completion, IDE interfaces,
etc. etc. and also have some nice features that GNU Emacs is missing.
I mean, I'd rather write that stuff, and the extensions, in Lisp.
But you can't tell me that it's otherwise too hard to do it!
It is only epsilon more compelling than preferring to write
any arbitrary program in Lisp. For languages that include
the ability to dynamically load code (which is a lot of them
these days) that epsilon is a very small since the extension
language could also be the implementation language.
Historically, there have been many "ersatz" (non-extensible) Emacs
clones written in C or other languages, going back to at least 1980.
But I have also seen a number of editors, written in C, that were
dynamically extensible and that even implemented Emacs (the buffers,
windows, point-mark, key rebinding, command set, etc.) I think the
first real Emacs-in-C I used was in 1986 on an early Macintosh.
And of course don't forget that the original EMACS was in TECO,
showing that you don't need Lisp at all for this kind of thing.
It's just easier, according to RMS and some other Emacs implementors.
(And if they re-implement GNU Emacs in Guile, which is Scheme, would
that count as "Lisp"? Or do Common Lisper's also play the game of
"when it's positive we like say we're a Lisp but when we want to
distance ourselves we claim they're an Algol"?)
And didn't I hear something about an Emacs in JAVA, anyway?
- Next message: Adam Warner: "Re: Redefining how a standard object prints"
- Previous message: Adam Warner: "Re: Redefining how a standard object prints"
- In reply to: Pascal Bourguignon: "Re: off-topic: open challenge to Christian Lynbeck"
- Next in thread: Rahul Jain: "Re: off-topic: open challenge to Christian Lynbeck"
- Reply: Rahul Jain: "Re: off-topic: open challenge to Christian Lynbeck"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|