Dylan(ID:1682/dyl004)


DYnamic LANguage. Advanced Technology Group East, Apple Computer. Apple Cambridge

Deneral-purpose, high-level programming language. includes garbage collection, type-safety, error recovery, a module system, and a programmers control of run-time extensibility of programs. Invented by Apple Computer. Uses one construct for simple purposes through multi-method dispatch.  DYLAN is dynamic, anything that is not flagged constant can be changed at run-time.  It's common for a DYLAN class to start off using generic (weak) types, and to later refine the types to be specialized (strong). Functions can have both positional and keyword arguments.  Compiles like C++, compiler optimizes out much of the object-dispatch and dynamic overhead that plagued SMALLTALK.  DYLAN classes are simple compared to JAVA or C++. Each class contains some number of slots, which hold objects. DYLAN's objects are alot like SMALLTALK's: both have languages with "objects all the way down", even a simple number is an instance of a class.  Doesn't enforce information hiding by class like JAVA or C++, it enforces it by module. Modules can import, export, and re-export names, and imported names can be mapped to different names to avoid names clashes.  Supports multiple inheritance without redundantacy, to encourage a mix-in style programming. Can descend from a base class more than once through multiple inheritance, but will still only contain one copy of the base class.  In DYLAN, methods don't belong to classes, they are basically functions, organized into generic functions. Proponents claim that this makes adding functionality much easier than having to modify classes or create subclasses to add new methods.

Apple stopped support for Dylan at Technology Release 1, and it was taken up by Harlequin. WHen Harlequin got out of the language business it went to Functional Objects




Structures:
Related languages
C++ => Dylan   Influence
CLOS => Dylan   Influence
Scheme => Dylan   Evolution of
Self => Dylan   Influence
Smalltalk => Dylan   Influence
Dylan => Brenda   Simplification of
Dylan => Functional Developer   Extension of
Dylan => Gwydion   Implementation
Dylan => Marlais   Implementation
Dylan => MINDY   Implementation
Dylan => Noodlle   Subset
Dylan => ScriptX   Influence
Dylan => Thomas   Compiled by

References:
  • "Dylan, an Object-Oriented Dynamic Language", Apple 1992. view details
  • Dylan Competitive Analysis draft 13-Feb-95, Stoney Ballard, Apple Computer view details External link: online copy
  • Shalit, A., D. Moon, et al. (1996). The Dylan reference manual : the definitive guide to the new object-oriented dynamic language. Reading, Mass., Addison-Wesley Developers Press. view details
  • Craig, I. (1997). Programming in Dylan. Berlin ; New York, Springer Verlag. view details
  • Feinberg, N. (1997). Dylan programming : an object-oriented and dynamic language. Reading, Mass., Addison-Wesley. view details
  • Phil Hughes "Guido van Rossum" Linux Journal Volume , Issue 68es (December 1999) view details Extract: Anecdote
    Phil: It seems like Python is starting to be taken really seriously in web development and so on. Is Python being taken seriously in academia? I guess I mean relative to Perl, because Perl isn't, as far as I can see.

    Guido: I would say Python is being taken a lot more seriously. There are language designers who don't approve of certain short cuts, or the fact that Python doesn't have static typing, or the fact that there are other languages out there that are as good as Python is, and again borrow all the good features from those languages.

    Phil: What languages?

    Guido: Some people think, for instance, that Dylan--which I think has a very academic flavor--is everything Python is plus so much more.

    Phil: Dylan? I've never heard of it.

    Guido: Well, that's exactly Dylan's problem. I don't know, but I think it started out as a LISP variant, with sort of an alternative syntax. The syntax was deliberately unLISPish in order not to scare off everyone who is not already brainwashed with LISP, because LISP has one of the biggest image problems of any programming language in the world.

    Phil: I had to learn LISP in college, and I can appreciate that! Keypunching parentheses is not my favorite thing.

    Guido: I like a lot of the concepts of LISP, but I strongly disagree with their approach to syntax, which happens to be the same approach Tcl has, more or less. Which is, there is no syntax, or it's so simple you have to do everything else outside the syntax.

    Phil: Is Tcl making it at all in academia?

    Guido: I am sort of removed from academia, so I don't quite know. I don't think so. I mean, one or two people I spoke to recently from academia had a very strong opinion that Python was a decent language and Perl and Tcl were not.

  • Library of Congress Subject Headings D95 view details
    Resources