FROM THE BLOG

PyCon 2015: Are we still changing the world?

Share on FacebookPin on PinterestShare on Google+Share on LinkedInTweet about this on Twitter

(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 was bittersweet.

I ❤️ Python

Over the past seven years, I’ve worked with Python for school, personally, and professionally to build everything… from blackjack games to computer vision trackers to projects in pattern recognition, information retrieval, and MapReduce, to web apps to most recently backend APIs at Lisnr.  In short, it’s become my favorite high-level language and my default language for nearly everything.

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 relevance on 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 and Ruby 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 is geared toward web development.  Node, or io.js, unlocks stronger scalability (i.e., better concurrency through asynchronous I/O).  Event-driven web app architectures are 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 felt concerned that our community was stagnating in favor of the other two.  Though we will always have the standard library, the third-party package ecosystem is a big factor in deeming any language suitable for 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 the questions on my mind on the way to PyCon.

The Hacker News front page trends toward making everyone feel like their stack is obsolete if every component isn’t the latest and greatest hyper-specialized bleeding edge.

Has traction changed?

Looking at hard data from Stack Overflow and GitHub, of the top 10 programming languages, there are six suitable for backend web app development: JavaScript, Java, PHP, Python, C#, and Ruby.  Additionally, the top 5-10 languages don’t change much (or quickly).  Spoiler alert: Startup buzz is just trendy.  [One potential exception that will likely happen in the next few years is Go, but since it’s relatively lower level and really focused on concurrency rather than web apps in general, it’s more complementary to Python, than immediate competition.]  So, in all that: Where do we fit?

On silver bullets and hipster stacks

Most technologists argue against the existence of a universally best piece of tech — No Silver Bullet.  Instead, we should opt for the best tech to solve the problem at hand, even when it’s not our favorite.  Luckily, the problems I solve regularly are flexible enough that any top language, or a less popular one, will do.  Good developers are 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 developers because: (a) it’s easy to stick with what’s comfortable, and (b) the Hacker News front page trends toward making everyone feel like their stack is obsolete if every component isn’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 and fellow Pythonista David Felix and I sat down at a random lunch table. We started talking about sessions relevant to our work: APIs, security, scalability, deployment, etc.

Grams for the grams. #meta #PyCon #pycon2015 #instagram @instagram

A photo posted by Taylor Edmiston (@kicksopenminds) on

Me with David after discussing Django with an Instagram engineering lead.  Meta.

One of us brought up a pain point about the default caching configuration with memcached in Django not considering header params, then drifted into more advanced 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 of solving 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 to him or follow on Twitter @kicksopenminds.

LISNR is an emerging leader for building powerful experiences around presence using data-over-audio.  You can learn more about our tech and request beta access at lisnr.com.

LISNR is a high frequency, inaudible technology; a new communication protocol that sends data over audio. As the leaders of the Internet of Sound, we use inaudible sound waves called SmartTones™, to transmit information.  LISNR essentially transmits customizable packets of data every second that enable proximity data transmission, second-screen functionality, authentication and low-fi device to deviceconnectivity on any LISNR enabled device.  We enable this functionality better and more efficiently than bluetooth (proximity), ACR (2nd Screen), and NFC/RFID (authentication). As an integrated software partner, LISNR can power devices to connect with world around better than ever before.

Share on FacebookPin on PinterestShare on Google+Share on LinkedInTweet about this on Twitter

11 comments

  1. thearn4

    on

    Reply

    I’d toss in a ‘government’ category to the list at the end: NASA and the Dept. of Energy (among others) use Python pretty heavily.

    • Taylor Edmiston

      on

      Reply

      You make a great point. I’m considering doing a follow-up post to showcase specific projects (especially from the orgs I’m less familiar with firsthand). Thanks for the comment.

  2. Oakland Peters

    on

    Reply

    Also worth noting – Python is *heavily* used in scientific computing. Not just in mathematical/numeric context (Numpy), but in data processing in engineering and the life sciences (SciPy; Pandas). In those contexts, it is rapidly becoming the most used language (if it is not already).

    For more detail on what I mean, see Tal Yarkoni’s post: http://www.talyarkoni.org/blog/2013/11/18/the-homogenization-of-scientific-computing-or-why-python-is-steadily-eating-other-languages-lunch/

    • Taylor Edmiston

      on

      Reply

      Thank you for taking the time to read. I was working in a research lab myself a few years ago, around the time the transition from MATLAB to Python (via Anaconda) was just starting to get underway. It’s great to hear that traction has increased since.

  3. Mike Miller

    on

    Reply

    The EPA too!

  4. Ben Allison

    on

    Reply

    Data scientists, and the scientific computing community in general, use Python. Pandas, scikit-learn, numpy/scipy, and a whole range of 3rd party data wrangling, statistics and machine learning libraries are built in Python, rivalled only by domain specific languages like R and Matlab.

  5. Sara (@sarasomewhere)

    on

    Reply

    GIS professionals are huge users of Python too, and often overlooked by traditional dev circles. It’s no exaggeration to say Python is the single most commonly-used language in geospatial-related work today. Some more for the list — a sample of geospatial companies currently using Python: https://www.mapbox.com, http://cartodb.com, http://www.appgeo.com, http://www.esri.com

    • Taylor Edmiston

      on

      Reply

      I wasn’t aware of Python’s presence in GIS. Thanks for the share, Sara!

  6. Jules

    on

    Reply

    Science uses Python a lot too! Numpy/Scipy is very popular.

  7. m50d

    on

    Reply

    Python has a serious claim to being a general-purpose programming language in a way that Ruby and JS aren’t.

    But it definitely has some rough edges. Async is possible but not easy. Package management is still a mess. The standard library, once Python’s greatest feature, is now a collection of elderly modules holding back progress.

    Python still lets you get started and get writing faster than any other language, at least if you’re *not* writing a webapp. That’s its strength. I’m not sure it’ll be enough – when I tried to use Python again after two years of Scala, I found I couldn’t stand to be without the advanced static type system.

    • Taylor Edmiston

      on

      Reply

      Thanks for the comment. I’ve definitely held the same thoughts about async and package management.

      For our current needs in async, we get around it most of the time by offloading cpu-intensive tasks to a Celery queue. Not perfect, and comes with its own rough edges, but it’s worked well enough so far.

      For packages, We’ve tried the Two Scoops approach with environment-dependent requirements file, and considered more elegant approaches to intelligently pin just top-level dependencies, but we definitely have a long way to go. Perhaps someone will build on top of pip to get us closer to say how npm works.

Leave a comment

Your email address will not be published. Required fields are marked *