Tue Oct 27 11:16:52 CET 2009

Language oriented development

As expresses in [1]:

   ``As a result of my academic and professional training i have come
   to rely heavily on types as a development discipline. In fact, if i
   cannot devise a sensible type "algebra" for a given (application)
   domain then i feel i don't really have a good understanding of the
   domain. One way of seeing this from the Schemer point if view is
   that the deep sensibility embodied in the Sussman and Abelson book
   of designing a DSL to solve a problem is further refined by
   types. Types express an essential part of the grammar of that

A strange pattern emerges when you think of it in this way:

  1.  ML and its algebraic data types (ADT) designed as a meta
      language, a system to represent another formal language.

  2.  Haskell: Types and lambda calculus as the only vehicle for
      writing any kind of computer program.

  3.  Thinking about programming as writing a programming language for
      describing a problem.

It's so simple and straightforward.

[1] http://www.haskell.org/pipermail/haskell-cafe/2008-April/041239.html