The Future of Python is in the Past
This post is in response to Calvin Spealman's I Am Worried About the Future of Python.
First, I believe that Calvin's concern is a legitimate one. Python has grown into one of the premier languages in the Open Source communnity - and for good reason. Python is designed from the ground up to support object- oriented development, and the conventions and syntax strongly encourage clean, readable code. It also has an excellent developer community, which is both supportive and uniformly knowledgable.
Despite these enormous advantages, Python has not made its way onto the client side of the web, and has made few inroads into the mobile ecosystem. Calvin sees this as a threat to the very future of the language, in a world where more and more critical software is finding its way into the cloud, to be accessed via a mobile phone or tablet.
If the desktop environment dies, Python (in its current state) is at risk of dying alongside it.
So, what's the solution? Should we form a sweeping effort as a community to push Python into the mobile ecosystem? Perhaps. Should we push into the browser?
NO.
Consider this: Python's community is in my experience far more competent than any other I've ever been a part of. Why is this the case? I believe that's because Python is a language that you must be quite technically literate to ever encounter. Most people first see Python in Linux, in administration tools. Compare this to Javascript, which many pick up as a first language because the interpreter is built into their browser. How many terrible Javascript tutorials are there online? How many very bad Javascript "developers" are there?
I see this trend repeated in other technical communities. If you visit the Ubuntu forums to search for a way to solve a problem, you're likely to find an answer due to the sheer number of people who use Ubuntu - but you're also quite likely to find a hack-ish solution that barely works, or breaks other things in the process. Compare that to the ArchLinux forums, where answers are generally comprehensive and correct (where they already exist). ArchLinux users are - generally speaking, of course - much more technically competent than Ubuntu users. The reason is simple: the barriers to entry for ArchLinux are quite high when compared to Ubuntu.
Python owes its excellent community to its unique place in the Linux OS. If we somehow managed to get Python as a peer to Javascript in all major browsers, can you imagine the influx of new developers that would inundate our tight little group? The experienced developers of today would either be lost in the noise, or would migrate away to Golang, or Haskell, or Scheme, etc.
Be wary of making Python too widespread. Our community is special, and we put it at risk the more popular the language becomes.