Friday, May 26, 2006

WebObjects and Questions on Versions

There has been a bit of confusion or consternation about the recent Xcode 2.3 release and the version of WebObjects it contains.

It is understandable that things are unclear. With the recent change to WebObjects, which made it ship as part of Xcode and not as its own product, some big issues were clarified. But there is also some follow-up work that needs to be done. WebObjects is, in important ways, a bigger product than Xcode. It is certainly older. Fitting the multi-colored, day-glo-painted WebObjects bus into the back seat of the Xcode two-seater sports car has been a challenge.

Some things are being done which are not designed to have externally visible effects and this is causing some of the versioning issues that people see.

It is recognized within the developers at Apple that "Xcode", as it is now, is not the monolith it might have been at one point. Information on versioning of Xcode needs to be provided at a finer granularity. Exactly when this might be done is not known.

Developers should realize, though, that WebObjects ships with Xcode. To be more precise, it ships inside the Developer Tools release of which the Xcode application is the "flag ship" signifier.

So, the label "WebObjects 5.3.1" has less meaning than it used to and it definitely has less meaning than some developers seem to think it does. From a technical perspective, it is not clear what meaning it has. Does the meaning of the version have marketing value or technical value? I do not grok marketing, at all, so I do not know.

In my view, the "version" of WebObjects on a machine is derivable from this procedure:

  1. Execute:

    find /System/Library/Frameworks /System/Library/PrivateFrameworks /Developer/Applications/WebObjects /Library/WebObjects /System/Library/WebObjects -name version.plist

  2. Find all of these that are installed by WebObjects. This is, um, left as an exercise for the reader.

  3. Get the union of the keys in these plist files.

In a very real way, though not in a very user-friendly way, that is the way to precisely determine the version of a WebObjects system.

I think that we want to give developers the kind of information that will provide them with the information that they need to understand what a particular release means to them. I believe that we want to provide information about a particular release that explains the benefits and risks of a given release.

All I can say is that this is hard to do. We are open to suggestions, but the WebObjects team also has to follow the rules placed on them by the corporation. And that means lawyers. But that is the world we live in. It is not going to be possible to make everyone happy. Some people want a depth of information that an enterprise products company would provide. Apple is not an enteprise products company. It is Apple.


Post a Comment

Subscribe to Post Comments [Atom]

<< Home