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

Re: C# is not Dylan (was: Re: C# : The new language from M$)



Jason Trenouth <jason@harlequin.com> wrote:

  I appreciate that Lispers may dislike Dylan's compromises and miss
  some of the omitted features. Apart from the syntax, want do you
  think of the semantics and the feature set?

I'm tempted to say "irrelevant", because I don't use Dylan and
because it's unlikely that I ever will.  The syntax is largely
to blame for that, though not in the way most people reading this
probably expect.

(Actually, I think Dylan is a good language, and despite being a
"Lisper", I don't much mind the syntax, though it is a bit odd, as
"infix" syntaxes go.)

But ... things may have seemed different to people on the "inside",
working on Dylan design and implementation, but from my point of
view things went though something like the following phases:

 1. I start hearing about Dylan from other Lisp folk.  It sounds
    interesting.  Soon the first book appears, and at the Lisp and
    FP conference there's a lot of interest.  Dylan people are handing
    out copies.  The books says Dylan is a small dialect of Lisp,
    and all the code examples have a Lisp-like syntax.  Some
    implementations appear.

 2. It's emphasised that there are supposed to be two syntaxes.
    It sounds like implementations will support both, and all the
    implementations available to me support only the Lisp-like syntax.
    Indeed, we don't know what the other syntax is yet.

 3. We're told that there will be only one syntax.  We still don't
    know what it is.  Some Dylan people are by now treating "old
    Lispers" with considerable hostility.  Quoting the Dylan book
    on Dylan's relationship to Lisp gets one flamed, even though
    the the issue ought to be largely *semantic* and even though
    Dylan is very close to Scheme+a-CLOS-subset in "language
    space".  It seems like there's been an essentially political
    decision to distance Dylan from "Lisp".    

 4. Time passes.  We still don't know what the syntax is.
    I therefore can't write any Dylan programs.

 5. Eventually the new syntax appears.  There's an implementation
    from CMU (not their main effort) that supports the new syntax,
    so I try it out a bit, but it's not something I could use for
    my work.  There's much discussion of Dylan macros, with more
    hostility towards "Lisp".

 6. Time passes.  Eventually we find out about macros.  There
    still doesn't seem to be a serious Dylan implementation I
    can use.

 7. There's at least one serious implementation, but ...

Ok.  I put in the stuff about hostility because, even though it was
annoying, I still retained an interest in Dylan.  I was hoping Dylan
might save me from having to work in C++.

Unfortunately, so much time passed that Java came along, and Netscape
decided to support it, before I could ever seriously consider using
Dylan.

It's all very well to have a syntax that will appeal to "mainstream"
programmers, or whatever was supposed to happen, but all the syntax-
related stuff (which includes macros, because otherwise Dylan could
have followed Scheme) just took too long.

Dylan might be better than "Lisp" (by which people seemed to really
mean something more like "typical Common Lisp implementations") -
or not - it no longer matters.  I use Common Lisp when I can, Java
when I must, and Dylan never enters the picture.

-- jeff