Python is becoming the world’s most popular programming language
I started programming in python in 2010. It has been a good tool for solving a variety of problems.<p>I do have to wonder though. Is python popular right now because so many more people who have never programmed before are now starting to program?<p>I came from a biology background and my hatred for matlab following one quarter of exposure was sufficient to push me to python because that was what was offered as an alternative (taught by a gradstudent rather than the guy who funded the lead dev for the Octave project). There was no other choice. Julia didn&#x27;t exist etc.<p>In the 8 years since I have written a lot of bad code have come to very much dislike python (though I still write it daily). The reason is not because of any of the visible failings of the language. It is due to the deep hidden inconsistencies, and unexpected and unpredictable behavior of the runtime (try using list comprehension in class scope (What is class scope you ask? Well. Python is a language for newbies... so by the time you can ask this question you are too invested to realize that you might have made a bad decision)).<p>Python is kludge on top of kludge without the diversity of implementations to take another path when someone calls bullshit.
Python can get away with it because they have runtime hacks that let you sort of do what you want, but there will be a corner case
that doesn&#x27;t work because there is some unspoken and undocumented assumption that you are violating and will be duly punished for.<p>None of this is the language&#x27;s fault. It&#x27;s the runtime&#x27;s. The python runtime (don&#x27;t even bother with discussion about the GIL, which is a red herring and a bad case of Stockholm syndrome at the same time) is a mess. The language is fine, even great. But the fact that different scopes have radically different meaning and that expressions only work in certain scopes [0] is a complete nightmare.<p>My main emotional interaction with python is that if I follow the BDFL approved path, everything will work. If I stray from the fascistic predetermined happy path, good luck to me, I was on the wrong side of history TM. 99% of the code that I write that doesn&#x27;t start as a class I end up rewriting as a class (probably because python doesn&#x27;t have closures ...). Python lures you in with promises of easy to write easy to read, but when you get to that point where your actions are <i>no longer approved</i> then then pain and sadness and rage are all you have left. I won&#x27;t name the language that has almost the opposite interaction that I come to vastly prefer, but the emotional experience is radically different, I get extremely frustrated because I don&#x27;t understand something in that language, and eventually come to realize it is because I did not understand something simple. In python I initially think that I am the one to blame, but after months or years, I finally realize that it is actually the language that is fundamentally broken and inconsistent and I have been mislead the entire time. I get frustrated because there no possible way for me to solve my problem by increasing my knowledge, I would literally have to fix a 4+ year old problem in the language (which I&#x27;m sure I couldn&#x27;t do and that I&#x27;m sure has not been done for very good technical (debt) reasons), or find a library. There are a lot of libraries, but don&#x27;t be fooled. Every library is a new language. Python is just the gatekeeping runtime.<p>Python will thrive for a large set of use cases, but when you hit a wall in python, the problem is not because you don&#x27;t understand, it is because python is broken. That is not a happy realization. It is like growing up and realizing that people are actually evil, not that you were just misunderstanding them. Or more generously, that expecting people to be on their game 100% of the time is unrealistic. The difference is that python is that attractive person that is great at first impressions, but a disaster in the long term, and if I hadn&#x27;t had the good fortune to meet a language that was super awkward for the first 6 months or so, but turned out to be a keeper, I&#x27;d believe that python was the only thing there is.<p>Python is and abusive language, and probably exists and is successful because things like perl also exist (and because it solves a whole bunch of practical problems). I&#x27;ll keep using python for a long time, and the coming of age of pypy brings me great hope for the future,
but there are classes of problems where I now go elsewhere. There are problems everywhere, but in some places they seem to be rational rather than contingent.<p>tl;dr Don&#x27;t pick a language, pick a runtime.<p>0. <a href="https:&#x2F;&#x2F;github.com&#x2F;ipython&#x2F;ipython&#x2F;issues&#x2F;62" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;ipython&#x2F;ipython&#x2F;issues&#x2F;62</a>