standards: Source Language

1 
1 3.1 Which Languages to Use
1 ==========================
1 
1 When you want to use a language that gets compiled and runs at high
1 speed, the best language to use is C. C++ is ok too, but please don't
1 make heavy use of templates.  So is Java, if you compile it.
1 
1    When highest efficiency is not required, other languages commonly
1 used in the free software community, such as Lisp, Scheme, Python, Ruby,
1 and Java, are OK too.  Scheme, as implemented by GNU Guile, plays a
1 particular role in the GNU System: it is the preferred language to
1 extend programs written in C/C++, and also a fine language for a wide
1 range of applications.  The more GNU components use Guile and Scheme,
11 the more users are able to extend and combine them (⇒(guile)The
 Emacs Thesis).
1 
1    Many programs are designed to be extensible: they include an
1 interpreter for a language that is higher level than C. Often much of
1 the program is written in that language, too.  The Emacs editor
1 pioneered this technique.
1 
1    The standard extensibility interpreter for GNU software is Guile
1 (<http://www.gnu.org/software/guile/>), which implements the language
1 Scheme (an especially clean and simple dialect of Lisp).  Guile also
1 includes bindings for GTK+/GNOME, making it practical to write modern
1 GUI functionality within Guile.  We don't reject programs written in
1 other "scripting languages" such as Perl and Python, but using Guile is
1 the path that will lead to overall consistency of the GNU system.
1