This week we have Mariano Reingart as our PyDev of the Week. Mariano co-authored the web2py Application Development Cookbook for Packt Publishing and has recently done a partial port of wxQt for wxPython. Let’s spend some time with Mariano to see what he has to say!
Can you tell us a little about yourself (hobbies, education, etc):
I’m a freelance developer and teacher, married with two small children.
I started programming when I was a child and my father brought e a ZX Spectrum TK-90 in the late ’80. By 1989, with just 11 years old, I took my first “formal” programming course “Basic I” using MSX computers and “D.O.S.” by 1991. After finishing my primary education, in 1992 I enrolled to a college that has the “Bachelor specialized in Informatics” orientation (secondary “preparatory” level) where Visual Basic and Visual Fox Pro was teach in the final courses.
Once graduated, I worked in that school as a Teacher Assistant, installing my first Slackware Linux server circa 1997 to connect to the Internet, and programming the college systems (using VB + Access initially).
My first “open source” programming experience was developing a Linux’s kernel module to use the 128Kps telephonic leased line (I even had to import the communication board), and a ucLinux kernel driver for PiCoTux (an small embed microcomputer running Linux).
Also, I did my first steps migrating the databases to PostgreSQL and working with early “WiFi” devices.
Then, I studied Electronic Engineering for several years, but I realized my skills were more linked to software, so I switched to a local university to study Computer System Analysis (B.Sc. equivalent degree).
I finally graduated in 2011 after some “sabbatical” years where I gained working experience developing small ERP like business systems for SMEs and a 911 application (ad-honorem collaboration with a friend of mine for the local police station)
Currently I’m finishing a Master degree on Free Software (Open University of Catalonia), and a “professorate” (formal higher teacher formation)
Why did you start using Python?
I’m started using python in the ’00, looking for alternatives to Visual Basic.
I choose it for my degree thesis in 2006 “Rapid Application Development under the Personal Software Process” (sorry, it is in Spanish, but you can see more information for the poster presented in PyCon US 2012)
Since 2009 I’m teaching Python in a higher college. It started in just a course but then we agreed (with other professors) to implement a institutional curriculum oriented to free software, mainly:
- “Computer Programming I”, “Computer Programming II” (including introduction to wxPython/web2py)
- Databases (design and implementation)
- Operating systems (file systems, process, IPC, etc.)
- Internetworking (“computer networks”: sockets, internet applications, etc.)
- Professional Practice (final work: web app development)
Based on that, with other colleagues we’re preparing an “Diploma on Free Software” (open undergraduate degree, 1 year courses program, focusing Python, PostgreSQL and GNU/Linux, for more info see this article).
Happily, nowadays I’m making my living selling open source commercial support plans thanks to Python, as in 2008 the project PyAfipWs, “electronic invoicing”, started from PyAr mailing list, the local Python Argentina community, and then grew up, being used by a relatively large user base (including corporations, SME and professionals)
What other programming languages do you know and which is your favorite?
Python is my favorite, of course, and I have some experience in PHP, C/C++, Java and other languages.
Sadly I still has to use Visual Basic Classic (6.0) for some of my legacy ERP like systems (they are big, around some hundred thousand lines, and I did’t have the time / resources to migrate to Python yet)
Now I’m investigating vb2py, a project to convert VB to Python code. I wonder why it didn’t reach critical mass / traction (development seems stalled since 2014), as there is still a lot of VB code hanging around…
For the electronic invoicing project, I use pywin32 (from Mark Hammond et al) to make python components usable from legacy languages (VB, VFP), and some libraries like dbf (from Ethan Furman) to interact with even older languages (Clipper, xBase, etc.). Recently I started to play with Jython too, also to use the python projects from Java.
What projects are you working on now?
For my degree thesis, I started developing rad2py, an experimental integrated development environment (IDE) and CASE supporting tools, envisioned to be used for commercial, educational & academic purposes.
Now I’m finishing it for my master’s thesis research “High Quality Free Software Rapid Development“, trying to make the developers life easier integrating recent approaches like task-focused interfaces (Eclipse Mylyn) and Agile ALM (application lifecycle management), with disciplined software engineering principles for quality assurance and continuous self-improvement.
Which Python libraries are your favorite (core or 3rd party)?
I try to use just the Python Standard Library + wxPython and web2py, and for some projects pywin32 and dbf as stated before.
I find web2py fascinating, as it has an almost flat learning curve, allows rapid prototyping, a friendly online IDE, etc. It’s non-traditional approach also is interesting to bring other perspectives and “critical thinking”, specially thanks to the open, cordial & reflexive kind of leading of Massimo Di Pierro, its creator, and of course, its welcoming community. Disclaimer: I’m a “main” developer, not very active these days due lack of time, but contributed an online debugger and other enhancements, co-wrote the book “web2py app development cookbook” from Packt, etc.
wxPython also deserves a special mention, Robin Dunn work is awesome (phoenix py3k!), Andrea Gavana pure python agw widgets are really impressive, just to mention a few developers of that community. Also I see wxWidgets more orthogonal and easy to use than other alternatives. This year I tried to collaborate more deeply with the experimental wxQt port within GSoC 2014 (it is now usable, even from wxPython! and under Android at least the C++ part…).
When I need something not covert there, I tend to look for simple solutions (many times influenced by PHP extensions), sometimes starting, continuing or forking other projects:
- PySimpleSoap: ad-hoc lightweight web service interfaces to build SOAP clients and servers
- PyFPDF: simple PDF generation class based on PHP’s FPDF and derivates
- gui2py: a fork of PythonCard (“rapid” & simple GUI construction kit) to evolve and modernize it
Beside some developers see them as “naive” efforts (to say the least), most of them have found their niche and nowadays many contributions are made from other collaborators that found them useful too. They also helps to understand the underlying technologies, provide pure-python alternative implementations and experiment with Python 3 migration.
Is there anything else youâ€™d like to say?
No, sorry for the long answers, but your interview is irresistible 🙂 … Also, sorry for my English, I’m native Spanish speaker so sometimes it is difficult to me finding the right words. Thanks you for this project and efforts, and thanks the whole community for Python!