Chapter 1. Why Dylan ™ ?

Table of Contents

Dynamic vs. Static Languages
Functional Languages
Algebraic Infix Syntax
Object Orientation
Garbage Collection
Why Not Dylan?

What earthly reason could there be for learning yet another computer language? And why should that language be Dylan ™ ?

Dylan ™ has an interesting combination of features. It is a dynamic language, but is designed to perform nearly as well as a static language. It is a functional language—like Scheme or TCL—but uses an algebraic infix syntax similar to C's. Dylan ™ is object-oriented from the ground up, supports multiple inheritence and exceptions, implements multiple dispatch, and collects garbage.

Dynamic vs. Static Languages

Static languages need to know the type of every variable at compile time. Examples of static languages include C, Pascal, and Eiffel. Code written in static languages typically compiles efficiently, and strong type-checking at compile-time reduces the risk of errors.

Dynamic languages allow the programmer to create variables without explicitly specifying the type of information they contain. This simplifies prototyping and cleans up certain kinds of object oriented code. Typical dynamic languages include LISP, Perl, and SmallTalk.

Dylan ™ provides a good balance between the advantages of static and dynamic languages. The programmer may choose to specify or omit type declarations as desired. Code using explicit variable types can be compiled very efficiently, and type mismatch errors can be caught at compile time. Code omitting those type declarations gains the flexibility of a dynamic language.