(guile.info.gz) Scheme vs C
Info Catalog
(guile.info.gz) Extending Dia
(guile.info.gz) Programming Overview
(guile.info.gz) Testbed Example
17.2 Why Scheme is More Hackable Than C
=======================================
Underlying Guile's value proposition is the assumption that programming
in a high level language, specifically Guile's implementation of Scheme,
is necessarily better in some way than programming in C. What do we
mean by this claim, and how can we be so sure?
One class of advantages applies not only to Scheme, but more
generally to any interpretable, high level, scripting language, such as
Emacs Lisp, Python, Ruby, or TeX's macro language. Common features of
all such languages, when compared to C, are that:
* They lend themselves to rapid and experimental development cycles,
owing usually to a combination of their interpretability and the
integrated development environment in which they are used.
* They free developers from some of the low level bookkeeping tasks
associated with C programming, notably memory management.
* They provide high level features such as container objects and
exception handling that make common programming tasks easier.
In the case of Scheme, particular features that make programming
easier -- and more fun! -- are its powerful mechanisms for abstracting
parts of programs (closures -- About Closure) and for iteration
( while do).
The evidence in support of this argument is empirical: the huge
amount of code that has been written in extension languages for
applications that support this mechanism. Most notable are extensions
written in Emacs Lisp for GNU Emacs, in TeX's macro language for TeX,
and in Script-Fu for the Gimp, but there is increasingly now a
significant code eco-system for Guile-based applications as well, such
as Lilypond and GnuCash. It is close to inconceivable that similar
amounts of functionality could have been added to these applications
just by writing new code in their base implementation languages.
Info Catalog
(guile.info.gz) Extending Dia
(guile.info.gz) Programming Overview
(guile.info.gz) Testbed Example
automatically generated byinfo2html