the python road not taken

Mon 13 April 2015

Imagine you have a road that people have been driving on for years. This road is solid. Damage would be fixed quickly. Every now and then it would be upgraded by adding a lane or raising the speed limit. It was connected to many other roads.

At some point the owners of the road decided the ground it is on isn't good enough, and went on to create a fork in the road so they could start building a new one. This new road was worked on for years. It attracted so many workers to help build it in hopes of a better road. Many plans were made to help drivers move to this new and improved road. But this road came with a price: pretty much everyone would need to buy a brand new car to use the road. Not only that, when people came to see how this road is better, the only thing they saw is that the road is slightly wider and that the speed limit is a fraction higher. Another problem with the new road was that it wasn't as connected as the old road, so drivers would have no way of reaching some of their destinations. Over time connections were built, but often times driving on them resulted in fatalities.

People tried to tell the owners of the road that switching to the new road is too expensive with little upside, but the owners didn't listen and kept working on the new road, claiming that when enough time will pass everyone will switch to the new road.

Meanwhile the old road was still there with many drivers using it every single day. Holes in the road would still be fixed, but the owners ceased to improve it, now that they had built the new road.

Many attempts were made to lure drivers to use the new road but years later still the old road remained the most popular.

It is unclear what the drivers will do a few years from now. Maybe they'll all buy new cars and finally start using the new road? Maybe the new road will add enough lanes and use other sales tricks to attract the drivers? Time will tell.

In the mean time, drivers are losing faith and begin questioning the future of both roads and are looking at other roads in the hopes of a safer and more pleasant drive.


I used this analogy to describe the state of Python 2/3 to a friend who knows nothing about programming. Like many Python programmers, he too would continue using the old road.

As the sun sets on PyCon 2015 and another year has gone by without considerable progress towards adoption of Python 3, we are introduced to optional type hints in the language. Optional was repeated numerous times in GvR's keynote (as if he's already giving his defense against the naysayers). My concern with this whole thing isn't so much whether I'll use it or not, but rather that I'll end up reading a lot of code that does. I'm not sure I would call this 'beautiful'.

The end of the tunnel to Python 3 is (still) no where in sight.