Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!ames!pasteur!ucbvax!tut.cis.ohio-state.edu!rutgers!att!ulysses!andante!alice!bs From: bs@alice.UUCP (Bjarne Stroustrup) Newsgroups: comp.lang.c++ Subject: Re: Smalltalk-80 like inheritance in C++ possible ? Summary: explosive growth Message-ID: <9110@alice.UUCP> Date: 27 Mar 89 15:18:22 GMT References: <110@honold.UUCP> <5481@rlvd.UUCP> <1411@sw1e.UUCP> <9174@claris.com> <1335@blake.acs.washington.edu> Organization: AT&T Bell Laboratories, Murray Hill NJ Lines: 81 Dr. Thomas Keffer, School of Oceanography,Univ. of Washington writes: > It seems to me there are 6 main _PRACTICAL_ problems now > 1) Poor quality compilers. You never know if it's you or cfront. Definitely a problem. C++ usage has grown too fast. Most people are working with first generation compilers and tools. My impression is that the quality of compilers and other tools is improving fast. The fact that there is already real choices for the users guarantees that. My guess is that this problem will disappear. Come fall most people will have access to second generation compilers and tools. > 2) Few gurus. Definitely a problem, but how do you get enough gurus for something that is not a trivial rethread of something well known and where the number of users more than double every 6 month? I see no alternative to providing better courses, better books, etc. This takes time. Many people started last year. The effect will be felt this year. > 3) Few "known correct" examples of non-trivial code. How would you expect to get that for a relatively new language? The only way I can think of would be to keep it from users until a large body of code was very widely available. That was the C and Smalltalk way of solving the problem. With C++, people were in no mood to wait. > 4) Only two books, neither of them very good. I hestiate to comment on the quality issue, but I have seen four C++ books in print in English plus two in Japanese and one in German. In addition, there is quite a few papers, in particular the proceedings of the USENIX C++ conferences. C++ is also nicely explained in Ravi Seti's new text book on programming languages. Finally, I agree, even this isn't good enough, but fortunately there is at least six C++ books with a tutorial bend in the late stages of developent. Again, I expect the diversity will enforce a trend towards quality and a trend towards specialization that will help specific groups. > 5) Few precanned, bulletproof classes. For those to exist somebody has to write them and make them available. You can get that either by delaying the availability of the language or by making the language proprietary (thus creating a captive market making library writing a safe lucrative business). Otherwise, there will be a delay between the appearance of the language and the appearance of large libraries. Proprietary, public domain, and `free' libraries are beginning to appear. > 6) Steep learning curve, especially to learn writing new classes. I conjecture that is primarily a result of the relative newness of the language and of the lack of experience with data abstraction and object oriented programming in general among programmers (yes I know that thousands have genuine experience, but they are drowned by the hundreds of thousands of programmers that do not). In other words, 6 is a simple consequence of 1,2,3,4,and 5. Since 1,2,3,4,and 5 are being taken care of the effort of learning to use C++ well will decrease noticeably. Greater awareness and better teaching of data abstraction and object oriented programming in general will do the rest. So I agree with Dr. Keffer's observations, but not with his conclusion: > 1 through 5 will eventually go away. 6 never will. If you don't feel comfortable with the current state of C++ just leave it alone for a few months (or forever if you wish). Hopefully, nobody is forcing you to use it. What you are seeing (including your #6) is the result of explosive growth and is being taken care of by many individuals and organizations.