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] |
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.