Guile Mailing List Archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Bad news from the module/environment front

>>>>> "Ingo" == Ingo Hohmann <> writes:

    Ingo> Maybe this is true for standalone scripting, but when used as
    Ingo> an extension language for a project, it will more or less read
    Ingo> like

    Ingo> [1] runs fast [2] small memory footprint (unlike emacs) [3]
    Ingo> low startup overhead [4] well documented [5] easy to bolt into
    Ingo> your own code [6] completely bulletproof [7] easy to
    Ingo> understand the fundamental operation [8] easy to learn [9] can
    Ingo> be compiled [10] easy to bolt your own code into

Were this accurate none of Tcl, Python, *or* elisp would be used as
embedded languages.

Tcl, for example, is very slow.  Tcl8 is somewhat faster than Tcl7
'cause it no longer has to do all sorts of asinine conversions (or at
least does them once) to support the language model.  But people use it
nonetheless because it's Fast Enough; all the really important bits of
the app are written in C anyway and so Tcl's relative slowness isn't an

Python is rather slow, too, but that hasn't stopped people from using it
to great lengths because it is easy to migrate Python code from Python
to C as the need arises.

Elisp is *ridiculously* slow for a modern day Lisp, and is encumbered
with numerous warts like dynamic scoping, yet it is possibly the most
successful cross platform scripting language out there solely because
it's embedded in Emacs and people write neat stuff for it!  Web
browsers, news readers, spreadsheets... all this is written in Elisp.

Speed tends to be a red herring.  For most programs, Fast Enough is
better than really unbelievably fast.  Now, as it happens Guile's
startup time is notorious, and so it is not Fast Enough for that;
projects are underweigh to revamp the garbage collector, which seems to
be the big problem.

But thinking that speed speed speed is primary is nonsense.  I refuse to
use Perl as an embedded language 'cause it's painful to do, despite it
being quite a bit faster than, say, Python internally.  (There's also
the matter that I hate programming in Perl, but I'm ignoring that for
the moment)
Graham Hughes <>
GPG Fingerprint: 4FC5 80F0 63EB 00BE F438  E365 084B 4010 60BF 17D3
((lambda (x) (list x (list 'quote x)))
 '(lambda (x) (list x (list 'quote x))))

Guile Home | Main Index | Thread Index