Prev: Evaluation(NIHCL) Up: NIHCL Top: Top

3.4.5. Bibliography

K.E.Gorlen et al., Data Abstraction and Object-Oriented Programming in C++, 1990, Wiley

3.4.6. NetComments

From: Chuck Noren <noren@pogo.den.mmc.com>

I have been a big user of NIHCL. Its not the most elegant library, but there are some big advantages in using it. With any PD library, such as COOL (I have not looked at it), you will find warts and major flaws. I have found this with NIHCL. However, what I did find was that I could get major parts of the project going sooner than if I had to develop a class library myself. The "buyer" must beware on any of this stuff, for there will be hidden costs. The first is some bugs in the library without vendor support. You might get some support from USENET, but if you really start using these packages you will find that you have become one of the "experts". You will need to develop your in house expertise with some enthusiastic "hackers" who love to play with these kind of things and track down bugs as they are found. I've been an enthusiastic hacker of NIHCL for our group and modified it to work with the Object Oriented Database (ObjectStore from Object Design, Inc.).

Personally, I would consider buying a class library (such as the Booch Componants) before getting a free copy of a class library from from a private company (NIHCL is from the U.S. Govt). I take a cynical (and possibly wrong) view of this. If a private company has a REALLY GOOD class library, they may be hesistant to make it freely available, because it becomes something they could sell or use as a competetive advantange against other companies. While we have just made our version of NIHCL Public Domain, we have kept back the really good classes we've developed so that our company can compete better against others. (I would personally rather share more software for sharing really benifits everybody, but I was lucky to convince my company just to let our modified NIHCL go, because we would not get anyone to buy it and others will have modified their copy's of NIHCL soon to work with an OODBMS anyway). The Booch componants cost well less than $1000 (and you get source plus the reputation of a company behind it) and will save thousands in development time. Even NIHCL is worth considering. From experience, its not as slow as some people make out. It does go against the "C++ philosophy" in some respects, but it does have some advantages that fit well in some projects. I feel that no current library will address all the needs off all applications. Certainly NIHCL does not (and COOL, although I have not seen it). But some projects will fit well with the various libraries (ours fit with NIHCL very well). But also be forwarned, getting a class library is like getting a new langauge, there is one hell of a learning curving, but it is well worth it.

From: Chuck Noren <noren@pogo.den.mmc.com>

> What would you consider are NIHCL's strengths? Perhaps a full, * > coherent system of objects? Relatively stable and bug-free? * > Somewhat standardized because many people use it? How is it's * > support for things like graphics and mathematics? *

NIHCL's strengths:

There are some disadvantages to NIHCL, to be sure. However there has been a lot of NIHCL bashing around. As I stated, no class library is a perfect fit for every application and care should be taken not to force fit a class library into an application not well suited for it. Some disadvantages of NIHCL include:

From: Chuck Noren <noren@pogo.den.mmc.com>

I forgot to answer a couple of questions... You also asked if NIHCL provided good graphics support and math support. The answer is no on both counts. We evaluated InterViews over a year ago and rejected it (because we were familiar with X-Windows and want to hack it directly). NIHCL does provide some vector classes which we have not looked at because I could not get them to build with an older version of our compiler. NIHCL doesn't have any math matrix classes and some of the other useful mathematics classes.