PyDev of the Week: Hynek Schlawack

This week we welcome Hynek Schlawack (@hynek) as our PyDev of the Week! Hynek is an avid member of the Python community and a fellow of the Python Software Foundation. He has contributed to many projects and writes his own Python blog. Let’s spend some time getting to know him better!


Can you tell us a little about yourself (hobbies, education, etc):

I’ve the former German equivalent of a master’s degree in computer sciences. I try to have as many hobbies away from any screen as possible but I’m not always successful at that. But at the very least, I do quite a bit of sports and traveling to keep my body in shape and my horizon wide.

Why did you start using Python?

I needed to build internal web applications and concluded that Java was too cumbersome to get stuff done quickly (we’re talking about circa 2008; things certainly improved since then).

The main popular higher-level languages back then were Ruby and Python. While Ruby had the advantage of Ruby on Rails, we chose Python because it felt more like a language that invites to write software that still can be understood a year later and because the ecosystem was a lot more diverse with gems like Twisted.

What other programming languages do you know and which is your favorite?

I’ve been a C programmer for the most of my programming life but it certainly isn’t my favorite because adding two numbers the wrong way can lead to catastrophic security problems.

I also know Go but I don’t think that it is a good language. We use it only if we need a static binary or in very rare cases where Python is too slow. I like Rust but found the community lacking in size and professionalism. And I sorely missed the high regard for writing good documentation I got used to from the Python community.

Currently my hopes to get rid of Go rest on Swift which is both promising and has a big company backing it. That said, my favorite language is still Python.

What projects are you working on now?

Too many! My most known projects are probably structlog, attrs, and doc2dash. But since PyCon 2015 I’m also maintaining pyOpenSSL and I’ve open sourced quite a few handy single purpose packages like argon2_cffi or service_identity left and right over the years. I also have the commit bit for both CPython and Twisted but I’m currently lacking the time to get involved in a meaningful way.

Which Python libraries are your favorite (core or 3rd party)?

If I have to give a shoutout, I have to start with the wonderful tools that help me to write robust software: py.test, tox, coverage, and hypothesis. They spoiled me so much that projects that don’t have those in place are much less likely to get help from me.

Network programming is of particular interest to me and Python has two amazing alternatives: Twisted and asyncio. The latter one has unbeknownst to me built a cozy sub-community with lots of useful modules. So if I have to choose a favorite *core* library it’s definitely asyncio. It’s not surprising to me that Python 3.4 is the first Python 3 with serious adoption!

For web development I’m very fond of the Pyramid ecosystem which has a big focus on quality and composition (which are both topics dear and near to me) but seems severely under-appreciated. It makes me sad when people just assume that they just have to decide between Django and Flask while we have an amazing third option! Then there’s SQLAlchemy: I usually only use the core API but it is still a huge asset to the Python community that everyone should check out.

Finally I’d like to mention a few handy tools that in my opinion don’t get enough love: pdbpp is a great drop-in replacement for pdb with syntax highlighting and tab-completion. Click made writing composable CLI applications a joy (if someone tells you that argparse is good enough, they haven’t tried click). And finally if you want to expose application metrics, have a look at Prometheus and their official Python client.

Where do you see Python going as a programming language?

I find that difficult to guess because it mostly depends on who finds the time and energy to write and defend PEPs.

Generally speaking I think Python’s future is bright-ish but as Alex Martelli put it so eloquently: “the GIL must go.”

What is your take on the current market for Python programmers?

My e-mail inbox tells me it’s a good time to be a Python programmer looking for work.

Is there anything else you’d like to say?

Take care of your body, be nice to other people, write tests, verify your certificates, and stop sub-classing.

Thanks for doing the interview!