Typing system vs. Java
aleaxit at yahoo.com
Tue Jul 31 07:29:06 EDT 2001
"Neil Hodgson" <nhodgson at bigpond.net.au> wrote in message
news:sLl97.75231$Xr6.349962 at news-server.bigpond.net.au...
> much. An ideal language would allow development of a feature to start as
> weakly typed and then be migrated to strongly typed when and if required.
I believe that Dylan is the only existing language that offers this
approach, in non-LISP-ish syntax style, and with both free and
commercial high-quality implementations widely available. See:
The Dylan books are also quite good, though very few in number,
due to Dylan never really making any significant widespread impact.
Reflecting on Dylan's utter lack of widespread impact tends to be
maddening to True Believers in Dylan or in the basic technological
choices it embodies (key one being "support both weak and strong
typing", a second crucial one being a highly sophisticated macro
system, a third very important one being multiple dispatch). In
my experience, most hardboiled Dylanistas have had to buy into a
"technical merit is never rewarded" mindset to avoid a painful
cognitive dissonance arising from this. I don't agree with such
a mindset, so my take on things is quite different -- at the very
least, though, one would have to agree that allowing both weak
and strong typing, with smooth migration between the two, is
not a very important feature in a language (although it DOES
sound lovely), given how little good (none) it did to Dylan:-(.
My basic take on things? That trying to design "one language
to bind them all" is a doomed pursuit; that multi-language
systems are here to stay, and to grow; trying to be all things
to all people makes a language too rich and complex, and the
complexity itself weighs it down. Maybe a language can afford
optional type-annotations and so on (I truly hope so, since
I'd love to have them), maybe it can afford multi-dispatching
(again, I sure HOPE it can!), maybe it can afford sophisticated
macro systems (and here, I start to have my doubts!), and so on,
and so forth... but striving to cover *all* the bases conflicts
inevitably with the SIMPLICITY that should be a very important
meta-goal of any language's design.
More information about the Python-list