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 take.
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.
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.