114 lines
5.5 KiB
HTML
114 lines
5.5 KiB
HTML
<!DOCTYPE html>
|
|
<html>
|
|
<!-- Created by GNU Texinfo 7.1, https://www.gnu.org/software/texinfo/ -->
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
|
|
<!-- This manual documents Guile version 3.0.10.
|
|
|
|
Copyright (C) 1996-1997, 2000-2005, 2009-2023 Free Software Foundation,
|
|
Inc.
|
|
|
|
Copyright (C) 2021 Maxime Devos
|
|
|
|
Copyright (C) 2024 Tomas Volf
|
|
|
|
|
|
Permission is granted to copy, distribute and/or modify this document
|
|
under the terms of the GNU Free Documentation License, Version 1.3 or
|
|
any later version published by the Free Software Foundation; with no
|
|
Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A
|
|
copy of the license is included in the section entitled "GNU Free
|
|
Documentation License." -->
|
|
<title>Early Days (Guile Reference Manual)</title>
|
|
|
|
<meta name="description" content="Early Days (Guile Reference Manual)">
|
|
<meta name="keywords" content="Early Days (Guile Reference Manual)">
|
|
<meta name="resource-type" content="document">
|
|
<meta name="distribution" content="global">
|
|
<meta name="Generator" content=".texi2any-real">
|
|
<meta name="viewport" content="width=device-width,initial-scale=1">
|
|
|
|
<link href="index.html" rel="start" title="Top">
|
|
<link href="Concept-Index.html" rel="index" title="Concept Index">
|
|
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
|
|
<link href="History.html" rel="up" title="History">
|
|
<link href="A-Scheme-of-Many-Maintainers.html" rel="next" title="A Scheme of Many Maintainers">
|
|
<link href="The-Emacs-Thesis.html" rel="prev" title="The Emacs Thesis">
|
|
<style type="text/css">
|
|
<!--
|
|
a.copiable-link {visibility: hidden; text-decoration: none; line-height: 0em}
|
|
span:hover a.copiable-link {visibility: visible}
|
|
-->
|
|
</style>
|
|
<link rel="stylesheet" type="text/css" href="https://www.gnu.org/software/gnulib/manual.css">
|
|
|
|
|
|
</head>
|
|
|
|
<body lang="en">
|
|
<div class="subsection-level-extent" id="Early-Days">
|
|
<div class="nav-panel">
|
|
<p>
|
|
Next: <a href="A-Scheme-of-Many-Maintainers.html" accesskey="n" rel="next">A Scheme of Many Maintainers</a>, Previous: <a href="The-Emacs-Thesis.html" accesskey="p" rel="prev">The Emacs Thesis</a>, Up: <a href="History.html" accesskey="u" rel="up">A Brief History of Guile</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html" title="Index" rel="index">Index</a>]</p>
|
|
</div>
|
|
<hr>
|
|
<h4 class="subsection" id="Early-Days-1"><span>9.1.2 Early Days<a class="copiable-link" href="#Early-Days-1"> ¶</a></span></h4>
|
|
|
|
<p>Tom Lord was the first to fully concentrate his efforts on an
|
|
embeddable language runtime, which he named “GEL”, the GNU Extension
|
|
Language.
|
|
</p>
|
|
<p>GEL was the product of converting SCM, Aubrey Jaffer’s implementation
|
|
of Scheme, into something more appropriate to embedding as a library.
|
|
(SCM was itself based on an implementation by George Carrette, SIOD.)
|
|
</p>
|
|
<p>Lord managed to convince Richard Stallman to dub GEL the official
|
|
extension language for the GNU project. It was a natural fit, given
|
|
that Scheme was a cleaner, more modern Lisp than Emacs Lisp. Part of
|
|
the argument was that eventually when GEL became more capable, it
|
|
could gain the ability to execute other languages, especially Emacs
|
|
Lisp.
|
|
</p>
|
|
<p>Due to a naming conflict with another programming language, Lee Thomas
|
|
suggested a new name for GEL: “Guile”. Besides being a recursive
|
|
acronym, “Guile” craftily follows the naming of its ancestors,
|
|
“Planner”, “Conniver”, and “Schemer”. (The latter was truncated
|
|
to “Scheme” due to a 6-character file name limit on an old operating
|
|
system.) Finally, “Guile” suggests “guy-ell”, or “Guy L.
|
|
Steele”, who, together with Gerald Sussman, originally discovered
|
|
Scheme.
|
|
</p>
|
|
<p>Around the same time that Guile (then GEL) was readying itself for
|
|
public release, another extension language was gaining in popularity,
|
|
Tcl. Many developers found advantages in Tcl because of its shell-like
|
|
syntax and its well-developed graphical widgets library, Tk. Also, at
|
|
the time there was a large marketing push promoting Tcl as a
|
|
“universal extension language”.
|
|
</p>
|
|
<p>Richard Stallman, as the primary author of GNU Emacs, had a particular
|
|
vision of what extension languages should be, and Tcl did not seem to
|
|
him to be as capable as Emacs Lisp. He posted a criticism to the
|
|
comp.lang.tcl newsgroup, sparking one of the internet’s legendary
|
|
flamewars. As part of these discussions, retrospectively dubbed the
|
|
“Tcl Wars”, he announced the Free Software Foundation’s intent to
|
|
promote Guile as the extension language for the GNU project.
|
|
</p>
|
|
<p>It is a common misconception that Guile was created as a reaction to
|
|
Tcl. While it is true that the public announcement of Guile happened
|
|
at the same time as the “Tcl wars”, Guile was created out of a
|
|
condition that existed outside the polemic. Indeed, the need for a
|
|
powerful language to bridge the gap between extension of existing
|
|
applications and a more fully dynamic programming environment is still
|
|
with us today.
|
|
</p>
|
|
</div>
|
|
<hr>
|
|
<div class="nav-panel">
|
|
<p>
|
|
Next: <a href="A-Scheme-of-Many-Maintainers.html">A Scheme of Many Maintainers</a>, Previous: <a href="The-Emacs-Thesis.html">The Emacs Thesis</a>, Up: <a href="History.html">A Brief History of Guile</a> [<a href="index.html#SEC_Contents" title="Table of contents" rel="contents">Contents</a>][<a href="Concept-Index.html" title="Index" rel="index">Index</a>]</p>
|
|
</div>
|
|
|
|
|
|
|
|
</body>
|
|
</html>
|