Generic Programming and Software Libraries


Detail of an event flow diagram showing the libraries a Web request passes through as it is processed by a multitier Web application system. (From my talk at the Dagstuhl Workshop on Software Libraries)

Generic Programming and Software Libraries



Dagstuhl Workshop on Software Libraries
In March 2005, I attended a Dagstuhl workshop on software libraries. The participants were a unique cross section of software library and programming language researchers that included David Musser, Bjarne Stroustrup, Todd Veldhuizen, and Jeremy Siek (just to drop a few names :) ). The goal of the workshop was to devise a research agenda for studying software libraries. The immediate result is the Library-Centric Software Design workshop. At the original workshop, I was the sole representative with extensive industry experience and presented an overview of software libraries from this perspective.
  • Presentation on The Ecology and Biodiversity of Libraries PDF
  • Supplemental poster (11x14)A Library Ecosystem: Multitier Webmail Application PDF
Java Generic Programming
This project demonstrates retroactive modeling in Java. Given an interface (representing a generic concept) and a class, a runtime type-check ensures the class conforms to the interface (i.e., "models the concept" in generic parlance) and generates a proxy class that can be used with generic functions that take objects that implement the interface. The object only needs to nominally conform to the interface (i.e., have the same methods) and does not need to explicitly implement it (i.e. object implements interface). Note that this is not related to Java Generics, but rather shows how to implement STL-like generic programming in Java.
  • Generic Java Paper PDF
  • Generic Java Presentation PPT
  • Generic Java Source Code (tar)