I found a fun post by Avery Pennarun about programmer migration patterns using RSS. Have you heard of RSS? It's
a quite intriguing concept: you create a terse XML log of your toots or twetes
or longer form writings on the web, publish the log on the web, and other
people can set up software that periodically checks the XML log and sends
a notification when you've written something. You should give it a try!
In fact, I found Pennarun's post about 3 weeks ago, but have been too occupied with
work, family, and running to blog about it until now. I've thought about what
languages programmers use and why, and enjoyed reading another non-scientific
Myself, I've followed two of the paths that Pennarun graphed in the blog post.
- C -> Perl -> Python 2 -> Python 3
- sh -> awk -> Perl -> Python 2 -> Python 3
I've done different kinds of programming and dabbled in some esoteric
languages, but lately I'm doing system programming, and almost all of it in
Python 3. As Pennarun points out, when you need Python programs to run faster,
you rewrite their modules in C. I've learned to do this and have also learned
how to distribute and deploy C extension modules. I haven't felt the need to
migrate to Go, the other next stop for Python 2 programmers in Pennarun's
graph. Not yet.
Python 3 use is growing at work and people are definitely coming from
especially with the major Spark hosting services, not because of language
features or syntax. I do, however, see signs that some of my coworkers are
beginning to appreciate mainstream Python features like path objects, slicing,
unpacking, and f-strings. For what it's worth, no one has yet asked me how to
use type hinting or how to implement type checking, perhaps because the
C++ or Java.
I feel gratified when I see open source Python packages like mercantile, shapely, and rasterio spreading more quickly to other teams
at work. This pleases me, greatly. Investing modestly in Python, even when it
wasn't considered cool or the next big thing, was a good idea. It's paying off.