1.1.4 What is Dylan? A language list description.

Based on
DYLAN- (Dynamic Languages) general-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).
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.
Functions can have both positional and keyword arguments.
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.
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.
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.
Compiles like C++, compiler optimizes out much of the object-dispatch and dynamic overhead that plagued SMALLTALK.