[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Questions for a language designer

At 2:36 PM -0400 5/29/03, Michael St . Hippolyte wrote:
>On 2003.05.27 16:56 Jerry Jackson wrote:
>The finest programming is poetry, not prose.  A language has to have
>an internal harmony and a natural rhythm to be poetic.  Such coherence
>is never accidental; it must be supplied by the language designer.
>For the programmer, you want a language with as little friction as
>possible, where code flows freely and naturally.  Simplicity, symmetry
>and internal consistency all help.  A little harder to pin down but
>just as important is a language design that lends itself to conventions
>and idioms (the secret to C's success).
>For the reader (tester, maintainer, integrator, student), you want
>clarity and conciseness -- two properties often at odds with each other.
>A language which is intuitive, and thereby self-documenting,
>accomplishes both goals.  It seems to me that the only practical way 
>to achieve these things is
>to begin with a unified underlying vision -- a mental model or metaphor
>rich enough to suggest answers to almost all of the design questions.
>Best is to have both a model and a metaphor -- a conscious mental model
>to determine the broad structures and rules, and an intuitive metaphor
>or style to determine how those structures and rules get translated
>into concrete symbols and syntax.
>Of course most language designers do have mental models -- that's often
>why they design languages in the first place, so that they can talk
>about their mental models knowing that there's at least one language
>it makes sense in :)

Yes, I quite agree.  One reason I find C++ and Perl
surprising (to use) is that the mental model seems
incoherent to me.  What is also surprising is that
their bizarre mental models came from one person!