DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH
 

(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