This is the mail archive of the guile@cygnus.com mailing list for the guile project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Planned presentation at The Bazaar



I'm planning to submit the following presentation plan for The Bazaar
(http://www.thebazaar.org), and possibly other free software type
conferences coming up. If anyone has comments on the abstract or would
like to join me in writing the paper and doing the presentation,
please let me know. I'd be especially interested in being joined by
other Guile app developers, so they can add their perspective on using
Guile,


Title: Extending Applications with Guile
Presenters: Maciej Stachowiak

Contact Address:
Maciej Stachowiak
6 Bristol Street
Cambridge, MA 02141

Phone: (work #) (508) 480-0881 x5279
E-Mail: mstachow@mit.edu


Abstract:

A good extension language is a crucial component of any significant
application. While free availability of source code enables any user
to customize his copy of an application in theory, in practice,
modifying the source code of an application written in a langauge such
as C or C++ is an often excessive cost for a small change or addition.

Many applications provide at least a configuration language - a way of
setting certain options. An extension langauge is the logical next
step. It lets the user actually program aspects of an application's
functionality in a very high level language and extend aspects of its
behavior. In fact, for a very large application, it may be useful to
write only the very basic primitves in a low-level language like C and
write much of the actual functionality in the extension
language. Emacs has used this strategy with great success.

Guile is the GNU Project's extension language. It is based on Scheme
with numerous extensions, such as a module system and Posix
facilities. It features a very easy to use C language API, clear
semantics and good support for a wide variety of programming tasks. It
is designed to have the power of a full programming language while
providing the ease of use of a scripting/extension language.

This presentation will show how to add Guile extensibility to an
application, starting with the basics and moving on to more advanced
concepts like defining new data types, creating dynamically loadable
exception handling and how to leverage extensions like
guile-gtk. Examples will be used from a number of Guile-enabled
applications, including Scwm, SIAG, GnuCash and others. There will
also be some discussion of up and coming developments in the Guile
world.