[Python-ideas] A python bridge between versions

ian o ian.team.python at gmail.com
Sat Mar 1 06:53:13 CET 2014


Steven,
Great post.  Arguments can be enjoyed when people with differing views 
argue them well.
Let me try and put the counter case as well.

I have to start with the Elvis abducted by aliens just because it is such a 
great place to start.
I enjoyed your point. But let me counter by saying that the information 
that some people say 'Elvis was abducted by aliens' does not mean this is 
what actually happened, but it does tell us that some people believe this!  
And there is rather surprising information in the fact that 'some people 
believe Elvis was abducted by Aliens'.  Similarly I do not believe 'no-one 
is using python 3'.  I program in python3 (and wish i could for all 
programming).  But it is still interesting that people are saying it.

Other comments inline below:

I think that such a bridge will slow the migration of library modules, 
> since it reduces the need to migrate. As a library author, why should I 
> spend tens or hundreds of hours migrating my library to Python 3 when I 
> can spend 10 minutes adding a note to the library's website telling 
> people to use the bridge? 
>
> The problem with this suggestion is that it does nothing to encourage 
> library authors to migrate to 3, it simply enables them to delay 
> migrating even longer, possibly for so long that they lose interest 
> altogether. 
>
> I suggest the counter point here is to consider life a library developer.  
Which motivates you: that fact that people using your library all program 
in python3, or hearing that all your users program in python2?  
  

> That's library authors. How about the developers who use those 
> libraries? 
>
> Right now, there is some motivation for people to move to 3: cool new 
> features, and getting cooler by the year. With this suggested bridge, 
> they can migrate to 3 while still remaining dependent on 2. This might 
> seem like a win if you only focus on the short term uptake of 3, but it 
> misses the fact that they're still dependent on 2. They've now *trebled* 
> the number of language dependencies, from Python only to two versions of 
> Python plus the bridge software. 
>
> Are you assuming that it will always be either a) all dependencies require 
python2 
or b) all dependencies are available in python 3.   Rather than c) some 
dependencies are available in python3 but the python3 version cannot be 
used because I am being held back to python2 by some other critical 
dependencies.
For the projects i work on, it is c).  It is not like there has been no 
success getting packages to migrate.  The problem is that an entire project 
is held back by one single dependency.

And for us we would wear some pain right now and make that move.  Most of 
the project doesn't have tow steps and can be moved immediately. If a 
bridge is offered, it would not be a great idea to force everyone to use 
it.  If EVERY imported module is still in python2 then I suggest it is too 
early to move.  Demonstrably, some people like the idea, and I suggest it 
would be interesting to discover how many.  There may be cases where it is 
not the right choice because too many dependencies are only available in 
python3 , but alone that does not mean the choice should not be offered.  
Personally I beleive that now many dependencies can be found in python3, 
hence the frustration of having to wait until every single one moves seems 
unfortunate.

Having spent the time and effort to migrate to 3, in a few years they'll 
> have to go through the same pain again to get rid of the dependency on 2 
> and the bridge. Nobody will want to do that. The pressure on the core 
> developers to keep supporting 2 forever will increase, not decrease. 
>
> I cannot see that getting rid of the bridge would be that difficult, 
particularly if it is not for many modules.   The real pain is living in 
world where there is so much holding everything back to the older version.  
Again, let me declare the self interest here.  We have development teams 
and projects we wish to move to python3.  A bridge like this would allow us 
to move now, and that would allow pressure on the module providers.  
Stopping a step like this on the basis it stops people like us moving to 
python3 just seems counter productive if the goal is to move to python3.  

>
> > This is an important debate to have.  I suggest if the answer to 'can a 
> > specification be created that will significantly accelerate migration?', 
> > then it is worth the effort to deliver this. 
>
> I think you are making a classic mistake of technically-minded people: 
> looking for a technical solution to a social problem. 
>
> The problem with Python 3 uptake is not a technical problem, or at least 
> not *only* a technical problem. It is mostly a social problem: the costs 
> of migrating are greater than the benefits. Python 3 is great, but for 
> most people Python 2 does the job. 
>
> I am a person experiencing the problem.  And our experience is that our 
core developers use code supplied by a third party who does not produce a 
python3 version. So the core has to be done in python2.  The code produced 
by these core developers is then supplied to other companies - forcing them 
to stay in python2.  It is dependency hell.  One module anywhere down the 
chain that cannot be moved and the whole project is forced to stay 
python2.   
 

> Another social problem is that the minority of library authors who 
> haven't migrated haven't done so because they personally don't care 
> about Python 3, or they don't have the time or money to spend on it. 
> Adding a bridge doesn't suddenly give them more time or money. 
>

Agreed.  But in the real world, an example of a major dependency requiring 
python2, web2py,  states they will be motivated to python3 when the users 
of their framework move.   But this policy of forcing all dependencies to 
move before the end users move means this will never happen.  What it does 
mean is many of their customers can move.  And it is even possible for them 
to ask their holdout customers to either stay with the old version or move, 
since these customers are no longer held back by other dependencies.

For application developers, the social problem is less because of a few 

> libraries and more to do with the supported standard Python on their 
> system. That will change once Linux distros start providing 3 as their 
> standard system Python; out of the big distros, Fedora is about to do 
> so, so things will start changing soon. 
>
> But perhaps the biggest reason for slow uptake of Python 3 with existing 
> projects is that nobody wants to spend money just to migrate to 3 for 
> the sake of migrating to 3. "Written in Python 3" is not a selling 
> point. Even the availability of security updates is not much of a 
> selling point, although it will become more important when Python 2.7 is 
> end-of-lifed. The reality is that many apps work perfectly well now 
> using Python 2.7, or 2.6, or even 2.4, and they'll continue to work well 
> in five or ten years so there's no real need to update. At the last US 
> PyCon, there was even one fellow still using Python 1.5. It works, he 
> didn't need security updates, so why migrate? 
>
> Perhaps the biggest reason .....  Why not ask? Well, python.org conducted 
a survey as of January 2014 an answer given was that 60% of developers were 
held back from moving projects because of dependencies. This is a big 
number and it is not just guessing but real figures.

*This is not a problem to be solved.* It's okay for people to stick with 
> an old version of Python. There's no rule that says Python has failed if 
> some developers stick to old versions. 
>
> OK. So you are telling us forget moving our developers to python3 until 
every last dependency has moved. And we should also force the people who in 
turn use our code to stay with python2 and it is not a problem.

>
> > As things stand, the popularity of Python has dropped by most measures 
> > since the release of Python 3. Improve the language and lose market 
> share?   
> > I suggest that is all about the pain of the transition. 
>
> That sounds remarkably like FUD to me. Where is your evidence that the 
> popularity of Python has fallen? 
>
> Personally, I think all the "language popularity" measures are dubious, 
> or at least need to be treated with considerable skepticism. Take this 
> one: 
>
> http://langpop.com/ 
>
> which lists BrainF--- in the 40 most popular languages. Sure it is. 
>
> The PyPL popularity index here: 
>
>
> https://sites.google.com/site/pydatalog/pypl/PyPL-PopularitY-of-Programming-Language<https://www.google.com/url?q=https%3A%2F%2Fsites.google.com%2Fsite%2Fpydatalog%2Fpypl%2FPyPL-PopularitY-of-Programming-Language&sa=D&sntz=1&usg=AFQjCNEJ__tv-fiB_BTXtt3qu6Y_UD49kg> 
>
> Thanks for that- useful link!  Please remember I am the converted, so it 
helps to have arguments to push back with when others push tiobe in front 
of me.
 

> shows Python as increasing in popularity. In contrast, TIOBE shows 
> Python as losing popularity -- but so did Java, PHP, C++ and Ruby, and 
> none of them have a major version change. (TIOBE also shows that despite 
> a large number, possibly majority, of VB 6 developers boycotting VB.Net, 
> VB.Net has just entered the top 10 most popular languages.) 
>
> And then there's CodeEval, which for the third year in a row has found 
> that Python is more popular than Java, C++, C, PHP and Javascript. In 
> fact more popular than Java, C and PHP *together*. 
>
> http://blog.codeeval.com/codeevalblog/2014<http://www.google.com/url?q=http%3A%2F%2Fblog.codeeval.com%2Fcodeevalblog%2F2014&sa=D&sntz=1&usg=AFQjCNEcIR2Zkg32DfKkhns8eq7KVgFJ1Q> 
>
> Perhaps overstated, but it helps to have sources like this.   It does say 
coding tests and challenges.  I live in a country where school children 
have one national coding contest/challenge, and it is in python.  (And in 
python 3, no dependencies :) )

Bless their little white socks, but methinks their methodology is 
> perhaps a tad flawed. 
>
> I think it is interesting to compare and contrast these different ways 
> of measuring popularity, but then I'm a statistics wonk and I find even 
> flawed statistics interesting. Remember that there is no one true 
> definition of popularity, even if there were there is no accurate way of 
> measuring it, and all of the sites that claim to do so are actually 
> measuring subtley different things. 
>
> Most importantly, chasing popularity for its own sake is a waste of 
> time. What makes Python Python is not just the syntax and std lib, but 
> also the culture -- we're neither the stultifying corporate culture of 
> "Java shops", nor the wild-west anything goes of cowboy PHP developers, 
> but something unique. (As are other languages, of course. Perl culture 
> is not Haskell culture is not Erlang culture.) In part, people take up 
> languages because they like the culture. Python will never attract the 
> corporate suits who like the Java philosophy, nor will it attract the 
> cowbody web developers who like the PHP way of doing things. Should we 
> try to ape PHP or Java to attract the cowboys or suits? Or should we 
> continue to make Python the best language that *we* like, regardless of 
> what other people prefer? 
>

All agreed on the culture. But i suggest this is the biggest point.  
Stopping measures like a bridge that would allow many more end users to 
code in python3 just seems a negative culture.  Effectively you are telling 
us that our team should not move to python3.
 

>
> Untimately, apart from winning pissing contests on Slashdot and Reddit, 
> what does it matter if Python is third most popular or ninth most 
> popular? Its not a popularity context where the winner takes all. 
> According to TIOBE, the most popular language, C, has less than 20% 
> share. If you think Python is a failure because it is in position 8, 
> what does that make Javascript in position 9? 
>
>
>
> > You do not have to search hard to find comments to the effect 'nobody is 
> > using python3'.   Or 'even if you use python 3, do not use the new 
> features 
> > since you need to ensure code is compatible with both versions'. 
>
> You don't have to search very hard to find comments that Elvis was 
> kidnapped by aliens. 
>
> https://duckduckgo.com/html/?q=elvis+kidnapped+by+aliens 
>
> A belief which has rather more going for it than either of the two 
> comments you list above, since there's a miniscule, microscopic chance 
> that perhaps Elvis *was* kidnapped by aliens, whereas I know for a fact 
> beyond any doubt that some people are using Python 3 and using the new 
> features. 
>
> I think I already covered this one.  Again the point is that some people 
say it. We both know it is not literally true.  If i did not program in 
python3 I would not bother posting suggestions to try and allow more 
programming in python3. 

Ian


>
> -- 
> Steven 
> _______________________________________________ 
> Python-ideas mailing list 
> Python... at python.org <javascript:> 
> https://mail.python.org/mailman/listinfo/python-ideas 
> Code of Conduct: http://python.org/psf/codeofconduct/ 
>

Steven,


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20140228/c5c0e15b/attachment-0001.html>


More information about the Python-ideas mailing list