Python model [was: Who favors the current D1 situation?]

Leandro Lucarella llucax at gmail.com
Fri Mar 7 09:31:28 PST 2008


Bill Baxter, el  7 de marzo a las 14:29 me escribiste:
> Jesse Phillips wrote:
> 
> >I'm with Jason and Gregor on this one. Would it be nice to have these changes, yes, but I 
> >don't think that is the way to look at it. Even if D3 is completely compatibly with all 
> >D2 code, I wouldn't want it be in the D2 tree. Think about it, you don't get all the Java 
> >7 stuff in Java 6, just because you don't see it to want it. D2 is going to introduce a 
> >lot of breaking in old code, and headaches with const that many don't want. And I believe 
> >this is really where you're coming from? You like the lack of const, but want the other 
> >stuff? (not saying there is anything wrong with it. I'm kinda frightened to switch, 
> >eager, but frightened)
> 
> Maybe a better analogy is with Python 3K.  It's a major release with some new breaking 
> additions, and I seem to recall they're planning on having Python 2.x releases that 
> incorporate backported features from Python 3K.  Probably someone here is more up to date 
> on that situation than me.

Python has a well mature and proved development model. It has major
versions, where huge (a la D2.0) changes are possible, minor versions,
where new non-breaking (or small breaking changes[*]) are included (what
is lacking in D), and patchlevel version, where only bugfixes are included
(D1).

[*] This breaking changes are done in a progressive way, and it (usually)
    takes 3 minor Python versions to complete the changes:
    * First, the change is included *optionally*, the user can test it
      using import __future__[1] (this could be a compiler flag for D).
    * In the next minor version, the new feature is included by default,
      and if appropriate, "old" stuff is marked deprecated (issue a
      deprecation warning when used).
    * In the next minor version, the deprecated features are removed.

I think this gives to the language a great compromise between evolution
and stability. Of course there are several development releases for new
minor versions, they are not tagged as "stable" as soon as they get the
new features, so people can test it until they are considered stable.

I think D could implement this model without problems, and I don't see any
problems in the Python world with this, old minor version are not
maintained then they get old, so is not that much work.

[1] http://www.python.org/dev/peps/pep-0236/

-- 
Leandro Lucarella (luca) | Blog colectivo: http://www.mazziblog.com.ar/blog/
----------------------------------------------------------------------------
GPG Key: 5F5A8D05 (F8CD F9A7 BF00 5431 4145  104C 949E BFB6 5F5A 8D05)
----------------------------------------------------------------------------
In 1995 a Japanese trawler sank, because a Russian
cargo plane dropped a living cow from 30,000 feet



More information about the Digitalmars-d mailing list