Dylan Programming

Dylan (Dynamic language) is a machine-compiled functional object-oriented language that uses multimethods (among other things) to simplify the programmers' tasks. It is available on Windows from Functional Objects and for the UNIX, Be and Mac platforms (in an experimental form and under active development) from Gwydion Dylan under the GNU license. Dylan programmers discuss issues in the comp.lang.dylan newsgroup.

What is programming in Dylan like? Dylan, like other object-oriented programming languages (OOPLs), has classes, objects, functions and data. But what separates Dylan from most other well-known OOPLs is that it combines covariant and contravariant inheritance. "Balderdash!" you exclaim; what does this mean? Dylan allows you to associate functions with classes without damaging the preexisting class interface. This allows you to modify behavior of built-in classes, of your own classes, and classes that you do not have the source code. In other words, Dylan incorporates the Visitor(331) design pattern directly and naturally.

Explanation

Traditional OOPLs have freed programmers from many constraints of procedural-style programming. But still, there's now a need for even more flexibility. Tim Sweeney, the developer of the Unreal engine, discusses software development and constraints up to now in this article. In it, he states that current languages make it very difficult to do something as simple as add two arrays to get a third one naturally. Dylan solves this. In fact, because Dylan is a functional OOPL, one can pass functions to functions to achieve results (I develop the example above in this email), which, among other things, aligns formula translation much more closely than most OOPLs.

News

.
DateItem
July 21, 2001Melange, the open-source Dylan interactor, has a new start and new home at http://melange.sourceforge.net. Melange is in a stable state, and is also looking for developers to bring it into compilance with Dylan as described in the Dylan Reference Manual.
May 30, 2001I've put a production-ready xml-parser written in native Dylan (using the Meta library for Dylan) on the Gwydion Dylan web site.
May 30, 2001The GwydionDylan group has just released v2.3.5. It includes a faster compiler and class slots. I've uploaded the Cygnus port to that site.

Projects

I am currently working on developing applications in Dylan and for (particularly) GwydionDylan. See my list of the projects for more information.

References/Tutorials

There are two good Dylan books available: Dylan Programming by Feinberg, Keene, Mathews, and Withington, and the Dylan Reference Manual by Shalit, Moon, and Starbuck. Both are available from Functional Objects. I maintain the FAQ, and also teach a course on it.

There are a couple of tutorials available: Getting started with Dylan by Eric Kidd, and an incomplete but interesting tutoral by Paul Haahr. Chris Double now has several pages devoted to Dylan, one of them has some example code of CORBA, OpenGL, and bitmaps.

Courses/On-site training

I teach Dylan at the Northern Virginia Community College, and am available to provide on-site training for effective use of objects in programming. You may examine courses, descriptions and outlines here. Please contact me at dauclair@hotmail.com to request on-site training.
1