This week we welcome Damien George as our PyDev of the Week! Damien is the man behind the MicroPython project which allows you to run a version of Python on microcontrollers. You can learn more about Damien on his website or by visiting his Github page. Let’s spend some time getting to know our fellow Pythonista better!
Can you tell us a little about yourself (hobbies, education, etc):
I grew up in Melbourne, Australia and started playing with computers and electronics pretty early on. I had a Commodore 64 when I was young and remember borrowing books from the local library on how to program it in assembler. Really it just gave you a bunch of “data” statements to type in, but in the end you could make some pretty cool stuff. In high school I liked physics and maths and then I went to university and did degrees in both science and engineering. I majored in physics and computer engineering and then did a PhD in physics, after which I moved to the Netherlands, and eventually the UK, to do research in theoretical high-energy physics (extra dimensions, supersymmetry, cosmology, things like that). During my career as a physicist I kept an active interest in programming and robotics, with lots of side projects including a self-made CNC machine (see http://dpgeorge.net/cnc/).
Why did you start using Python?
Because I needed a language that was both powerful and allowed very fast development. I think the first big project that I used Python for was the Paperscape website that I developed with a colleague, which visualises scientific papers in physics (see http://paperscape.org). Python is used extensively in the back end to parse TeX, LaTeX and PDF files and extract citation information, as well as maintain an SQL database of the papers.
What other programming languages do you know and which is your favorite?
I’ve used a lot of languages over the years, including: assembler of many architectures, BASIC, Fortran (mostly 77), C, C++, Java, Haskell, Go and JavaScript. I like C a lot and would say it’s my favourite, but C++ is also good and now a much nicer language with the modern standards. I like Haskell but don’t use it for anything serious.
What projects are you working on now?
I spend pretty much all of my time developing MicroPython (see https://micropython.org and https://github.com/micropython/micropython). There are a lot of features I’d like to add, optimisations to make, and new platforms to get it running on. Right now I’m concentrating on making MicroPython run well on the ESP8266 Wi-Fi chip, as part of the Kickstarter that we ran earlier this year. That involves programming as well as documentation, tutorials and forum management. I’m also helping to develop the BBC micro:bit port of MicroPython (see https://github.com/bbcmicrobit/micropython). A lot of people contribute to the MicroPython project, in many different ways, which is fantastic and helps the project grow. I look forward to seeing MicroPython grow bigger and be used in new and interesting ways.
Which Python libraries are your favorite (core or 3rd party)?
Because of their special need in MicroPython I like the boring libraries like sys, os and struct. But a more interesting one is our “machine” module which abstracts lower level hardware in a Pythonic way. For example GPIO pins, I2C busses, analog to digital convertors, and so on. On the BBC micro:bit there is a “microbit” module which has a lot of fun things in it to allow children to easily program the device.
Where do you see Python going as a programming language?
Python evolves and keeps up with the needs of programmers as well as current technology, and that’s a really important thing that I think will allow it to stay as one of the top 5 programming languages for a long time to come. There will always be the need for different languages, each specialising to certain needs, and Python will remain an excellent choice for general purpose rapid-development programming.
Is there anything else you’d like to say?
I think the Python community is amazing. It’s friendly and open and there are a lot of smart people who dedicate their time to making Python not only a great language but also a great programming-ecosystem. More broadly I think that the open source community and open source software is nowadays a fundamental part of software and computing and I’m really happy to be able to contribute to it.
Thanks for doing the interview!