Around the turn of the millennium I was working on a C++ project. I had recently discovered the USENET newsgroups and I spent a lot of my time there. Back then, the life and soul of the Italian C++ newsgroup was a person who answered many questions with long, detailed and accurate posts: Alex Martelli.
After a while Alex started giving answers like “Yes, you could do it like that in C++, but in Python it would be so much more convenient” or “I’ll illustrate the idea using Python as pseudo-code, since it’s so easy to understand”. A seed was planted.
During a trip to the US I bought myself a copy of ‘Learning Python’, by Mark Lutz and David Asher – not only a very good introductory book, but also one of the few available at the time! Those were the times when Python bore a ‘1’ as major release number and the Java implementation was still called ‘JPython’.
Another encouragement came from winning the O’Reilly prize draw at an ACCU conference, awarded by my kind host, Josette. I believe I chose just about every Python book they had in their catalogue at the time.
Alex started posting less and less on it.comp.lang.c++, and started gaining fame on the comp.lang.python newsgroup, where he soon earned the ‘martellibot’ nickname, for the number and quality of his posts. And their length. When I heard that he was to write ‘Python in a Nutshell‘ I thought that it would be no smaller than a coconut shell!
Around the same time several people drifted out of the newsgroup, to resurface a little later on the newly-founded Python one. Some of them are among the founders of Python Italia, regular speakers at conferences, and contributors to popular Python projects.
A few years later I met Guido at an ACCU conference. I still don’t know where I found the guts of to impose myself at his breakfast table, counting on his being too polite to send me off. I actually exploited Alex’s name as an ice-breaker, and we went on to talk of topics as diverse as build automation and exchange traded funds.
One day, I received an email from O’Reilly asking me where should they send my complimentary copy of the second edition of the ‘Python Cookbook‘. Now, I am not above accepting unsolicited presents, but I really could not understand why they decided to send it to me. When it arrived, it was accompanied by a letter saying that it was meant to thank me for my contribution. I was even more puzzled, because I’d never even posted any recipes to the online cookbook, then hosted by ActiveState. After a while I remembered mentioning the ‘stateless proxy‘ pattern in a comment to Alex’s ‘borg‘ recipe. I bet not even Stephen King ever got paid that much by the word! It was totally undeserved, considering that I had actually heard of the ‘stateless proxy‘ pattern from one of Alex’s posts on it.comp.lang. moderated.
Years passed, versions of Python came and went, and Python 3k became reality. Now rumours about Python 4 are starting to spread… As for me I’m still a rather sporadic Python programmer, even though I find it an invaluable tool. I even managed to collect a few modules I tend to reuse and put them on SourceForge. You can find them here.
Rereading what I just finished writing I realise that it sounds almost as an O’Reilly advertisement, but all these things really happened and it is a fact that O’Reilly has been publishing valuable Python resources consistently for over a decade. This is not to say that theirs are the only worthwhile Python books: years ago I enjoyed Dave Beazly’s ’Python Essential Reference‘ as a reference and lately Wesley Chun’s ‘Core Python Programming’ helped me better understand some of the recipes from Dave’s ’Python Cookbook’, third edition”, but the people who led me through my career as a Python programmer are undoubtedly Alex… and Tim.
Nicola Musatti has been working both as developer and sysadmin for longer than he cares to admit, occasionally falling to one side or the other. He loves Python because it lets him tackle system administration tasks with the developer’s mindset. Other than Python he has programmed professionally in C, C++, C#, Java and various shells.