[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Syntax design as a discipline (was Re: LFM + LFSP = LFE?)
Steve Dekorte wrote:
>
> On Saturday, June 14, 2003, at 02:50 PM, Michael Vanier wrote:
>
>> Everyone believes that their language is the easiest to use. Easiest to
>> learn is an orthogonal issue. I don't think you'll find many lisp
>> programmers who will argue that lisp is the easiest language to learn.
>
>
> I've run into a bunch that did. At least, they thought that LISP was
> only difficult to learn for people who had already been exposed to a
> different language.
There is a discipline dedicated to objective, statistical approaches to
the interfaces between computers and humans. When it comes to
programming languages we should not have to go around stating opinions
that are not based in scientific observation.
Here's an off-the-cuff suggestion. What if language design were split
into two totally different phases: the computer scientist and engineers
come up with new abstractions that they feel would have great benefits
in terms of performance, reliability, conciseness etc. Then they throw
the ideas over the wall to the syntax designers who figure out how to
present the idea to the masses through syntax, pedagogy etc.
Arguably this is already happening in the industry, just not
consciously. Lisp and Smalltalk are what the semantic desigers come up
with and Python, Java and Javascript are what the language designers
produce as a result. Perhaps the slow decline of C++ relative to Java
and C# stems from its inability to choose whether it wants to be
semantically innovative or popular.
But if the disciplines were widely agreed to be orthogonal then the
syntax design discipline would not be regarded as a derivative poor
cousin. A syntax designer would choose not to invent new semantic
abstractions for the same reason that a UI designer does not write code.
And just as a user interface designer tries not to treat themselves or
their friends as the typical user, a syntax designer would similarly try
not to do so. Like the UI designer, they would instead do tests and
studies, observe real users and take notes. If a concept like macros
could not be packaged so that the masses could benefit from it, the
syntax designer would treat it as a personal failure rather than just
saying: "I guess they aren't smart enough to get it."
Also, UI designers have a variety of approaches to the problem of
interfaces that need to work for simple things and naive users but also
scale up to complex things and expert users (i.e. LFE/LFSP). If you
present this sort of scalability as a product requirement to them, they
will usually find ways to make it possible.
Paul Prescod