Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!cornell!uw-beaver!blake!keffer From: keffer@blake.acs.washington.edu (Thomas Keffer) Newsgroups: comp.lang.c++ Subject: Re: Smalltalk-80 like inheritance in C++ possible ? Message-ID: <1335@blake.acs.washington.edu> Date: 25 Mar 89 19:48:55 GMT References: <110@honold.UUCP> <5481@rlvd.UUCP> <1411@sw1e.UUCP> <9174@claris.com> <1421@sw1e.UUCP> Reply-To: keffer@blake.acs.washington.edu (Thomas Keffer) Organization: University of Washington, Seattle Lines: 61 In article <1421@sw1e.UUCP> uucibg@sw1e.UUCP (Brian Gilstrap [5-3929]) writes: >I find, the more I deal with C++, the more concepts I have deal with. For me, >worrying about whether a base class contains virtual functions or not in order >to assure appropriate selection of a function based upon member function >pointers is rather hairy. Yes, I can figure out what's going on. Do I want >to? Not really. > >I recently read Bjarne Stroustrup's article in the latest issue of JOOP about >parameterized types in C++. It boggled my mind. Sure I figured out what >he was talking about, and yes I could decipher the code. But it's all so >complicated with so many exceptions that it begins to seem like it's not >worth the effort to learn. I couldn't agree more! I am NOT a computer scientist. But, I AM a good programmer. It's just that I don't LIKE to learn all the intricate details of a complicated language. (You can have virtual destructors, but not constructors; arrays of objects need an unadorned constructor; etc.) Now, don't get me wrong --- I certainly CAN learn the details and I have picked up C++ (relatively) quickly. But that's not my objective, certainly not my life. Watching other people trying to pick up the language has been a painful (and embarassing... usually they do it at my behest) experience. Example: I had one undergraduate working with me on a REU (Research Experience for Undergraduates) project who spent most of the year just learning the language. He never did get much accomplished on the OBJECTIVE of the project. And this guy is not dumb. He's just not a computer scientist and/or a compulsive hacker. We are going to lose these guys. Can we afford to? I think not. I have real doubts that C++ will ever break out of the cadre of pure CS professionals. It's not like C++ is C but, gee, if you want to, you can learn a little bit and get a little bit of extra functionality in your code. This is not a linear transfer function! To add ANY new functionality, you must learn a LOT. What to do? It seems to me there are 6 main _PRACTICAL_ problems now 1) Poor quality compilers. You never know if it's you or cfront. 2) Few gurus. 3) Few "known correct" examples of non-trivial code. 4) Only two books, neither of them very good. 5) Few precanned, bulletproof classes. 6) Steep learning curve, especially to learn writing new classes. Of these, 1 through 5 will eventually go away. 6 never will. If we are lucky, the language may evolve into one where the majority of the users will combine old classes in new ways, perhaps making trivial modifications to them. I have real doubts, though, that you'll ever see millions of programmers out there writing new classes the way you see them writing new C code. --- Dr. Thomas Keffer | Internet: keffer@sperm.ocean.washington.edu School of Oceanography | BITNET: keffer%sperm.ocean.washington.edu@UWAVM Univ. of Washington, WB-10 | uucp: uw-beaver!sperm.ocean.washington.edu!keffer Seattle, WA 98195 | Telemail: T.KEFFER/OMNET (206) 543-6455