www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Breaking compatibilyt hurts

reply Jesse Phillips <jessekphillips+D gmail.com> writes:
This has come up as one issue for adoption to D. D2.x is on its way, unstable,
and D1.x is getting the ax. While Walter has said that the compiler will
continue to get support, no one in the community knows what the library support
will be like. I came across an article where even Python wasn't chosen for a
project because of the eminent release of Python 3. He also dismisses Ruby and
Clojure for other complaints people have expressed about D.

--  http://postabon.posterous.com/why-i-chose-common-lisp-over-python-ruby-and

I'm not claiming D is in the wrong in its chosen path. This shows that other
languages deal with similar issues, but is one thing for someone familiar with
a language to not choose it for a project than it is to get someone to look
into a new language.
Dec 02 2009
next sibling parent reply Walter Bright <newshound1 digitalmars.com> writes:
Jesse Phillips wrote:
 This has come up as one issue for adoption to D. D2.x is on its way,
 unstable, and D1.x is getting the ax. While Walter has said that the
 compiler will continue to get support, no one in the community knows
 what the library support will be like. I came across an article where
 even Python wasn't chosen for a project because of the eminent
 release of Python 3. He also dismisses Ruby and Clojure for other
 complaints people have expressed about D.
 
 --
 http://postabon.posterous.com/why-i-chose-common-lisp-over-python-ruby-and
 
 
 I'm not claiming D is in the wrong in its chosen path. This shows
 that other languages deal with similar issues, but is one thing for
 someone familiar with a language to not choose it for a project than
 it is to get someone to look into a new language.

One of the comments in there: "One of the greatest problems I found when trying Common Lisp was the large number of implementations and the disorganization of the library space. It is hard for a newcomer to decide which libraries are available, which are maintained, which are dead." You can't please everyone. I also think his criticism of Python is invalid. He's got just what he wants, Python 2.0, but complains it won't get improvements. Then he complains when it gets improvements in the form of Python 3.0. You just can't have it both ways.
Dec 02 2009
parent reply Jesse Phillips <jessekphillips+D gmail.com> writes:
Walter Bright wrote:

 One of the comments in there:

 "One of the greatest problems I found when trying Common Lisp was the 
 large number of implementations and the disorganization of the library 
 space. It is hard for a newcomer to decide which libraries are 
 available, which are maintained, which are dead."

 You can't please everyone.

 I also think his criticism of Python is invalid. He's got just what he 
 wants, Python 2.0, but complains it won't get improvements. Then he 
 complains when it gets improvements in the form of Python 3.0.

 You just can't have it both ways.

Well, part of the problem is that you can use all of those arguments against D (That includes the complaint about Lisp). Maybe not if you just look at D1 or just D2, and many times the complaints aren't as big an issue as they are made out to be once you start using the language. And yes, Lisp did seem an odd choice considering why he didn't choose the one of the other languages.
Dec 02 2009
parent Walter Bright <newshound1 digitalmars.com> writes:
Jesse Phillips wrote:
 Well, part of the problem is that you can use all of those arguments
 against D (That includes the complaint about Lisp). Maybe not if you
 just look at D1 or just D2, and many times the complaints aren't as
 big an issue as they are made out to be once you start using the
 language. And yes, Lisp did seem an odd choice considering why he didn't
 choose the one of the other languages.

My take on this is he wanted to use Lisp and went looking for a justification. I have long experience with people who say "I won't use your product because of X." If you then resolve X, they still won't use the product, because X was not the real reason. It's far more productive to work with people who already use the product and try to resolve issues that they are actually faced with.
Dec 02 2009
prev sibling next sibling parent reply torhu <no spam.invalid> writes:
On 03.12.2009 1:13, Jesse Phillips wrote:
 This has come up as one issue for adoption to D. D2.x is on its way, unstable,
and D1.x is getting the ax. While Walter has said that the compiler will
continue to get support, no one in the community knows what the library support
will be like. I came across an article where even Python wasn't chosen for a
project because of the eminent release of Python 3. He also dismisses Ruby and
Clojure for other complaints people have expressed about D.

 --  http://postabon.posterous.com/why-i-chose-common-lisp-over-python-ruby-and

Looks like that guy has a thing for Lisp, so he came up with a bunch of excuses why he shouldn't use anything else. The thing with D 1 is that it hasn't really taken off. So it's not unreasonable to sacrifice D 1 comaptibility if it can help make D 2 better, obviously in the hope that D 2 will take off. Note how the title of Andrei's book is NOT "The D 2.0 Programming Language."
Dec 02 2009
parent Don <nospam nospam.com> writes:
torhu wrote:
 On 03.12.2009 1:13, Jesse Phillips wrote:
 This has come up as one issue for adoption to D. D2.x is on its way, 
 unstable, and D1.x is getting the ax. While Walter has said that the 
 compiler will continue to get support, no one in the community knows 
 what the library support will be like. I came across an article where 
 even Python wasn't chosen for a project because of the eminent release 
 of Python 3. He also dismisses Ruby and Clojure for other complaints 
 people have expressed about D.

 --  
 http://postabon.posterous.com/why-i-chose-common-lisp-over-python-ruby-and 

Looks like that guy has a thing for Lisp, so he came up with a bunch of excuses why he shouldn't use anything else. The thing with D 1 is that it hasn't really taken off. So it's not unreasonable to sacrifice D 1 comaptibility if it can help make D 2 better, obviously in the hope that D 2 will take off. Note how the title of Andrei's book is NOT "The D 2.0 Programming Language."

D1 was a bit of a line in the sand, anyway. There was absolutely no effort put into making D1 stable before beginning D2. It's more of a stable snapshot.
Dec 03 2009
prev sibling next sibling parent Trass3r <mrmocool gmx.de> writes:
Jesse Phillips schrieb:
 I'm not claiming D is in the wrong in its chosen path. This shows that other
languages deal with similar issues, but is one thing for someone familiar with
a language to not choose it for a project than it is to get someone to look
into a new language.

From time to time you simply got to throw away compatibility to make progress, not only in programming languages. Just take the OpenGL 3.0 issue. Nothing has changed because of legacy.
Dec 03 2009
prev sibling next sibling parent reply Daniel de Kok <me nowhere.nospam> writes:
On 2009-12-03 01:13:13 +0100, Jesse Phillips <jessekphillips+D gmail.com> said:
 This has come up as one issue for adoption to D. D2.x is on its way, 
 unstable, and D1.x is getting the ax. While Walter has said that the 
 compiler will continue to get support, no one in the community knows 
 what the library support will be like. I came across an article where 
 even Python wasn't chosen for a project because of the eminent release 
 of Python 3. He also dismisses Ruby and Clojure for other complaints 
 people have expressed about D.
 
 --  http://postabon.posterous.com/why-i-chose-common-lisp-over-python-ruby-and

It's just one opinion. Others will use Python, because Guido van Rossum is not afraid to fix, change, and improve things, even in point releases. I'd rather see D follow the Python path in this respect after D2 is finished, than the C++ 'the world freezes' approach. At times, it is inconvenient, but it also keeps a language and its library vital. -- Daniel
Dec 04 2009
parent "Nick Sabalausky" <a a.a> writes:
"Leandro Lucarella" <llucax gmail.com> wrote in message 
news:20091204133103.GB27013 llucax.com.ar...
 Daniel de Kok, el  4 de diciembre a las 09:38 me escribiste:
 On 2009-12-03 01:13:13 +0100, Jesse Phillips <jessekphillips+D gmail.com> 
 said:
This has come up as one issue for adoption to D. D2.x is on its
way, unstable, and D1.x is getting the ax. While Walter has said
that the compiler will continue to get support, no one in the
community knows what the library support will be like. I came
across an article where even Python wasn't chosen for a project
because of the eminent release of Python 3. He also dismisses Ruby
and Clojure for other complaints people have expressed about D.

--  
http://postabon.posterous.com/why-i-chose-common-lisp-over-python-ruby-and

It's just one opinion. Others will use Python, because Guido van Rossum is not afraid to fix, change, and improve things, even in point releases. I'd rather see D follow the Python path in this respect after D2 is finished, than the C++ 'the world freezes' approach. At times, it is inconvenient, but it also keeps a language and its library vital.

But Python is extremely careful not to break backwards compatibility from one release to another. Breaking changes are usually introduced in 2 steps. In the first release with the new feature, the feature is optional and activated *only* explicitly through: from __future__ import feature If a feature is removed, it's deprecated (issuing a warning) in the first release. The second release with the change has the new/removed feature. That gives people time to fix their programs and try the new feature without breaking anything for several months (a minor Python version is released each ~9 months aprox.). I certainly hope D2 doesn't follow the D1 path (before D2 was forked), introducing new features each release without notice and breaking backwards compatibility.

If you're not ready for a breaking change, why not just stick with the older version until you're ready? Seems a lot simpler.
Dec 04 2009
prev sibling next sibling parent Leandro Lucarella <llucax gmail.com> writes:
Daniel de Kok, el  4 de diciembre a las 09:38 me escribiste:
 On 2009-12-03 01:13:13 +0100, Jesse Phillips <jessekphillips+D gmail.com> said:
This has come up as one issue for adoption to D. D2.x is on its
way, unstable, and D1.x is getting the ax. While Walter has said
that the compiler will continue to get support, no one in the
community knows what the library support will be like. I came
across an article where even Python wasn't chosen for a project
because of the eminent release of Python 3. He also dismisses Ruby
and Clojure for other complaints people have expressed about D.

--  http://postabon.posterous.com/why-i-chose-common-lisp-over-python-ruby-and

It's just one opinion. Others will use Python, because Guido van Rossum is not afraid to fix, change, and improve things, even in point releases. I'd rather see D follow the Python path in this respect after D2 is finished, than the C++ 'the world freezes' approach. At times, it is inconvenient, but it also keeps a language and its library vital.

But Python is extremely careful not to break backwards compatibility from one release to another. Breaking changes are usually introduced in 2 steps. In the first release with the new feature, the feature is optional and activated *only* explicitly through: from __future__ import feature If a feature is removed, it's deprecated (issuing a warning) in the first release. The second release with the change has the new/removed feature. That gives people time to fix their programs and try the new feature without breaking anything for several months (a minor Python version is released each ~9 months aprox.). I certainly hope D2 doesn't follow the D1 path (before D2 was forked), introducing new features each release without notice and breaking backwards compatibility. -- Leandro Lucarella (AKA luca) http://llucax.com.ar/ ---------------------------------------------------------------------- GPG Key: 5F5A8D05 (F8CD F9A7 BF00 5431 4145 104C 949E BFB6 5F5A 8D05) ---------------------------------------------------------------------- ELLA FUE INFIEL, PERO EX POLOLO PAGÓ -- TV CHILE
Dec 04 2009
prev sibling parent Leandro Lucarella <llucax gmail.com> writes:
Nick Sabalausky, el  4 de diciembre a las 10:03 me escribiste:
 The second release with the change has the new/removed feature. That gives
 people time to fix their programs and try the new feature without breaking
 anything for several months (a minor Python version is released each ~9
 months aprox.). I certainly hope D2 doesn't follow the D1 path (before D2
 was forked), introducing new features each release without notice and
 breaking backwards compatibility.

If you're not ready for a breaking change, why not just stick with the older version until you're ready? Seems a lot simpler.

Because nobody wants to keep maintaining really old versions. AFAIK Python only do bugfix releases for the latest 2 releases (with the exception of the new Python 3 major version, in this case I think more release are maintained). If you keep using an old Python version, you will never get a bugfix. -- Leandro Lucarella (AKA luca) http://llucax.com.ar/ ---------------------------------------------------------------------- GPG Key: 5F5A8D05 (F8CD F9A7 BF00 5431 4145 104C 949E BFB6 5F5A 8D05) ---------------------------------------------------------------------- Me encanta el éxito; por eso prefiero el estado de progreso constante, con la meta al frente y no atrás. -- Ricardo Vaporeso. Punta del Este, Enero de 1918.
Dec 04 2009