[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