Adobe Releases Code for Building Interfaces

Under the open-source MIT License, the company makes available the source code for two C++ libraries, Adam and Eve2, from its Adobe Source Libraries. But Adobe is not using this code in any of its shipping products.

Adobe recently released some source code under the open-source MIT License for creating computer interfaces.

This code from the ASL (Adobe Source Libraries) at Adobe Systems Inc.consists primarily of two C++ libraries: Adam and Eve2.

Adobe is not currently using this code in any of its shipping products. An earlier version of Eve2, Eve (Express View Engine), was used in Photoshop 5 and has seen some use in other Adobe applications.

ASL is the work of two Adobe computer scientists, Sean Parent and Foster Brereton, of Adobes Adobe Software Technology Lab. This is a research group with the job of increasing developer productivity and improving software quality.

Adam is a modeling engine and declarative language for describing constraints and relationships on a collection of values. When bound to an HI (human interface), Adam provides the logic that controls its behavior.

Eve2 is both a declarative language and a layout engine for constructing an HI. The layout engine in Eve2 gives developers a rich description of UI elements that can be used to achieve a high-quality layout automatically across different operating systems and GUIs.

These are both component libraries. They can be used either together or independently. In and of themselves, they cannot be used to create an application. They do not constitute an application framework, but can be used as part of a framework. In addition, the two libraries components also can be used independently.

Both libraries in turn are dependent upon the BoostC++ source libraries. The Boost libraries are free, peer-reviewed, portable libraries that are meant to work well with the C++ Standard Library. They are meant to help form the basis of the next generation of the C++ language Standard.

Parent, in his foreword to the project, described ASL as "a good start."

"As these libraries are incorporated into Adobes products, they will replace tens of thousands of lines of code with simple and short declarations," Parent said. "The Eve layout engine has already saved Adobe millions of dollars in localization costs."

ASL remains a work in progress, though, and it may not be in the mainstream of Adobes product development. "Still, I am convinced that writing correct, high-performance and feature-rich systems can be orders of magnitude simpler than it currently is," Parent said. "By my estimate, 70 percent of Adobes current code base could be better represented declaratively.

"First, we want to give back to the wonderful open-source community which gives us so much," Parent said about the decision to release the code to the open-source community. "Second, we are releasing ASL because we want these problems to be solved. We want to be able to see our designs turned into quality products.

"We believe that technology that helps us build better products will make us a stronger company. We want to build Photoshop and Acrobat and not struggle with the small implementation details. And we realize the problem is far larger than us alone."

But as one Slashdot writer noted,Adobe has had other open-source projects, which are no longer available on its Web sites.

These included several open-source plug-insthat enabled Python programmers to work with several of Adobe programs APIs.

In addition, in 1999, the company released a beta version of its FrameMaker authoring and publishing software for Linux, but it never launched a commercial release.

FrameMaker continues to be available on the Windows and Solaris operating systems, but Adobe in April 2004 withdrew FrameMakerfor Mac OS from the market.