What is Guile? What can it do for you?
Guile is a library designed to help programmers create flexible applications. Using Guile in an application allows programmers to write plug-ins, or modules (there are many names, but the concept is essentially the same) and users to use them to have an application fit their needs.
Extension languages allow users, programmers, and third-party developers to add features to a program without having to re-write the program as a whole, and it allows people extending a program to co-operate with each other, without having to expend any extra effort.
Guile is a programming language
Guile is an interpreter for the Scheme programming language, packaged as a library which can be incorporated into your programs. Your users have full access to the interpreter, so Guile itself can be extended, based on the needs of the user. The result is a scripting language tailored to your application.
Guile gives your programs more power
Using Guile with your program makes it more usable. Users don't need to learn the plumbing of your application to customize it; they just need to understand Guile, and the access you've provided. They can easily trade and share features by downloading and creating scripts, instead of trading complex patches and recompiling their applications. They don't need to coordinate with you, or anyone else.
The true cost of doing it yourself
When you get to the point in your project where you need a scripting language or a configuration file format and reader, the normal course of things is to say ``I'll just do something clean and simple.'' This is a good decision. Adding a full programming language is just a distraction from your project. But simple languages don't seem capable of staying simple. For example, early releases of PHP, a language for generating web pages dynamically, enjoyed its minute memory footprint and simplicity. However over time PHP has grown, with the latest releases giving PHP an object system and other features that have grown it to a much larger size. Compare Tcl from its 1988 origins with the modern, sizable language. Broadly, the same progression has occurred with Perl.
The point here is not to criticize these very successful and useful languages. The point is to demonstrate how commonly the simple, good scripting languages have turned into complex systems. This is not necessary, but it's a new problem that Guile attempts to address.
Guile has the fundamentals you need; you simply specialize it for
your application. It has arrays and lists; modules; objects; and
first-class functions. It has garbage collection --- which
makes using Guile especially simple. Using Guile, your application
has a full-featured scripting language right from the beginning, so you can focus your manpower on
the novel and attention-getting parts of your application.
The latest release of Guile is available via anonymous FTP, at http://ftp.gnu.org/pub/gnu/guile/. However, please consider also making a donation to the FSF. The software page has full details about mirror sites, etc.
Last modified: Wed Apr 3 15:39:29 PST 2002
Please send FSF & GNU inquiries & questions to firstname.lastname@example.org. There are also other ways to contact the FSF.
Please send comments on these web pages to email@example.com, send other questions to firstname.lastname@example.org.
Copyright (C) 2000,2001,2002,2005 Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA
Verbatim copying and distribution of this entire web page is permitted in any medium, provided this notice is preserved.
Updated: $Date: 2005/06/05 01:07:45 $ $Author: kryde $