<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<title>Interview: Mathias Bauer, Project Lead, API</title>
<div class="spaced13">
</head>
<body>
<p class="Header">Interview: Mathias Bauer, Lead, Application Framework Project and Jürgen Schmidt, Lead, API Project</p>
<p><a href="../lspintro.html">-Louis Suárez-Potts</a></p>
<p>2006-07-03</p>
<p>&nbsp;</p>
<p>Mathias Bauer and Jürgen Schmidt are two of the key developers taking OpenOffice.org to the next stage. Lead of the <a href="http://framework.openoffice.org/" target="_blank">Application Framework (framework) project</a>, and a manager of software engineering at Sun Microsystems, Mathias has long assisted in the development of numerous facets of OpenOffice.org growth. As lead of the API project, and also of Sun, Jürgen coordinates our API policies and development. Both projects are crucial to the future of OpenOffice.org's growth and direction as a product and open-source project. This interview, conducted via email earlier this month, is part of a series seeking to chart the shape of things to come for OpenOffice.org. </p>
<p>&nbsp;</p>
<p><i>With 2.0 OpenOffice.org implemented a technology that allows for the more or less easy inclusion of extensions and thus new features on a rolling basis. Can you speak on the nature of the technology and what sort of extensions developers should be interested in working on?</i> </p>
<p> From the developer's point of view OpenOffice.org 2.0 was the starting signal for an improved way of developing OpenOffice.org extensions. </p>
<p> We added new amazing features to <a href="http://udk.openoffice.org/" target="_blank">UNO</a> and started to use them in our API. This needs to develop in the future and we are are already working on this ongoing task. We added the new package manager GUI as a graphical front-end to simplify the installation of extensions. Our package format was extended and now can contain arbitrary content that is described in a structured and defined manner. One of our main goals was to extend the feature set for extensions that want to integrate with the OpenOffice.org GUI, especially for our so called Add-Ons that use a configuration file approach for their integration. These extensions can be compared to what you might know from Mozilla or Firefox, though admittedly our Add-Ons still have much less influence on the OpenOffice.org GUI; on the other hand, they also are much less prone to versioning problems. As explained later, offering more and tighter integration into the OpenOffice.org GUI without getting the ugly versioning problems is one of our main goals for subsequent versions of OpenOffice.org. </p>
<p> So, if you are planning to create OpenOffice.org extensions, don't ask what is possible, join us on the <a href="mailto:dev@api.openoffice.org" target="_blank">dev@api.openoffice.org</a> mailing list and discuss with us what needs to be done to make something possible. We are very interested in the ideas of the developer community about what is missing and what can be improved. This includes APIs, integration interfaces, development tools and so on. [Note: as with most of our lists, you must be subscribed to post; send blank email to <a href="mailto:dev-subscribe@api.openoffice.org" target="_blank">dev-subscribe@api.openoffice.org</a>. All lists are public. -<i>Ed</i>.] </p>
<p>&nbsp;</p>
<p><em>I would add that the new (and still under construction) <a href="http://extensions.openoffice.org/">Extensions Project</a>, initiated by Laurent Godard last year represents a superb opportunity for new and experienced developers. The project centralizes information concerning extensions to OpenOffice.org. It's an ideal project for developers interested in extending OpenOffice.org's functionality. Extensions could range from usability modules that satisfy usability demands to accounting packages to anything else that imagination and skill allow. </em></p>
<p>&nbsp; </p>
<p><i>Another question: OpenOffice.org uses Java for <a href="//base.html" target="_blank">Base</a> as well as other things. Yet, there are very few Java apps that extend OpenOffice.org functionality. What can be done to improve that?</i> </p>
<p> As <a href="http://marketing.openoffice.org/ooocon2005/schedule/friday_developer.html#d6" target="_blank">announced</a> on the last OpenOffice.org conference in Koper we are working on an integration of our development tools into the <a href="http://www.netbeans.org/" target="_blank">NetBeans</a> and <a href="http://www.eclipse.org" target="_blank">Eclipse</a> IDEs. Developers should be able to create UNO components and OpenOffice.org extensions with the help of wizards that free them from the boring routine work and speeds up the development. While the NetBeans work is done in Hamburg, the Eclipse integration is provided by a very active member of our development community, <a href="cbosdonnat.htm" target="_blank">Cédric Bosdonnat</a>, who joined the project by working with us on a Google Summer Of Code project last year. We and Cédric as well will present results on the next <a href="http://marketing.openoffice.org/ooocon2006/index.html" target="_blank">OOoCon in Lyon</a>. </p>
<p>&nbsp; </p>
<p><i>With 2.0 we made a big splash--new technology, new features, new file format. Of course, many of these things had been introduced in 1.x but 2.0 (or anyway the 1.9.x line) was clearly technologically novel. Do you see something like that for "3.0"? Can you hint (or better yet, specify) what new APIs and technology it might include? (And yes, am aware that "3.0" is a little bit of a marketing tactic.)</i> </p>
<p> After 2.0 we changed our release model to having more frequent feature releases. This has an impact on the way we develop features: they will be integrated into the product when they are done and at that point in time they need to have product quality because we will not have an extended beta phase for each and every release. So on our way to a version that deserves the "3.0" version number we will release several minor and micro releases and a beta version. This beta will allow us to integrate some "big" features that we don't dare to deliver in a smaller release time frame. </p>
<p> We are still trying to live in this new world and so at the moment we don't have an exact plan what will be done until the 3.0 release. We don't want to talk about individual user features here, instead of this we can tell you what we are currently working on in a more general way:</p>
<ul type="circle">
  <li>performance improvements (startup, loading and saving)</li>
  <li>stability (not just bug fixing, more in a sense of refactoring)</li>
  <li>modularization of the code base (not as a "big bang", it's a continuous effort)</li>
  <li>looking for features that we can implement together with other members of the community</li>
  <li>improving the development tools (IDE support)</li>
  <li>improving and extending our API</li>
  <li>deployment of "non code" content as extensions, e.g., templates, gallery items, etc.</li>
  <li>improvements in the area of extension maintenance and deployment -- (versioning, dependencies, licencing, signing, updating)</li>
</ul>
<p> A key point for the integration of extensions is the extensibility and accessibility of the application GUI and so we are currently working on the APIs for this integration and their technical base in the code. As a first step in the 2.0.3 release we have more toolbar controls for Add-Ons that allow much more complex interactions. </p>
<p>Another important addition in 2.0.3 is the ability to export basic libraries as UNO packages in the Basic IDE that will make the deployment of basic macros a lot easier. </p>
<p>&nbsp;</p>
<p><i>Where should developers look to learn more? I would, for instance, recommend the developer wiki, but also the <a href="http://development.openoffice.org/" target="_blank">Development</a> page, for starters, and then hit the key lists, such as <a href="mailto:dev@openoffice.apache.org" target="_blank">dev@openoffice.apache.org</a>, <a href="mailto:dev@api.openoffice.org" target="_blank">dev@api.openoffice.org</a>, and so on.</i> </p>
<p> In the past all development related information was collected on the <a href="http://tools.openoffice.org/" target="_blank">tools.openoffice.org</a> and <a href="http://development.openoffice.org/" target="_blank">development.openoffice.org</a> page. Both pages also offer a lot of links to other interesting pages. While these pages will still be the point where you can get the "whole story," we started with a wiki in last November that not only allows you to add or change content more quickly but also focuses on an easier consumption. You can find the wiki at <a href="http://wiki.services.openoffice.org/wiki/" target="_blank">http://wiki.services.openoffice.org/wiki/</a> . It is a fast growing resource that already contains a lot of contributions from OpenOffice.org developers around the world. </p>
<p> If you are interested in component or extensions development and you have already swallowed the basics you can meet us on our development lists, especially the <a href="mailto:dev@api.openoffice.org" target="_blank">dev@api.openoffice.org</a> and <a href="mailto:dev@openoffice.apache.org" target="_blank">dev@openoffice.apache.org</a> mailing lists. </p>
<p>It's also important to add that we are very interested and committed to bettering the OpenOffice.org experience for developers new to the project. For instance, there's an ongoing effort to improving the developer documentation, and a wiki has been started that features examples and tutorials. As well, our Code-Snippet Base, which has many useful snippets of code, is still growing. It's probably the easiest place for a developer's first contributions.</p>
<p>&nbsp;</p>
<p><i>What new features or technology do you think merit most attention?</i> </p>
<p> We think that especially the IDE integration and the extension deployment improvements will be important for extension developers. The first because it should make their life easier, the second because it makes the whole system reliable and usable even in the long term.</p>
<p>&nbsp;</p>
<p><i>Speaking generally, what is the most interesting developer feature you would like to see further developed or implemented?</i> </p>
<p> As we are thinking that the entry to OpenOffice.org development is still not an easy task and we would like to move away some barriers by streamlining our APIs and modularizing the code base. This will reduce the complexity that new developers face nowadays. Another very important feature is the API for GUI programming with OpenOffice.org. </p>
<p>&nbsp;</p>
<p><i>What about so-called "core" development? That would seem to be in many ways one of the most vital development areas....</i></p>
<p> Now we talked a lot about APIs and UNO and how to work with it. But of course OOo development is more than this: many of us work with the C++ code, the "core modules" and this is still the preferred or even the only way to work on bigger features, especially if they need a lot of UI code. </p>
<p> We would love to get some more developers involved in this and work together with us. We know that there are a lot of barriers, but we are trying to lower or even remove them. </p>
<p> The first obstacle seems to be the build environment, but that's not my playground, so I leave it up to others like Martin Hollmichel and Kai Backmann to talk about it. </p>
<p> A developer that got himself used to the build environment usually will ask questions like these: </p>
<ul type="circle">
  <li> Where do I start my development?</li>
  <li>How can I understand how the code works?</li>
  <li>How can I find the code of a particular feature?</li>
  <li>Where can I add a new feature I want to develop?</li>
</ul>
<p> You can get some help from OOo developers on IRC [irc.freenode.net, #OpenOffice.org] or the [project] mailing lists, but this is a time consuming process that doesn't scale very well. We need to enable interested developers to find their way into the code with much less permanent help from our side than now. I think we can address these questions by providing more and better documentation and documented code examples. There is already some information available in the fast growing OpenOffice.org Wiki at </p>
<ul type="circle">
  <li><a href="http://wiki.services.openoffice.org/wiki/Main_Page" target="_blank">http://wiki.services.openoffice.org/wiki/Main_Page</a></li>
</ul>
<p>and the code snippets database at</p>
<ul type="circle">
  <li><a href="http://codesnippets.services.openoffice.org" target="_blank">http://codesnippets.services.openoffice.org</a></li>
</ul>
<p>but additionally we could:</p>
<ul type="circle">
  <li>Describe the general module architecture of the code base</li>
  <li>Explain the general code architecture of the OOo framework and applications</li>
  <li>Assign features to code modules</li>
  <li>Describe typical implementations</li>
</ul>
<p>and many things more. I hope to talk about this in my presentation at the <a href="http://marketing.openoffice.org/ooocon2006/">OOoCon</a> and I'd love to hear suggestions from the community about what else we could do. <em>[The programme to the conference, which takes place 11-13 September, in Lyon, will be published shortly. But all developers of OpenOffice.org should seriously consider attending this conference, as it offers the chance to discuss core technological issues face-to-face with the lead developers.] </em></p>
<p>&nbsp;</p>
<p><em>Thanks! As mentioned, this is the first in a series of interviews focusing on the current and future technology of OpenOffice.org. Anticipated interviews include one Martin Hollmichel, of Tools, and other projects, and probably one of the most important release engineers.</em></p>
<br />
<hr />
<a href="index.html">Return to Articles</a>
</div>
</body>
</html>
