OOPSLA (conference on Object-Oriented Programming, Systems, Languages, and Applications) is the "grand daddy" of conferences that bring together advanced developers and pragmatic researchers. About one thousand attendees came, which was fewer than last year. Undoubtedly, the raging wild fires (on Sunday the air outside was thick with smoke), the competing Microsoft PDC conference, and low IT budgets contributed to the reduced size.
OOPSLA brings together leading practitioners and academics and offers a wide range of events (research papers and workshops, tutorials, demos, design fests, and panels). It was great to see collaboration and communication between industry and academia, and to see and speak with so many "gurus". This report summarizes the week's events.
The conference had a track for agile methods, with a general consensus amongst attendees in favor of this approach. Almost half of all the panels and one third of tutorials were about agile topics. The track addressed effective techniques and how "extreme" to be. The packed room for the panel on Test Driven Development was representative. It was interesting to hear differing perspectives on whether TDD designs are more likely to result in dead ends.
Kent Beck (the inventor of eXtreme Programming) noted that "the simplest thing that can possibly work" didn't mean to become naive and that it's important to build representative tests first, not simple ones. Barry Boehm (Director, USC Center for Software Engineering) claimed that this was a risk for non-functional requirements (e.g., scalability), and implied that TDD should be complemented with some top-level design. Another interesting theme was the idea that one can also test too much and the diversity of testing approaches advocated (such as FIT, test harnesses, visual test tools, even having QA write unit tests).
There were a number of topics relating to Aspect-Oriented Programming; there were tutorials on introductory, hands-on, and more advanced enterprise uses of AspectJ. There were also workshops, demos, research topics, and a practitioner's report (of which I was one of the authors) about incremental adoption of AspectJ for a middleware product line at IBM. More generally, aspects were referenced and discussed as a trend in a variety of other topics, including domain-specific aspect languages (e.g., XAspects from Macneil Shonle et al.).
Domain-Driven Development and Model Driven Architecture
There was a conference track devoted to Domain-Driven Development (3D). Many contributors investigated the use of transformations to generate programs from domain-specific models. David Thomas and Brian Barry of Bedarra introduced "domain-oriented programming", an alternative for creating languages accessible to domain experts. There were several related sessions on model-driven architecture (MDA). A panel discussion featured an interesting series of exchanges between David Thomas and the other panelists, with David Thomas (and audience members including Martin Fowler) questioning the applicability, expressiveness, and platform independence of MDA in general and UML in particular.
Another thread looked at how human psychology can make better programming languages. Crista Lopes and others argued for "naturalistic programming." The talk looked at how to create more expressive AOP and promised more natural ways of referring to objects and exceptions in programs. A keynote from Dave Ungar argued the case for the Self programming language which he co-invented in the 1980's. In both cases, the speakers discussed how people read and reason about concepts and suggested language improvements. There were also topics on more resilient programs using acceptability-oriented computing and automated error repair.
The most visible technology trend was the dominance of Eclipse. It was widely used by attendees and there were a wide variety of interesting plug-ins demonstrated, ranging from a collaboration environment to visualizing behavior of other plug-ins. Some of the work had been funded by Eclipse research grants. The Eclipse consortium was highly visible at the conference, from giving all attendees a copy of "Contributing to Eclipse", to teaching how to create plug-ins, and holding a variety of special events which included three receptions.
Java and .NET
Java was the most commonly used technology by presenters and attendees. From keynotes to tutorials, Java and J2EE were widely discussed at OOPSLA. There were papers about JSPs (in Domain-driven development) and how Tomcat was a motivator for MJ, a module definition and linking language for Java. However, there was an increasing interest in .NET and C# at the conference, such as in the Enterprise Integration Patterns tutorial, especially given that the Microsoft PDC was occurring concurrently.
Service-oriented architectures (Web services) and open source were less visible than at industry conferences, but both of these topics were featured in two of the conference keynote addresses. On Tuesday morning, Lawrence Lessig (Professor of Law at Stanford) talked about the importance of "free culture". He described how recent expansions to the rights of copyright holders will hurt innovation and how people can effectively change the status quo by licensing their works in open source ways such as through the Creative Commons.
Two days later, Tim O'Reilly's keynote focused on the synergy between the Internet and open source "paradigm shifts." Internet-enabled application platforms (e.g., Linux-Apache-MySQL-PHP) are free, and yesterday's applications are now delivered as online services. The three C's of this new world --- software commodities, user customization, and online collaboration --- are now the important factors for service-oriented businesses and software architectures.
There were a number of presentations from technical papers dealing with refinements to OO language design. Many papers addressed implementation topics such as garbage collection and Java performance.
OOPSLA 2003 was a successful conference with many interesting events. It seemed like the conference is in transition, with core OO principles well-established. This year's OOPSLA showcased agile methodology and showed the establishment of the Java and .NET platforms. The increasing awareness of aspects and domain-driven development are trends that are likely to accelerate in future OOPSLAs and, subsequently, in practice.
About the author
Ron Bodkin is the founder of New Aspects of Security, which provides consulting and training on application design and development with an emphasis on application security, Aspect-Oriented Programming, and effective application architectures. Ron is also a member of AspectMentor, a consortium of experts in aspect-oriented-programming. Ron previously worked for the AspectJ group at Xerox PARC, where he led the first AOP implementation projects and training for customers. Prior to that, Ron was a founder and the CTO of C-bridge, a consultancy that delivered enterprise applications using frameworks for Java, XML, and other Internet technologies. C-bridge grew to 900 employees and a successful IPO in December of 1999.
OOPLSA coverage from around the net
Sean's OOPSLA 2003 Trip Report: http://homepage.mac.com/morriss/iblog/index.html
In this report, we get to ride along with Sean through his time at the Conference. He discusses the tutorials that he went on, including topics on Patterns and Test Driven Design, and some BoFs.
Mads Haugb' Nissen OOPSLA Stories: http://weblogs.asp.net/mnissen/
Mads was a student volunteer at OOPSLA. He discusses the panels that he witnessed: Application Servers - One size fits all...or not, UML 2.0, Model Driven Development, Test Driven Development, XP and Agile, and much more.