Q:  Why did NeXT choose Objective-C rather than C++?

A:  NeXT chose Objective-C over C++ for several reasons:

1)  We wanted a language which represented the smallest perturbation to the C language, to make it easier for programmers to learn.  In our opinion, C++ was a significantly major change to the C language compared to Objective-C, which adds only a few new constructs to C.

2)  At the time we made the decision, C++ did not support run-time binding, and this lack greatly reduces the advantages of taking an object-oriented approach.  With run-time binding, you need not know the details of the object to which you're sending a message.  This supports modularity and reusability of code, and is essential for a true object-oriented programming environment.  See Chapter Two of the Brad Cox book (Object-Oriented Programming: An Evolutionary Approach; Addison-Wesley, 1987) for a fuller description of these issues.

3)  C++ does not support dynamic loading of objects, once again a key feature necessary in order to take full advantage of the power of Interface Builder.

QA342

Valid for 1.0, 2.0,r 3.0