State of Play

Leandro Lucarella llucax at gmail.com
Thu Mar 26 09:50:12 PDT 2009


Ary Borenszweig, el 26 de marzo a las 10:20 me escribiste:
> >Note the use of the word "language."
> >What you're referring to are bugs in the compiler.  It happens.
> >  -- Daniel
> 
> But ValieriM has a point. If I code, say, a library in D 1.041 only to
> find out that in a couple of months it won't compile anymore in D 1.045,
> that's not good at all. That's when someone sends a message to the
> newsgroups saying "I just downloaded library Foo, but it won't compile
> with D 1.045... is it abandoned?  Why isn't it maintained? D1 is
> broken". The point is, you shouldn't need to maintain libraries for D1
> anymore. Maybe the test suite for D1 should be bigger to cover more
> cases...

Another problem with D1 vs. D2 is nobody wants to start new software using
D1 when D2 is about to come and have breaking changes. Not trivial
breaking changes, but really base ones, a change in paradigm (D2 will be
a lot more oriented to concurrency, and a lot of idioms will change). You
probably have to start thinking in a different way to code with D2, at
least to take advantage of new features/paradigm.

I think this is something people see and why a lot of people see D1 as
a dead end. This doesn't happen with other language AFAIK (at least no
with Python wich is another moderately fast-evolving language that I use
often). You can move from Python 2 to Python 3 almost as smoothly as
moving from 2.5 to 2.6 (and that is *very* smooth). The difference with
D is Python 3 didn't introduce any paradigm change, it doesn't want to be
a revolutionary new language as D2 want.

I think this phrase should not be in the D homepage anymore:
"It seems to me that most of the "new" programming languages fall into one
of two categories: Those from academia with radical new paradigms and
those from large corporations with a focus on RAD and the web. Maybe it's
time for a new language born out of practical experience implementing
compilers." -- Michael

I think D now almost fit into the "Those from academia with radical new
paradigms" category =P

I think this wouldn't happen if D2 were focused on just adding small
features like the ones already added (like full closures, struct
improvements, common runtime with Tango, etc.) and AST macros for
example... =)

If you take small steps, you can evolve more smoothly (like Python) and
avoid this kind of huge gaps between language versions.

That's why I'd love to see some kind of D 1.1 (maybe LDC could be used to
make an "unofficial" D 1.1 language), with a few minor non-breaking new
features over D 1.0, then D 1.2 could introduce some more, and so on. This
way people can catch-up easly, with small simple iterations, and D1 wont
feel as a dead frozen language.

Just my 2¢

-- 
Leandro Lucarella (luca) | Blog colectivo: http://www.mazziblog.com.ar/blog/
----------------------------------------------------------------------------
GPG Key: 5F5A8D05 (F8CD F9A7 BF00 5431 4145  104C 949E BFB6 5F5A 8D05)
----------------------------------------------------------------------------



More information about the Digitalmars-d mailing list