OOPSLA 2006
October 13, 2006
I’ve been deciding which sessions to attend at OOPSLA 2006. There’s a lot going on so, unfortunately, I’m going to have to miss some intersting ones. Ther Onward track is particularly insteresting but i want to achieve a balance.
Here is what I have decided:
Tuesday
Brenda Laurel Designed Animism: Poetics of a New World
Onward!: Gabriel Conscientious Software
Onward!: Baniassad The Geography of Programming
Linda Northrop Scale Changes Everything
Panel: GoF Design Patterns: Beginnings and Futures
Wednesday
Guy L. Steele Jr. A Growable Language
Onward!: Simonyi Intentional Software
Onward!: Knöll - Pegasus: First Steps Towards a Naturalistic Programming Language an area I am very interested in.
Joshua Bloch – How to Design a Good API and Why it Matters
Practitioners Reports including some talks realted to Domain-Driven Design
Thursday
Philip Wadler Faith, Evolution, and Programming Languages: from Haskell to Java to Links
Panel: Convergence of XP and SCRUM
Panel: Young Guns/OO: The Next Generation
It is a joy to work with a clean, clearly defined API. As an API evolves some methods (or classes) will be deprecated over time. Often the method or class will not beremoved for compatibilty reasons.This does not mean that it should continue to be used. Of course, the deprecation should be documented and i Java the @deprecated javadoc tag is the perfect way to do this. It should explain why the method/class was deprecated and the preferred replacement.
Of course not all classes in a libaray form part of its API. Various conventions are followed such as *.impl.* or *.internal.* packages. Sometimes this hint is ignored by devlopers using the API and this inevitably leads to broken code when a new version of the library is released. One project which makes good use of the *.internal.* convention is the eclipse platform but some plugin developers insit on ignoring it!
One possibility is to use AspectJ to highlight design violations. Adrian Colyer has an example of something like this, using an Architecture aspect in Simplifying Enterprise Applications with Spring 2.0 and AspectJ .
Emacspeak – The Complete Audio Desktop
June 19, 2006
I first came across emacsspeak several years ago and was reminded of it over the weekend when a piece of rock hit me in the eye while out climbing. Luckily no real harm was done and I escaped with just a scratch. As the name suggests it is based on emacs but it doesn't just speech-enable emacs. There are currently 150 applications supported allowing the visually impaired to do anything from using google maps to programming in java and ruby.