This week we would like to welcome Marc-Andre Lemburg (@malemburg) as our PyDev of the Week. Mr. Lemburg is a Python core developer and entrepreneur. He owns his own business eGenix and writes about Python on his blog. He is one of the founding members of the Python Software Foundation and is currently a board member of the group. He is also a board member of the EuroPython Society. Let’s take some time to get to know him better!
Can you tell us a little about yourself (hobbies, education, etc):
I live in Düsseldorf, Germany, with my wife and two kids, have a consulting and project company called eGenix.com, and enjoy creativity, art, photography, dance, music and any form of inspiration. I originally wanted to study art, but then decided to go with my other passion, physics, instead. However, after finding theoretical physics models to work with third or even second order approximations, I refocused on mathematics instead, and later specialized in optimization and logic. My dream is to return back to art some day, but that day hasn’t come yet.
Why did you start using Python?
I first learned about Python in 1994 when I found a distribution on an OS/2 Freeware CD (Hobbes). I read Guido’s tutorial on an evening and was immediately sold on the idea that this was going to my favorite programming language for the years to come.
A few years later, I became Python core developer, designed the original Unicode integration, contributed a few modules to Python and wrote many Python C extensions and packages, some open-source, others commercial or for customers.
What other programming languages do you know and which is your favorite?
At the time I first learned about Python, I was a C programmer, having come from BASIC, assembler, Pascal (in that order). I tried C++, but never really liked it. Same with Java. I also learned Lisp, some Smalltalk, and later Javascript, when I started building websites.
My two favorite programming languages are still Python and C. I write all high level code in Python and turn to C for speed.
What projects are you working on now?
Right now, I’m looking into porting the mx Extensions to Python 3. Given the size of the code base, this is a rather challenging project and also the main reason why I haven’t started on this quest earlier. Having started on porting mxDateTime recently, I find that some things could definitely have been made easier for people porting their code to run on both Python 2 and 3, while remaining backwards compatible.
At the same time, I’m looking into a few other projects, such as getting a Windows version of eGenix PyRun implemented, and finding a way to more efficiently share data between processes or threads running Python, than having to serialize it.
The latter project is one way to resolve the issues with the global interpreter lock preventing full use of today’s processors for CPU bound work loads.
Apart from these projects, I also continue to work on several other Python related technical and community projects: http://www.malemburg.com/summary
Which Python libraries are your favorite (core or 3rd party)?
I very much like the standard lib difflib module. It’s not well-known, but implements some quite amazing algorithms to find differences in text data.
Python’s list sort and dictionary implementations are also well worth a read. There’s a lot to learn and appreciate in both – you don’t get to see such carefully hand crafted code often.
Where do you see Python going as a programming language?
I see Python becoming more and more popular. Given its combination of age and still increasing popularity, I think Python has reached the status of a mainstream programming language. It’s up there with C/C++, Java and Javascript. Today, you no longer have to explain what Python is when talking to customers, which is a good sign.
With Python entering the educational systems, this trend will increase even more.
The problem with parallel execution of Python applications is one area where we have to invest some serious thought to keep the trend going. The async support in Python 3 is a solution for I/O bound work loads, but we don’t have a good solution for CPU bound work loads yet. The other problem I see is the growing age of the Python standard library. I believe this would benefit from a complete rewrite to make it more consistent and easier to use.
What is your take on the current market for Python programmers?
It’s a growing market given the Python uptake in several important industries: web, big data, science (and beyond, see e.g. http://brochure.getpython.info/).
These are great times for Python programmers.
Is there anything else you’d like to say?
I hope we can find a way to remove or work around the GIL limitations in Python 4 without having to break all Python C extensions.
The Python 2 to 3 transition has been a painful experience and has caused a lot of Python users to seriously start looking for alternatives. I don’t think anyone is looking forward to another such transition.
Thanks so much!
The Last 10 PyDevs of the Week
Pingback: PyDev of the Week: Florian Bruhin - Mouse Vs Python
Pingback: PyDev of the Week: Jeff Triplett - Mouse Vs Python