I have to say I am on of those people who love backward compatibility. I 
actually come from a programming language that did exactly what the quote says. 
It was not a fun experience. Python 3 broke compatibility with python 2. Most 
of the libraries did ignore python 3 for quite some time and some still do. 
Actually if you google for "python 3" the second search result of it is the 
"python wall of shame" where you will find many of python libraries still stuck 
to python 2. The reason is that is a lot of work to rewrite parts of library to 
make it compatible with python 3. And note that python 3 has been around for 5 
years. And is most likely it will be another 5 till most major python libraries 
are finally ported to python 3.


http://python3wos.appspot.com/


Usually when I see "tragic fate" , "dead" , "declined"  etc mentioned in the 
same sentence with a programming language I am certain that it will mention 
some "big flaw" of the language and I am going to facepalm myself. In 99% of 
all case of "dead" languages it has nothing to do with the language itself and 
has everything to do with hype and lack of good marketing. 


I can tell you one thing, AFAIK the decision to brake compatibility with python 
is still a big reason why one should not use python and is considered one of 
the big flaw of python. I know that some people are in denial, and I agree that 
python has been improved but not without paying a big price as the "wall of 
shame" clearly shows. 


I can bring you another example, blenderpython, its the well known Blender 
python api of the well known open source 3d app. Well if you take a look at it 
you will find two things. a) blender 2.5 has been a rewrite which is a very 
good thing but that ment sacrificing many useful addons because not only the 
library changed but also they moved from python 2 to 3 and b) API keeps braking 
compatibility in almost every single version. The result is an army of addons 
that are left unmaintained because the author makes something but he is not 
able to maintain every second month because the developer decided to brake 
compatibility. Users ask for updates to the addons and usually developers 
search for another developer to maintain but most of those addons are left for 
dead. And that is thousands of lines of code gone to waste. Actually very few 
developers stick to blenderpython for this very reason. 


So no I have to disagree there, between choosing a better language or a useful 
library and code that works in long term, I choose the second. I am full on 
progress but I do find braking compatibility is just the easy , convinient 
solution that does not quite work well in practice . 



________________________________
 From: Fernando Olivero <[email protected]>
To: "[email protected]" <[email protected]> 
Sent: Tuesday, 11 December 2012, 10:36
Subject: [Pharo-project] About (backwards) Compatibility
 

Hi, i wanted to share an "old" quote which i find relevant to our community. 
Just replace FORTRAN's with loads of stuff we had in the bloated images in the 
past,  most of them useful to get were we are right now.
"FORTRAN's tragic fate has been its wide acceptance, mentally chaining 
thousands and thousands of programmers to our past mistakes. I pray daily that 
more of my fellow-programmers may find the means of freeing themselves from the 
curse of compatibility."


Dijkstra, The Humble Programmer, 1972

Reply via email to