Alex Martelli, senior staff software engineer at Google in Mountain View, California.
In the late '90s I put together in my spare time a simulation system to explore my hobby (the combinatorial underpinnings of the card game of contract bridge). That research eventually led to some important articles in the prestigious journal The Bridge World, but the software system by that time had evolved into an unmaintainable mess (among other issues, an unholy mix of C, C++, assembly, perl, visual basic, ...) so I was looking for the best language to rewrite it from scratch.
A colleague I highly respected recommended Python as that language -- I finally took a look at it and got immediately hooked by the enormous power and productivity. The way I tried out the language was to devote an otherwise-empty weekend (family was away, no urgencies at work) to start developing a website front-end for some parts of that simulation system -- I started on Friday night and was curious to see how much I could get done by Monday.
By Saturday afternoon the website was complete, including a little templating engine which I wrote from scratch (and called YAPTU for Yet Another Python Templating Utility) and of course open-sourced -- so I could easily have versions of the site in Italian, English, and French, simply by picking and choosing the appropriate template files (HTML with embedded Python expressions and statements, basically).
Peter Norvig (well known as the best-selling author of Artificial Intelligence, a Modern Approach, and later Google's Director of Research) spotted and adapted the little YAPTU toy as the core of his rewrite (in Python, of course) of the website for his department at Berkeley, so I guess YAPTU wasn't too bad, for code written somebody who hadn't known anything about Python less than 24 hours earlier ;-)
Python just fit my brain to an extent no other language before or since has ever come close to; it multiplied my productivity by at least an order of magnitude; there was just no looking back. I rapidly got involved with the online Python community, got nicknamed the martellibot for the amount and precision of my contributions, started writing books about the language...
If i had to pick one feature, it would have to be dictionaries. But beyond the single-feature power, the core of Python's strength is how well and regularly the features are integrated, both in syntax and semantics -- how well they fit in with each other into a seamless whole. THAT is what makes it fit my brain!
Two talks: an all-tracks one about API design on Monday, a Spaghetti-track about Python Patterns on Friday.
On the API side of things: it's just about the only area of software development where you really need to invest a LOT of time and energy in doing "design up front" -- the one and only area where agile, incremental, trial-and-error exploratory development and refactoring seriously breaks.
On the pattern side of things: dependency injection and factory patterns work extremely well together -- a key example of how patterns form a "language" of their own!
The all-track talk right after my one on Monday is Hettinger's What makes Python so AWESOME one -- an obvious can't-miss.
As for the Spaghetti-track patterns talk on Friday, there's a later talk on the same track by Alan Franzoni, entirely devoted to Dependency Injection, which promises to be a great complement to my broader and thus inevitably less-deep one.
I would say You're KIDDING me, right?! -- how could ANYBODY be in any doubt with such a great conference at such an awesome venue?!
0 Comments — Add a comment