This week we welcome David Mertz (@mertz_david) as our PyDev of the Week! David is the author of Text Processing in Python as well as many interesting articles about Python on IBM developerWorks. I’m pretty sure I read some of those articles when I was first learning Python. You can check out a pretty intensive listing here. He is also a member of the board of directors of the Python Software Foundation. Let’s spend some moments getting to know him better!
Can you tell us a little about yourself (hobbies, education, etc):
I took a curious path to writing Python code, and to writing about Python code. My doctorate is in Post-Structuralist Marxist Political Philosophy. I did some wonderful work in that area, and loved writing for academic journals and giving papers at those sorts of conferences. But I was also slightly slow-witted, so it took me a decade to figure out that no one would actually pay me money to know that stuff; sadly, the system of real tenure, especially in the humanities, is mostly dead, and adjunct jobs mostly pay around minimum wage (or less).
Why did you start using Python?
After a few years writing code for a living in some other languages (mostly in xBase dialects like Clipper; I really loved those languages, actually), I continued to try to keep up-to-date on other developments in technology. I first played around with Python in 1998, but very passingly.
A little while later than that, in 1999 or 2000, I had the chance to start writing about computer programming and computer science for a number of widely read publications. The most steady of these was IBM developerWorks, where I had the column Charming Python. I did other writing for them (like another column called XML Matters, and various other articles) and other publishers, including a book for Addison Wesley, during the 2000-2008 time period.
The nice thing about doing that was that I got to immerse myself in “applied computer science” topics in a manner something akin to actually getting another graduate degree in that field. My goal there was always to pursue some interesting concept—a library, a programming technique, a useful tool, etc—and then write the article I wish had existed before I started learning it. Luckily, I was and am able to write with a more distinctive style and greater clarity than most people with a purely technical education.
Throughout that I grew to love Python more and more, even as I learned and compared it to dozens of other programming languages.
What other programming languages do you know and which is your favorite?
I’ve dabbled in dozens, maybe hundreds, of languages. But most of the code I’ve written in the last 15 years has been in Python.
However, I have very fond memories of those xBase languages which had a lot of good design ideas. I love using the shell tools on Unix-like systems still, on a daily basis (bash, grep, sed, cut, tr, etc.; each of those have their mini-languages inside them—some even Turing completeness).
I’ve written C, and C++, and Java, and PHP, and Pascal, and Fortran, and other things for actual production. But I don’t actually *love* any of those. R has a certain elegance to it, actually, despite the way many users complain of its warts. The same is true in its own way of Javascript. REXX was neat in some of the same ways. Of course, I admire the mathematical purity of Haskell—it reminds me of the model theory, advanced logics, and transfinite set theory that I enjoyed studying.
What projects are you working on now?
Mostly developing training materials for Continuum Analytics and doing actual teaching for them.
I’m also overseeing release of a proprietary product, IOPro, into the Free Software world, under the name TextAdapter. That’s a cool product/project that I spoke about at PyData SF that is written in a mixture of Cython and Python (with a little plain C).
Which Python libraries are your favorite (core or 3rd party)?
I’m very fond of this. After that, probably itertools is one of my favorites. My colleage Matt Rocklin’s toolz has neat functional capabilities. Actually, related to that, I really love Dask, which is perhaps as much a tool as a library.
Where do you see Python going as a programming language?
I think it’s taking over scientific computing, which is very exciting to me. In terms of the core language, I start to worry about it obtaining too much cruft over the last couple years. The appeal of some new small features is pulling against minimalism in constructs in a way I don’t entirely like. But it remains—and I’m confident it will remain—the most readable choice of programming languages.
Thanks for doing the interview!