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