PyDev of the Week: Gaetan Delannay

This week we welcome Gaetan Delannay as our PyDev of the Week! Gaetan is the creator of Appy, a Python web framework and an entrepreneur.

Let’s spend some time getting to know Gaetan better!

Can you tell us a little about yourself (hobbies, education, etc):

It is quite unusual for me to talk about myself, but let’s give it a try. Almost 11 years ago, I started a one-man-company, called GeezTeem. 90% of my time is devoted to coding in Python, developing and maintaining about ten software products for the public and not-for-profit sectors in Belgium. Being monomaniacal, all this stuff is made with Appy, my own (GPL) framework for building web applications in Python.

Convinced by the open source philosophy, the large majority of my code is open source, published under the GPL license. Before flying with my own wings, I have spent the previous 10 years working in various companies, public entities or research centers, learning and experimenting all aspects of software engineering, as developer, tester, researcher, quality engineer or software architect, in fields as varied as 3D graphics, requirements engineering, proton therapy control software or management information systems.

The starting point was a master degree in Software Engineering from the university of Namur in Belgium. Besides coding, writing (in french), playing tennis and composing music are my favourite activities. After publishing my first album under the name Null ID, some people told me I was probably mentally affected.

Why did you start using Python?

In one of my first jobs, more than 20 years ago, a newly appointed quality manager (my boss) explained me his innovative approach to software quality: develop tools and scripts in Python in order to boost software development projects. This is how I’ve learned Python. I began experimenting with the language, starting with small scripts and ending up creating a complex tool generating stubs and skeletons for interconnecting a software front-end written in C++ with a back-end written in Ada.

What other programming languages do you know and which is your favorite?

I have experience in C, C++, Ada, Java, Python and web technologies (HTML / CSS / Javascript). Python is clearly my favorite. It it, for me, the most elegant, concise and powerful programming language. It allows me to build, alone, large, complex but pragmatic object-oriented software products.

What projects are you working on now?

All my projects as GeezTeem are web-based management systems. HubSessions, used by almost 40 public administrations (including a Parliament and 2 Governments) is used for preparing, discussing and publishing their official decisions. https://be-coag.be/ is an on-line tool for patients suffering from hemophilia. PlanetKids allows parents to register their children to summer activities proposed by all associations from 2 cities in Belgium. Plat-com is a collaborative platform used by dozens of associations working with children in care.

Which Python libraries are your favorite (core or 3rd party)?

I’ve been seduced for many years by the ZODB, the Zope Object database, that is completely transparent for the developer. pyUNO, allowing to control LibreOffice in server mode, is also a must. Among core Python libraries, I recently discovered pathlib which drastically improves the readability of path-based operations.

How did the Appy project come about?

15 years ago, I was working on a huge Java project deploying several J2EE chained servers. I was asked to develop PDF exports using XSL-FO transforms. It took me almost 10 man-days to produce the first one! A nightmare. I began thinking about doing such tasks in a more effective way, using Python and LibreOffice. POD (Python OpenDocument), the best known part of Appy, was born, initially handwritten on sheets of paper in the train. Appy.pod allowed me to reduce the 10 man-days to 10… minutes. Afterwards, Appy grew up and became a complete framework for building web applications. Initially based on Zope and Plone, the current version (0.9) has still a dependency to Zope. Appy 1.0 is under active development and will be ready in a few weeks. It has become a standalone, full-featured web framework (re-)written in Python 3, using the ZODB as database (that is packaged independently of Zope).

What challenges have you had to overcome with this package?

The idea of building an application server is a huge and crazy task. It took me years to develop it, mainly during my evenings and week-ends, but now, since 2 years, it is partly financed by my clients. Appy 1 is the sum and synthesis of my knowledge and experience about software development. I am very excited about publishing it in a near future!

Is there anything else you’d like to say?

Appy is published under the GPL, thus, a contaminating open source license. I’ve had several requests to publish Appy.pod in LGPL or with a commercial license. Both solutions did not match with my vision of open source, but I did not want to prevent people from using Appy.pod. Finally, I found a solution to this dilemma and have produced a commercial version of Appy.pod… with restricted functionality. If you read the Appy code, you’ll find an exception called CommercialError, that is called in the commercial version of Appy, everytime the user tries to use some advanced functionality:

class CommercialError(AppyError):
    '''Raised when some functionality is called from the commercial 
       version but is available only in the free, open source version.'''
    MSG = 'This feature is not available in the commercial version. It is only available in the free, open source (GPL) version of Appy.'
    def __init__(self): AppyError.__init__(self, self.MSG)

 

After having proposed this to the first requesting company, I haven’t heard from them anymore. They probably thought I was crazy. But since then, two companies, one in France and one in the UK, recently bought my commercial licenses.

Thanks for doing the interview, Gaetan!