(Join the conversation on Hacker News.)
Last month, I was thrilled to represent the LISNR Engineering team at PyCon 2015 in Montreal. Though I’ve been a proponent of Python since I first discovered it in 2008, this was my first PyCon.
But gearing up for the conference, I wasbittersweet.
Over the past seven years, I’ve worked with Python for school, personally, and professionally to build everything… fromblackjack games to computer vision trackers to projects in pattern recognition, information retrieval, and MapReduce, to web apps to most recently backend APIs atLisnr. In short, it’s become my favorite high-level language and my default language for nearlyeverything.
Is Python dead?
But lately I’ve been feeling bearish about Python.
Depending on who you ask, you’ll hear that Python is: (a) thriving, (b) experiencing a subtle decline, or (c) losing relevanceon the web.
On the front cover of its handout of case studies, The Python Software Foundation boldly proclaims:
“A programming language changes the world.”
The Python Software Foundation
The debate revolves mainly around two other languages: Ruby and Node.js. Though Python andRuby are syntactically similar, they are philosophically different, and Ruby is younger. Rails was, and still is, a leader in web apps, with some even arguing that Ruby itself isgeared toward web development. Node, or io.js, unlocks stronger scalability (i.e., better concurrency through asynchronousI/O). Event-driven web app architecturesare touted as the future of server-side development, especially efforts which advance anti-monolithic components, which the Node community tends to do well. [And, yes,we do have Tornado and Twisted in the Python world, but I digress…]
From conversation with developers locally and on the coasts (and also the front page of Hacker News),I feltconcerned that our community wasstagnatingin favor ofthe other two. Though we will always have the standard library, the third-party package ecosystem is a big factor in deemingany languagesuitablefor new projects. Are we losing relevance to a newer generation of tech? Should we start considering a new default stack? Should I actually start learning ES6 now? These are some of thequestions on my mind on the way toPyCon.
The Hacker News front page trends toward making everyone feel like theirstack is obsoleteifevery componentisn’t the latest and greatest hyper-specialized bleeding edge.
Has traction changed?
On silver bullets and hipster stacks
Most technologistsargue against the existence of a universally best piece of techNo Silver Bullet. Instead, weshould opt for the best tech to solve the problem at hand, even whenit’s not our favorite. Luckily, the problems I solve regularly areflexible enough that anytoplanguage, or a less popular one, will do. Good developersare knowledgeable, but we’re also opinionated and human (i.e., biased and occasionally irrational). I think this can be one of the hardest battles faced by forward-thinking developersbecause: (a) it’s easy to stick with what’s comfortable, and (b) the Hacker News front page trends toward making everyone feel like theirstack is obsoleteifevery componentisn’t the latest and greatest hyper-specialized bleeding edge.
Python isn’t falling off. I say that with confidence from both the data measuring GitHub and Stack Overflow activity, and the strong community I experienced at PyCon. Everyone uses Python.
Python is not just for web apps
On Saturday, my friend andfellow PythonistaDavid Felix and I sat down at a random lunch table. We started talking about sessionsrelevant to our work: APIs, security, scalability, deployment, etc.
Me with David after discussing Django with anInstagramengineering lead. Meta.
One of us brought up a pain pointaboutthe default caching configuration with memcached in Django not considering header params, then driftedintomoreadvanced web app topics we’d like to see talks for. When we asked another attendee at the table how he uses Python, he responded, “You know, Python is not just for web apps.”
It’s a patently true statement that’s easy to forget in the tunnel vision ofsolving your own work problems on a daily basis. He’s right. So I stepped back to ask myself:Who uses Python?
Everyone uses Python.
Taylor Edmiston is the Lead Backend Engineer at LISNR. You can reach out tohim or follow on Twitter @kicksopenminds.
LISNR is an emerging leader for building powerful experiences around presence usingdata-over-audio. You can learn more about our tech and request beta access atlisnr.com.