API Design and Evolution
Martin Oberhuber (Wind River ), Boris Bokowski, Michael Scharf
Making For Eclipse · Tutorial (120 mins)
Tags: Committer And Contributor , Java
Wednesday, 10:00, 2 hours | Lafayette
Good APIs are important. They must be easy to use for clients but also provide enough implementation flexibility, and they must be designed so that they can be evolved over time. APIs are the basis of software architecture and componentization. With always too many options available, what guidelines and constraints affect API design?
In this tutorial, we will explain how to design and evolve APIs without breaking client code. We intend to cover Java API design and other elements of Eclipse APIs such as the bundle manifest and plugin.xml files, and we will also touch on the subject of API deprecation and optional compatibility layers.
This is an advanced tutorial mostly targeted at Eclipse committers, although we expect most of the content to be relevant for any software developer. The talk will be based on real-life example APIs, and will go into deep technical detail. However, for your entertainment, we will also tell interesting stories from the API trenches.
Martin is the chair of the Eclipse Architecture Council, member on the Eclipse and DSDP PMC, Platform core and e4 committer, Target Management project lead and a certified ScrumMaster. Driven by his desire for constant improvement, he is involved in many areas around Open Source and Eclipse. Martin holds a degree in Telematics from the University of Technology Graz, and has been working for Wind River in Salzburg, Austria since 1998.
Boris Bokowski is a Software Developer with IBM Rational in Ottawa, Canada. He is the technical lead of the Eclipse Platform UI team, and a committer on the e4 project. He is also part of the "API police" for the Eclipse Platform, a member of the Eclipse Architecture Council, and a committer representative on the Eclipse Board of Directors. He holds a PhD in computer science from Freie Universität Berlin, Germany.
The guy who always asks the stupid questions...