Sponsors

  • Microsoft
  • Nebula
  • Google
  • SugarCRM
  • Facebook
  • HP
  • Intel
  • Rackspace Hosting
  • WSO2
  • Alfresco
  • BlackBerry
  • CUBRID
  • Dell
  • eBay
  • Heroku
  • InfiniteGraph
  • JBoss
  • LeaseWeb
  • Liferay
  • Media Temple, Inc.
  • OpenShift
  • Oracle
  • Percona
  • Puppet Labs
  • Qualcomm Innovation Center, Inc.
  • Rentrak
  • Silicon Mechanics
  • SoftLayer Technologies, Inc.
  • SourceGear
  • Urban Airship
  • Vertica
  • VMware
  • (mt) Media Temple, Inc.

Sponsorship Opportunities

For information on exhibition and sponsorship opportunities at the convention, contact Sharon Cordesse at scordesse@oreilly.com

Download the OSCON Sponsor/Exhibitor Prospectus

Contact Us

View a complete list of OSCON contacts

API Design Anti-patterns

Alex Martelli (Google)
Programming
Location: Portland 255
Average rating: ***..
(3.08, 26 ratings)

Whenever we design a software system, we should always be thinking about how other code (whether our own, or other people’s) will interact with ours (an “API”, in common parlance). Indeed, the most common and terrible mistake in API design is… not doing any! — i.e., not providing any designed, architected way for other code to interact with ours. That’s fortunately less common when “our code” is a library or framework;-), but, alas!, sadly widespread when “our code” is an application or website — that’s why questions about screen-scraping the web and simulating keystrokes and mouse gestures need be so tragically frequent all over the web.

Once past the obvious hurdle of not having any API at all, there’s still plenty of ways we can go badly wrong in the process of designing one - and many of those ways fall into recognizable categories, i.e., patterns. Specifically, since they’re frequently observed categories of defective design, they’re anti-patterns - and that’s what this talk is in fact about (as the smartest among you could tell from the title…).

I’m eminently qualified to present on this subject, since, in a lifetime spent mostly stumbling into software (after actually qualifying to design hardware in college, but only doing that for a few years), I’ve been responsible for more than my share of API design fumbles (plus, of course, just like every other programmer, I’ve done my share of swearing at the design fumbles of other API perpetrators). And, as novelist Richard Bach reminds us, “You teach best what you most need to learn”!-)

Photo of Alex Martelli

Alex Martelli

Google

Alex Martelli wrote “Python in a Nutshell” and co-edited “Python Cookbook”. He’s a PSF member, and won the 2002 Activators’ Choice Award and the 2006 Frank Willison Award for contributions to the Python community. He works as Senior Staff Engineer for Google. You can read some PDFs and watch some videos of his past presentations.

Comments on this page are now closed.

Comments

Brooks Brown
07/29/2011 1:11pm PDT

I liked the longer perspective and more abstract, general treatment of the concept of API independent from current hot topics like REST. More concrete examples would have been nice, but there is only so much you can cover in 45 minutes.

Picture of Fred Willerup
Fred Willerup
07/28/2011 4:35pm PDT

i liked the talk, but i think more examples would be useful.

Gabriel Enriquez
07/28/2011 2:41pm PDT

Sorry, but I just don’t understand why presenters like to use “comic sans” in your presentation?