Brian's Waste of Time

Tue, 24 Oct 2006

Talks I Want to Give

There are a few talks I'd really like to give, but don't know the right venue to propose them to. To flesh the thoughts out:

Designing Elegant APIs

Designing an API is an exercise in user interface design, and a good one can make or break the system it is designed for. Elegant API design is no more an intangible than elegant user interaction design -- there is nothing magical about it, except in how it will make your users feel! Some of the topics include:

  • Make the best use of the tools and environments for the system you are working in. This includes simple things like maximizing the value of [tab] in Java IDEs, to more complex stuff like ensuring you play well with the 800lb gorillas in your jungle.
  • Fit the granularity of API to the programs in which it will be used. Compare libcurl in C to libcurl in PHP.
  • Design interfaces around usage rather than implementation structure, including major objects and functions!
  • Building backwards and forwards compatibility into an API from the get-go, even on platforms which are hostile to simultaneous versions.
  • Deciding when a library or framework is more appropriate, and how to blur the lines so you can effectively provide both (see Spring for a great example of this).
  • Effectively evolving an API to keep it relevant and useful over time, without having to throw it away and start over every 18 months.

The talk will certainly be example heavy, though I already feel bad for the tools used as bad examples :-/ Ah well.

Depending on Open Source

How to best work with open source for critical projects. How to interface with open source communities at the right level, mitigate risk for key projects, and sleep at night when a major feature you require in the next version of a library gets voted down.

Real world examples abound here -- about how it has been done well, and not so well. Let's look at what has happened, and how to learn from it. This applies double if your product is, itself, software!

Why You Need a Messaging Bus (But Don't Yet Realize It!)
Run through the problems solved and solutions enabled when you have access to a robust and performant async messaging system available. Good open source options have just become available in the last few years, and most folks don't know how useful they can be! Focuses on examples and howtos on topics ranging from clustering to live visualizations.

Silly little abstracts, but they get the ideas across. I should probably just do them up as nicely illustrated blog posts, but sometimes a mic and slides just seem better :-)

writebacks...

Shane Curcuru

Just do it!
Yes, please. "Depending on Open Source", presuming you have some real case studies to show as examples, would be a killer ApacheCon talk, hands down. The Designing Elegant APIs would also be a contender for AC-US next year, depending on how user feedback is (we're still working on seeing how our attendees are really split). Eagerly awaiting your submissions to our next CFP... (Wombats indeed, Mr. Spam Guard!)

Ben Bleything


Please do give the Designing Elegant APIs talk... even if it is to a local user group. It's somewhat hard to find good information on the topic; more and varied opinions are always good.

Fernando

on API design
I've always been interested in good API design and collected some good links you will hopefully find useful: http://openide.netbeans.org/tutorial/api-design.html http://www.artima.com/interfacedesign/ http://www.codeproject.com/gen/design/APIUsabilityArticle.asp http://www.artima.com/forums/flat.jsp?forum=106&thread=142428 http://www.cafeconleche.org/slides/javapolis/xom/index.html http://www.orocos.org/documentation/deep-shallow-api.html on API evolution: http://developers.sun.com/learning/javaoneonline/2006/coreplatform/TS-6218.pdf on "measuring" API usability: http://www.gotdotnet.com/team/brada/APIUsability.pdf And the discussion Martin Fowler started about "Humane" vs. "Minimal" interfaces: http://www.martinfowler.com/bliki/HumaneInterface.html I never found a book on the subject... may be it's a good opportunity for writing one. Anybody interested?

Karl Southern

API Design
I'd love to see / hear some of these planned talks. I'm especially interested in API design!

comment...

 
Name:
URL/Email: [http://... or mailto:you@wherever] (optional)
Title: (optional)
Spam Guard, translate l33t to English: (hint, it's an Australian animal, plural form)
Comments:
Save my Name and URL/Email for next time