I bring my biases to this work, although I have tried to be mindful of them. While I have tried to give the technologies I cover fair treatment, there is no escaping the fact that I had significant exposure to a few of them before I wrote this thesis, and fairly little experience with the others. I would be surprised if this has not affected the end result. In particular, I have spent many years with Embarcadero’s Delphi product, and have written many components for it, including a rich text label that I released as open source in 2002.12 I also had some experience with procuring and using third-party COM components as part of an application I worked on in the late 1990s. As a Java developer, I also had some experience with OSGi prior to writing this report.


  1. Most of the components I have written for Delphi have been statically linked with the software using them, and as a result they cannot be considered components per the definitions of Chapter 1. Had I opted to deploy them as Delphi runtime packages instead (described in section 5.3), they would largely have been in compliance with these definitions.
  2. The rich text label I wrote was contributed to the JEDI Visual Component Library as TJvLinkLabel. To this day, Project JEDI actively maintains it, and it has spawned a fork in the DIHtmlLabel, which replaces the parser with one that is Unicode-aware. (A “fork” is a separate branch of a software project, one that often veers off in a different direction.)