This week we welcome Matthias Bussonnier (@Mbussonn) as our PyDev of the Week. Matthias is a core developer of the Jupyter Notebook and IPython. You may want to check out his Github profile to see what projects he is interested in and working on. Let’s spend some time getting to know Matthias better!
Can you tell us a little about yourself (hobbies, education, etc):
I have a pretty eclectic background. As you might not hear while reading me I’m French, and I still have a relatively strong French accent. I was trained as a Physicist – started with quantum mechanics /particle physics and decided that it was probably not for me, so I did fluid mechanics and condensed matter, and I ended up with a PhD in Biophysics which according to my advisor was often more applied mathematics than BioPhysics. As for computer programming I’m mostly self taught – I stated with C/C++ when I was about 13 and moved between languages every now and then. I’m pretty monomaniac an my hobbies come and go. I used to program to distract me from my PhD – which lead me where I am now. I like to play guitar, do nothing and enjoy nature, sleep, contradict people and making puns. I also love to understand why and how in general which takes most of my time – I try to write it up on my blog but it often take me weeks to write anything and I’m not happy with it. I also enjoy teaching to others mostly because by teaching you understand better.
Why did you start using Python?
Well, I really started heavily using Python in 2011 at the beginning of my PhD. The codebase I inherited was working but was using 1) Matlab, and 2) LabView (graphical things with box you link to each others) and comments in German. As the number of matlab license for the lab was limited, and matlab does not have a package managers and not really Object oriented programming I asked my adviser if I could use Python – he was happy to let me try as long as it was not hindering me. I started to heavily use Python/IPython/SciPy/etc for my PhD, submitting bug reports and patches. Advance three years I graduated and was probably doing more Python than PhD, by delegating most of the PhD work to the Computer.
What other programming languages do you know and which is your favorite?
I’m supposed to know C/C++/Fortran – which I haven’t really touched more than a few hours in the last decade. I did a lot of Javascript/Html/css with the Jupyter Notebook. I mostly write in Python, and have been starting to really enjoy Rust recently. My favorite is so far still Python 3.6+ I’m loving f-strings async/await and PathLib I don’t think I could go back to 3.4 or before. 3.5 is decent. Rust is becoming a really good contender with fantastic tooling, really good error messages and usability. The Python community could learn a couple of things from the Rust one.
What projects are you working on now?
A couple. I’m still highly involved in IPython/Jupyter as it’s my day job – both are alive and well. These days I’m mostly on the IPython kernel side. I’m pushing for things you can do only on Python 3.4 and above. Mainly completions, async/await at the top level repl.
I’m also working on some generic python tooling that I find is missing. Elm enforce semantic versioning by looking at your package APIs. I’m not a fan of enforcing, but I want tool for developers that warns them they are breaking API, then run it in my test suite.
Which Python libraries are your favorite (core or 3rd party)?
PathLib in core Python. Xonsh is awesome and is my everyday shell. Doctr to deploy docs on GhPages. Trio is really worth a look at both to use and internally. Even if you don’t use it, read the documentation which is the best explanation of async/await I have ever read.
How is Jupyter and IPython helping to bring new people into the Python fold?
The notebook is definitively a nice interface for starting to explore programming and do data science. It is not a silver bullet and we are happy to see various frontends developing. In particular we hope that JupyterLab will provide a better transition to the folks that want to move their code in proper .py files. Having the ability to get hosted notebook make also deployment for classrooms way easier. It can be a pain to have 100 student install all the stack. On the IPython side I think we can still do a lot of things to make make users live simpler and give them better error messages. I would love to have Microsoft Language Server Protocol and the Jupyter Protocol converge. One is good for “Static” code, the other for “Dynamic” code with a live kernel. I think we could get best of both world with a bit of work.
What can we expect to see from these projects in the future?
The new features that should come out soon are JupyterLab – brand new UI. And real-time collaboration. There are also interact that embraced react and the desktop-app paradigm so things are already quite evolving. As Jupyter is also mostly a protocol than can be adopted than a distribution we’d like to have more curated and well maintained kernel beyond Python : R, Scala, Julia… and streamline the installation process for the users of these languages.
Is there anything else you’d like to say?
The jupyter team is organizing JupyterCon at end of August, we hope to see you there ! Also IPython is upper case I – we are not the fruit company 🙂
Thanks for doing the interview!
> Also IPython is upper case I – we are not the fruit company 🙂
That’s awesome! LOL