[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