DEVELOPER CAMP

Sourcing It Out

Simson L. Garfinkel

This spring, RightBrain Software announced that it would be providing the source code for its Portfolio, LaunchPad, LockScreen, and RightBrain Rulers programs. Despite the fact that RightBrain President Glenn Reid made the announcement on April 1, it was no joke.

For most users, RightBrain's decision won't make much of a difference at first. After all, most NeXT users don't have the time or inclination to write their own programs, let alone make changes to Glenn's. They will ignore the source-code directory on RightBrain's distribution disks and use the compiled version of the applications instead.

For some companies, though, RightBrain's decision will be a godsend. For starters, it will make it easy for programmers to add new features to Reid's handy utility programs. Don't like the way RightBrain Rulers shake up and down when they are locked together? Just take out the code. Want more than two rulers on the screen at a time, or want rulers that measure in scaled feet instead of inches? Just add a few lines. A draftsman might add a protractor.

"Many of our customers are capable of customizing our applications themselves," says Reid. "Why not give them the source code?"

Why not, indeed? Reid's programs will also provide some fantastic examples to NeXTSTEP programmers who are developing their own software. Anybody who wants to see how to do drag-and-drop, get the icon for a file, or launch an application in Workspace Manager just needs to look at the LaunchPad source to see how it is done.

The net result will be more hot applications for NeXTSTEP, which in turn will help everybody developing software for this platform – including Reid. The easier we make it for people to develop those "compelling NeXTSTEP applications," the more reason we give for customers to purchase NeXT systems.

RightBrain's move is daring, and I wish that other companies would follow Reid's lead. No other commercial NeXTSTEP program comes with the source code. Think about what this has meant all your computing life: If a commercial program has a bug or lacks a feature that you need, you've had to live with it, beg the program's maker to fix it, or move to a different program. This is the tyranny of commercial software.

Some people now think that other companies will replace tyranny with piracy, ripping off RightBrain's code and ideas to write their own Rulers and LaunchPad clones. This probably won't happen.

First, why would anybody bother? LaunchPad is already on the market (as are several other Dock extender programs). Any programmer with the smarts to write another Dock extender probably isn't going to waste the time; there are just too many other vital programs that need to be written for NeXTSTEP.

Second, there is the matter of ethics. Anybody stealing Reid's code and putting it into a commercial app will have to bear the light of public scrutiny. Glenn has a good name in the NeXT community. Who would buy a program from a company that has wronged him?

Third, there is the legal issue. RightBrain's source-code license allows companies to use RightBrain's code in their custom apps but not in other commercial products. Anybody who puts RightBrain's source into a commercial application would be inviting a lawsuit.

Besides benefitting its users, RightBrain's decision to ship source code is likely to benefit RightBrain as well. That's because Reid's users – especially those at universities – will fix his bugs, add new features, and send the modifications back for incorporation into future releases of the program. By making his code public, he'll literally be getting hundreds of volunteers on the Net to fix his bugs and add new features to his programs. And then Reid will turn right around and resell their work for a profit.

"Students have a lot of time and great ideas," says Reid. "We'll stick their name in the Info panel, and everybody will be happy."

Reid didn't invent this idea of shipping source code. Adobe, one of Reid's former employers, shipped the source code for its Transcript package. Most of Transcript's snazzy features and bug fixes came from people at universities who took matters into their own hands. True hackers!

Another good example of the power of providing users with source code is the Cambridge, Massachusetts–based Free Software Foundation (FSF), which has been providing the source code for its free UNIX programs for more than five years. People around the world improve the programs and send back the fixes to FSF. As a result, FSF's GNU C Compiler is the best C compiler in the world; that's why NeXT uses it.

More NeXTSTEP developers should follow RightBrain's lead and make their source code available. But let's move beyond C compilers, developer tools, and small programs that approach freeware: If bugs in these beasts can be fixed and improve the app, then the same has to be true for larger productivity apps.

In this regard, RightBrain seems to lack the courage of its own convictions. Rulers, LaunchPad, Portfolio, and LockScreen aren't RightBrain's bread and butter; that distinction belongs to PasteUp, the exciting page-layout program that Reid is banking on to make his fortune. Reid has decided not to release PasteUp's source code, although he says that he will include source-code examples to help people read PasteUp's internal file format. He may also provide a means for people to make their own custom modifications to PasteUp.

That's a good start. But the real power of object-oriented programming is code reusability. You can't reuse code if it is bundled up inside somebody else's application program. And even the largest NeXT developer doesn't have enough programmers to implement all the good ideas its customers have.

If NeXTSTEP has any chance of becoming the major operating system of the 1990s, developers from different companies will have to stop spinning their wheels in their own corporate cubbyholes and begin working together.

Simson L. Garfinkel, a NeXTWORLD senior editor, is coauthor of NeXTSTEP Application Programming (Springer-Verlag, 1992).