This week we welcome Fabio Zadrozny (@fabiofz) as our PyDev of the Week. He is the current force behind the PyDev project, a Python IDE for Eclipse. Fabio works on many other projects, as you will see if you check out his github profile. Let’s spend some time getting to know him better.
Can you tell us a little about yourself (hobbies, education, etc):
Sure… Iâ€™m a software engineer with a Bachelors in Computer Science (graduated back in 2002). I live in FlorianÃ³polis, Brazil. Besides coding, I really enjoy playing table tennis (I almost started playing professionally back when I was a teenager, and right now itâ€™s a great hobbyâ€¦ ). Still, my major occupations aside from work right now are a 6 month and a 6 year old daughters.
Why did you start using Python?
Iâ€™ve started using Python in 2003 to work on projects targeting scientific computing at ESSS (http://www.esss.com.br) — at the time, my major gripe on Python was not having a proper IDE, so, I ended up working on PyDev (http://pydev.org) quite a bit over the years to get an environment where Iâ€™m pleased to work on — itâ€™s kind of ironic how I ended up working more in Java to get a great Python working environment — although I also work on many Python projects and definitely eat my own dog food here!
What other programming languages do you know and which is your favorite?
The main languages I work on are Python and Java — so, doing a Python IDE such as PyDev in Eclipse was pretty natural for me 😉
Python gets the spot of my favorite language, as itâ€™s really expressive and makes programs pretty concise. Aside from Python, Iâ€™d say Java gets 2nd spot, although its strong points are very different from Python, and tools such as the IDE play a much bigger role, so, you have to master an IDE for it to be pleasant (itâ€™d definitely not be enjoyable coding Java without an IDE, whereas in Python itâ€™s doable — although IMHO, an IDE such as PyDev helps quite a lot even in Python, and is a must when projects get bigger).
What projects are you working on now?
Well, I always have a bunch of exciting things going onâ€¦ currently Iâ€™m working on:
- PyDev (http://pydev.org) which is currently among the top IDEs for Python — I use it daily and Iâ€™ve been working on it for 12 years already, keeping it going with community contributions/crowdfunding campaigns. Also, Iâ€™m really happy with the state PyDev is right now — there are lots of users, and in recent years, as the market became more crowded having great choices, I only get people that really like working on PyDev/Eclipse (and LiClipse made it much easier for users to get up and running).
- PyDev.Debugger (https://github.com/fabioz/PyDev.Debugger/) is a separation of the debugger which was originally only in PyDev so that it can be used in other UIs (currently itâ€™s used by PyDev and PyCharm);
- LiClipse (http://liclipse.com), provides a standalone to PyDev, adds lightweight support for many languages in Eclipse, and makes it a much better package overall;
- PyVmMonitor (http://www.pyvmmonitor.com), the best profiling and vm monitoring experience available for Python;
- SpeedTin: https://www.speedtin.com, this is the latest project I started to play with — it aims at making it easier to spot performance regressions before they go live — or in the case of CPython 2.7, hoping some core committer will be able to take a look at things such as https://www.speedtin.com/reports/1_CPython27x_Performance_Over_Time and provide some fixes for the lost performance on previous versions 😉
- mu-repo (https://fabioz.github.io/mu-repo/): itâ€™s an utility made in Python for dealing with multiple git repositories.
- Rocky (http://rocky-dem.com), which is a top-notch particle simulator (the simulator is actually done in C/C++, working with CUDA in the GPU or OpenMP in the CPU, but I work mostly on its post-processing capabilities, which are done in Python).
As you can see, Iâ€™m never bored 😉
Which Python libraries are your favorite (core or 3rd party)?
Well, if I do have to pick a favorite library, Iâ€™d probably go with greenlets, which is a magical solution to asynchronous programming (and I personally find it much easier to program with it than with asyncio-like solutions or callback based programming).
Still, I really enjoy Pythonâ€™s support for yield/generators, and, in the core library I think that the collections and itertools are pretty nice, providing neat ways to organize and iterate data structures.
Also, Iâ€™m always amazed at how numpy makes it possible to deal with huge arrays in a performant way, and py.test makes testing really straightforward.
Where do you see Python going as a programming language?
Well, I hope that Python can overcome the breakage from Python 2/3 and have the community in the same page again.
Iâ€™ve been more negative about this, but recently I think there are better signs on settling on Python 3, albeit things such as Pyston still make me a bit wary — i.e.: here is, a brand new implementation of Python, targeting Python 2 — unfortunately, I think it really shows how much the community is still broken (because, you know, porting big codebases is definitely not fun, expensive and has the added risk of adding bugs which may be hard to discover).
Well, time will tell, but I really hope someday I wonâ€™t have to add cruft to my programs to support both CPython 2 and 3 😉
Thanks so much!
The Last 10 PyDevs of the Week