wtwolfe@hubcap.clemson.edu (Bill Wolfe) (09/29/89)
Ada is now entering the revision process, and much has transpired over the last ten years. Many ideas have emerged, both from inside the Ada community (e.g., Hilfinger's ideas to the effect that literal recognition should not be limited to the predefined types, but should in fact be definable for user-defined abstract data types as well), and from outside the Ada community (notably multiple inheritance). When Ada was first designed, the objective was to provide the maximum possible support for good software engineering practices, given what was then known about programming language technology. Unfortunately, compiler maturity is just now reaching levels which make the language attractive as a production tool, and in the meantime the continuing advancement in the theory and practice of programming language design have made the delay very costly to Ada's prospects for widespread acceptance. Moreover, some persons who have been in a position to observe the Ada community seem to be of the opinion that for a significant number of members of the Ada community, Ada 83 has become an end rather than a means; in their estimation, Ada will fall victim to the resistance to change which seems to plague virtually all human endeavors. They cite the recently expressed view that inheritance would result in too great a setback for Ada compiler maturity as an example, saying that inheritance has already been proven to be efficiently implementable and that this is merely a smoke screen for resistance to new concepts. Therefore, I would like to pose this question to the Ada community: what are the basic objectives of Ada 9X? Specifically, is Ada going to be something that is tied to the idea of maximum support for the practice of software engineering? Is the DoD *really* committed to making Ada the primary vehicle of software engineering technology? If so, what is being done to close the gap between the dream of widespread Ada use and the reality of the widespread use of COBOL, C, C++, and Eiffel instead? I do not mean to imply that tremendous progress has not been made; as John Foreman (I believe) recently noted, Ada is much farther along than COBOL was at a similar point in its existence. However, it is extremely frustrating to see people choosing C++ and Eiffel instead of Ada because of this ten-year revision cycle (and perhaps a bad bet that inheritance would not turn out to have a bright future). It is extremely frustrating to see employment advertisements calling for knowledge of the likes of C or COBOL, with nary an Ada advertisement in sight. But the worst of all is listening to people assert that Ada is obsolescent and will never be able to catch up. As a software engineer, I strongly believe in the Ada dream. But there have been big problems associated with realizing that dream. An explicit linkage of Ada 9X to maximum support for the software engineering process, combined with a shortened five-year revision cycle, would go a VERY long way toward making that dream a reality. Bill Wolfe, wtwolfe@hubcap.clemson.edu
ryer@inmet.inmet.com (09/30/89)
RE: /* Written 9:59 pm Sep 28, 1989 by wtwolfe@hubcap.UUCP in inmet:comp.lang.ada */ /* ---------- "Ada 9X objectives" ---------- */ > ... (notably multiple inheritance). > ... Unfortunately, > compiler maturity is just now reaching levels which make the language > attractive as a production tool, and in the meantime the continuing > advancement in the theory and practice of programming language design > have made the delay very costly to Ada's prospects for widespread > acceptance. > ... They cite the recently expressed view that inheritance > would result in too great a setback for Ada compiler maturity as > an example, saying that inheritance has already been proven to be > efficiently implementable and that this is merely a smoke screen > for resistance to new concepts. > Bill Wolfe, wtwolfe@hubcap.clemson.edu /* End of text from inmet:comp.lang.ada */ If it costs $500k each to add a high quality multiple-inheritance type system to Ada compilers, and there are 15 separate baselines (FE's), then the cost of the feature (at high quality) is $7.5M. Will enough C++ and Eiffel users go out and buy one to cover the investment? Should the DOD: A. Require a full class/inheritance/etc system in Ada 9X AND prohibit the use of Eiffel, C++, Simula, etc. in RESEARCH as well as in major production programs in order to force an adequate market to be created? or B. Put in Ada 9X only what the current market is large enough to pay for? or C. Put in multiple inheritance and let the quality and availability of compilers settle wherever it may? or D. <fill in the blank> Please don't take this note as a flame: I see the Ada 9X contents issue as being primarily one of economics, not cultural inertia. I would be quite interested in comments about how the "won't-use-it-unless-its- good-and-it-won't-get-good-unless-you-use-it" stalemate can be broken. I'm hoping the 9X Requirements Team will ask for "enough building blocks so you can do object oriented programming reasonably well without revising the entire type system". Mike Ryer (working, but not speaking, for Intermetrics (an Ada, C, and other language compiler vendor, applications developer, and contract research company, which believes in using the best available software engineering technology as much as anyone, but is also a for-profit business.))
billwolf%hazel.cs.clemson.edu@hubcap.clemson.edu (William Thomas Wolfe, 2847 ) (10/03/89)
From ryer@inmet.inmet.com: > [Cost of an Ada class/inheritance system: $500K/compiler] > [...] I see the Ada 9X contents issue > as being primarily one of economics, not cultural inertia. I would be > quite interested in comments about how the "won't-use-it-unless-its- > good-and-it-won't-get-good-unless-you-use-it" stalemate can be broken. My article was not necessarily about inheritance in particular, but rather about the need to make Ada a function of software engineering technology as of each revision point. Beyond that, I'd just like to note that in general, the longer a necessary change is delayed, the more painful it becomes. Furthermore, if Ada ever becomes decoupled from major advances in software engineering technology, then Ada will have no future. IMHO, Ada must either grow now or die in the nursery. To further stimulate this discussion, I'm reposting below a recent article from comp.sw.components, where a similar discussion has been recently taking place. I believe Mr. Crawley's views are shared by a large number of people outside of the Ada community. Bill Wolfe, wtwolfe@hubcap.clemson.edu ------------------------------------------------------------------------- From scc@cl.cam.ac.uk (Stephen Crawley) Newsgroups: comp.sw.components Subject: Are "production" programming languages dinosaurs? Bill Wolfe writes: > Ada is the result of a language ENGINEERING process. There was > a deliberate decision that the definition of the language would > be held stable for ten years at a time. This permits certain > economic assumptions to be made, which was judged to be more > important than satisfying those who think that new versions of > a language should be generated every six months. This is a > PRODUCTION language, not a RESEARCH language. It offers a lot > of advantages (portability, compiler validation, infrastructure) > not present with other languages, in addition to a very high level > of support for good software engineering practices. Well how come ADA seems to be largely irrelevant outside of the defense sector? ADA 83 was 5 - 10 years out of date even before it was finalised. Unless it gets a RADICAL overhaul, ADA 9x will be 10 - 15 years out of date. Doubtless, the reasctionaries and religious zealots from the software engineering industry will make sure that much of the important work done by researchers over the last 15 years (like GC technology, functional programming, designing languages to make formal verification possible) will be ignored ... just like they did for ADA 83. > We are nearing the end of the ten-year period of definitional > stability, and obviously this is when the number of new ideas > which have not yet been incorporated is at its largest. Sadly ADA 83 isn't anywhere nearing the end of its life ... even for writing new software. It would be very optimistic to expect ADA 9x software development environments to be available before 1995, which puts ADA 83 only 1/2 way through its life. And even that is ignoring the inertia inherent in the software development process. I can't see many project managers leaping to ADA 9x half way through a large project. -- Production language design should be an on-going evolutionary process. The language design should reviewed regularly to incorporate new proven ideas from research languages and the results of experience from the production language itself. A new language version every 2 years sounds about right to me. Production language designers should also avoid the pitfall of excessively compromising the language design for backwards compatibility. Outdated ideas and language constructs should be phased out as quickly as possible. What about all the software in old versions of the language? Who does the job of converting it I hear you ask? It should be the task of the people who build programming support environments to write conversion tools to largely automate the task of converting code from one version of the PL to the next one. Maybe these ideas are not workable right now ... production programming support environments aren't really up to the task yet. But this is the direction the Software Engineering industry should be aiming. The process of change in computing is inevitable; we should be going with the flow not trying to hold back the tide. -- Steve
billwolf%hazel.cs.clemson.edu@hubcap.clemson.edu (William Thomas Wolfe, 2847 ) (10/03/89)
In an earlier comp.lang.ada article I included a copy of a recent article from Stephen Crawley in comp.sw.components. I'd like to comment here on some of the points raised. > Well how come ADA seems to be largely irrelevant outside of > the defense sector? That depends strongly on your definition of "largely irrelevant"; there is a large and growing number of non-defense projects and companies using Ada. The new generation of highly optimizing Ada compilers deserves at least some of the credit for this substantial and accelerating growth. > ADA 83 was 5 - 10 years out of date even before it was finalised. Unless > it gets a RADICAL overhaul, ADA 9x will be 10 - 15 years out of date. > Doubtless, the reasctionaries and religious zealots from the software > engineering industry will make sure that much of the important work done > by researchers over the last 15 years (like GC technology, functional > programming, designing languages to make formal verification possible) > will be ignored ... just like they did for ADA 83. In fact, this is not correct. Ada 83 explicitly provides for garbage collection as an optional compiler service. The rule that functions must not modify their parameters was probably a direct result of functional programming ideas. Finally, formal verification is a major goal of the software engineering community, and Ada was designed to support it to as great an extent as possible. For example, the use of the termination model of exception handling was (at least in part) motivated by formal verification considerations. > Production language design should be an on-going evolutionary process. > The language design should reviewed regularly to incorporate new proven > ideas from research languages and the results of experience from the > production language itself. A new language version every 2 years sounds > about right to me. This is too frequent; five years might be reasonable, but not two. I don't think the compiler validation suites, etc., would be able to respond meaningfully to a revision cycle which was THAT frequent. > What about all the software in old versions of the language? Who does > the job of converting it I hear you ask? It should be the task of the > people who build programming support environments to write conversion > tools to largely automate the task of converting code from one version > of the PL to the next one. The US Government is actively planning to maximize the use of automatic translation technology during the transition from Ada 83 to Ada 9X. > Maybe these ideas are not workable right now ... production programming > support environments aren't really up to the task yet. But this is the > direction the Software Engineering industry should be aiming. The process > of change in computing is inevitable; we should be going with the flow > not trying to hold back the tide. On this I agree. But another good reason to only revise no more quickly than five years at a time is to give new ideas a chance to mature. Once a new idea has proven itself, and has become reasonably agreed upon to be a good thing that production languages should have, there should be a process by which production languages incorporate new developments in software engineering technology, and this is what should be accomplished by the Ada 9X scheduled revision process. Bill Wolfe, wtwolfe@hubcap.clemson.edu
billwolf%hazel.cs.clemson.edu@hubcap.clemson.edu (William Thomas Wolfe, 2847 ) (10/03/89)
From ryer@inmet.inmet.com: > If it costs $500k each to add a high quality multiple-inheritance type > system to Ada compilers, and there are 15 separate baselines (FE's), > then the cost of the feature (at high quality) is $7.5M. Will enough > C++ and Eiffel users go out and buy one to cover the investment? Look at it this way: if Ada 83 is not upgraded to reflect recent advances in software engineering technology, then your investment in Ada in general will go down the tubes along with the language. We already know from a number of articles (e.g., "Comprehensive Scheduling Controls for Ada Tasking", Tzilla Elrad, Ada Letters, Fall 1988, and "Programming Atomic Actions in Ada", A. Burns and A. J. Wellings, Ada Letters, September/October 1989) that the entire Ada tasking system is going to have to be overhauled. A good inheritance/class system in Ada 9X should be introduced now along with this overhaul of the tasking system; I personally think that if this is done, the resulting growth of Ada will provide rich rewards to the compiler vendors who followed. Comments were made at Tri-Ada '88 to the effect that while there are real risks associated with changing (to Ada), there are even larger risks (competitive risks) associated with NOT changing, and this is what must be brought home to those organizations which are still using the older languages. Perhaps we would do well to heed our own advice. Bill Wolfe, wtwolfe@hubcap.clemson.edu
billwolf%hazel.cs.clemson.edu@hubcap.clemson.edu (William Thomas Wolfe, 2847 ) (10/06/89)
From jbg@sei.cmu.edu (John Goodenough): > no one yet knows what the likely changes might be, because the change > requests have not yet been analyzed against the stated goals of the > 9X process... I would tend to rather strongly doubt that any significant number of the change requests appearing in the places I described will be in conflict with the stated goals of 9X. > "to revise ANSI/MIL-STD-1815A to reflect current essential requirements > with minimum negative impact and maximum positive impact to the Ada > community. The Ada 9X process is a revision and not a redesign of the > language and should be viewed as a natural part of the language maturation > process." [From the Ada 9X Project Plan, January 1989] > > In my opinion, this means the goal is to improve the usability of Ada, and > this means fixing problems while not destabilizing the adoption process or the > quality of Ada implementations. How this can be done will be the subject of > much discussion in the next few years, but major and widespread > incompatibilities certainly are not consistent with the stated goals. Major and widespread incompatibilities which do not offer strong advantages would not be consistent, but where a strong advantage is to be gained (e.g., the ability to apply a high-powered multiple inheritance system), the magnitude of the positive impact would certainly overcome the possibility that an automatic translator might be required. This is completely consistent with the language maturation process, and corresponds directly to the continuing maturation of the software engineering process. My contention is that if 9X does not track the state of the art with respect to the software engineering process, then the adoption process will be "destabilized" completely, since more modern languages which provide better support for the software engineering process will be used instead. THAT is inconsistent with Ada 9X objectives. > It is certainly premature to suggest that some kind of automatic > translator will be required. In fact, I think most people involved > with the effort would be appalled if something called an "automatic > translator" from Ada 83 to Ada 9X was required. What I am suggesting is that it would be an extremely good idea to assume that this will be the case. If not, fine; but given the amount of evolution which has occurred with respect to the language capabilities needed in order to provide support for the modern software engineering process, I would certainly consider it a good idea to be prepared to use an automatic 83 => 9X translator as part of the conversion. Bill Wolfe, wtwolfe@hubcap.clemson.edu
billwolf%hazel.cs.clemson.edu@hubcap.clemson.edu (William Thomas Wolfe, 2847 ) (10/09/89)
From munck@chance.uucp (Robert Munck): > I think that many of the participants in this discussion thread are > missing an important point: the Ada effort is NOT primarily concerned > with the state of the art in programming languages, but rather that > of large-scale software engineering. I think otherwise: the effort is not to link Ada with the state of the art in programming languages, but to link Ada with the state of the art in software engineering. ^^^^^^^^^^^^^^^^^^^^ > These are two very different things, and it is to be expected that the > programming language chosen would be different. For example, language > stability is an important characteristic of this kind of s/w engineering; > the 10-year language upgrade period is on the same order of magnitude > (or even a bit low) as the time required for a big software project, > either DOD or commercial. Ada is intended to reduce life-cycle costs, > and changing the language every few years would have a large negative > effect on that. I see no reason why lengthy projects have to switch languages in mid-stream UNLESS they think it will help them out. Of course, given the existence of automatic translation facilities and the ability to exploit pragma Interface in both directions, this may in fact be the case. > What we have here is a failure of communication between research and > practicality. Universities and commercial research centers have very > little chance for experience in software projects that require hundreds > of programmer-years with large geographic and temporal distributions. > It is quite irrelevant to proclaim the powers of brand-new languages > until they have been used successfully in such large projects. Has > Has there been a C++ development of 500,000 lines or more that has > become a product in some sense and has been widely used? One that > has been developed by a prime/sub-contractors arrangement of a half-dozen > companies and passed on to another such group for maintenance? Well, > Ada can't claim many such either, but it was designed for that > kind of situation. The prime/subcontractor arrangement exists only in the realm of government contracting, and hence it would be unrealistic to expect an exact parallel in the commercial realm. However, there appears to be a substantial amount of C++ activity in industry, and some large products *have* been produced. I'm not sure of the exact line counts, but a quick query to comp.lang.c++ would undoubtedly produce all the statistics you can eat. There are a lot of negative things in C++, and a lot of the good stuff in Ada is not available in that language. The only two real advantages C++ can cite are: easy transition for C programmers, and multiple inheritance. The first is not something we SHOULD worry about; we don't need to provide C programmers with the ability to do all their favorite hacks. The second is a real problem, because the use of multiple inheritance is an important software engineering mechanism. It reduces the amount of code that must be written, and increases the speed with which products can be produced. By incorporating this mechanism into Ada, the sole argument for C++ becomes the unwillingness of C/C++ programmers to give up their hacking ways, and this is a problem we can successfully address. Bill Wolfe, wtwolfe@hubcap.clemson.edu
jcardow@blackbird.afit.af.mil (James E. Cardow) (10/10/89)
rcd@ico.ISC.COM (Dick Dunn) writes: >> ...Consider the ten to twenty year development cycle for large projects... >If you have a ten-year development cycle for a software project, you're >going to be producing obsolete software! You can't help it. Ten years is >just too long for anything tied to computers--the technology moves too >fast. >You've got to get software up and working, and performing at least some of >the needed functions *soon*. You also need it to be adaptable, so that it >can evolve as needs and technology change. I must admit that my comments were made with only my own experience in mine, that being large DOD sponsored projects that had developments spanning two to three computer generations. However, that is the primary Ada environment. In the military software support world we are for the most part just entering the support for JOVIAL systems. Having been responsible for "selling" Ada to the people attempting to prepare for "new" software, I'm convinced that injecting new technology especially evolving technology may very well be a cure more painful than the disease. Consider the problem in a real context. System software in the +100,000 lines of code, with supporting software at a 4:1 ratio. Add to that simulator software that must function exactly like the real thing. Now add unique hardware, especially processors. If the system were stagnant and the budget available the conversion to a new language would be simple (simpler?). But reality says the money for change is small, and the user demand for improvements is large. The changes come in modification of 10 percent of a unit here, 5 percent there. The only real opportunity is when major systems are effected, but that is rare. >What I'm getting at is that I think we're trying to address the wrong >problem. Rather than trying to solve "How do we deal with long development >cycles?" we should be solving "How do we shorten the development cycles?" >-- In the years I have spent chasing DoD software I have always worried about how to get it delivered closer to the expected date, the idea of shorter never occured to me. But, I'm changing roles now to teach software engineering and would greatly love to discuss ways to shorten the development cycle, or ways to inject new technology into old systems. If you have ideas on the subject within the context of large, complex systems or know of any work in these areas let me know. As a side note, Ada can be added to older systems. It takes convincing people that the benefits over the long run are worth the effort.
munck@chance.uucp (Robert Munck) (10/10/89)
In a previous article, I said: > ... the Ada effort is NOT primarily concerned > with the state of the art in programming languages, but rather that > of large-scale software engineering. > And in article <6699@hubcap.clemson.edu> wtwolfe@hubcap.clemson.edu replied: > > I think otherwise: the effort is not to link Ada with the state > of the art in programming languages, but to link Ada with the > state of the art in software engineering. > ^^^^^^^^^^^^^^^^^^^^ Does anyone else get the feeling that he's not LISTENING? It must be wonderful to have the leisure to reply at length to every posting, no matter what, but the replies should be based on what was originally written. -- Bob <Munck@MITRE.ORG>, linus!munck.UUCP -- MS Z676, MITRE Corporation, McLean, VA 22120 -- 703/883-6688
billwolf%hazel.cs.clemson.edu@hubcap.clemson.edu (William Thomas Wolfe, 2847 ) (10/11/89)
From article <73079@linus.UUCP>, by munck@chance.uucp (Robert Munck): > In a previous article, I said: >> ... the Ada effort is NOT primarily concerned >> with the state of the art in programming languages, but rather that >> of large-scale software engineering. >> % And in article <6699@hubcap.clemson.edu> wtwolfe@hubcap.clemson.edu replied: %> %> I think otherwise: the effort is not to link Ada with the state %> of the art in programming languages, but to link Ada with the %> state of the art in software engineering. %> ^^^^^^^^^^^^^^^^^^^^ > > Does anyone else get the feeling that he's not LISTENING? > It must be wonderful to have the leisure to reply at length > to every posting, no matter what, but > the replies should be based on what was originally written. It was. What you originally wrote (prior to the included material) was words to the effect that an effort is being made to link Ada with the state of the art in programming languages RATHER THAN the state of the art in software engineering, and this contention is what I took issue with. I submitted instead that the idea was to determine (as was the case with Ada 83) what language capabilities would best support software engineering practice, and move from there to specific language constructions. I see no basis for your contention that the state of the art in programming languages is being considered as the driving factor; what has changed is the state of the art in software engineering practice. This in turn requires new programming language support facilities. Example from Ada 83: Support shall be provided for data abstraction. Resulting constructs: generic packages, limited private types. Example for Ada 9X: Support shall be provided for object-oriented software development. Resulting constructs: classes, a multiple inheritance mechanism In each case we have a software engineering practice (data abstraction, object-oriented development) for which language support is required. Hence, it seems that the assertion that proposed changes are not being driven by software engineering requirements is not correct. Perhaps you know of a counterexample -- some proposal which is not related to support for software engineering practices. If so, please point it out directly. Bill Wolfe, wtwolfe@hubcap.clemson.edu
rcd@ico.ISC.COM (Dick Dunn) (10/12/89)
William Wolfe writes about Ada 9X and C++ > There are a lot of negative things in C++, and a lot of the good > stuff in Ada is not available in that language. The only two real > advantages C++ can cite are: easy transition for C programmers, and > multiple inheritance... This is a parochial view--something which is a perennial problem in the Ada community, and which has done a lot to inhibit interest in Ada, let alone acceptance of it. If you want folks to move to Ada, you can't get it to happen by just proclaiming the obvious, innate superiority of Ada and waiting for them to arrive in droves. You're going to have to try to understand why they're using C (or C++ or whatever they're using). There are many reasons; there are reasons not to convert to Ada; there is inertia. The harder you try to dismiss their reasons by working from your own viewpoints, the less credibility you have. (The reasons may not even be good ones! They still have to be addressed.) The credibility problems only get worse as you deal with more experienced software people. The longer people have watched and worked in software, the more alleged panaceas they've seen, and the more sure they are that there aren't any panaceas. Also, it's likely that they've worked in some truly awful languages and have produced decent software in spite of it, so they'll doubt that the choice of programming language is as important as you say. Finally, they'll have been watching the progress of Ada over the years and will have concluded that with the enormous amount of money thrown at it, if it were truly wonderful it would have really caught on by now. Part of what I'm saying is that you've got a marketing problem. Even if you have a wonderful product, you still have to sell it--you'll go broke if you just wait for customers to find you. And a lot of us aren't convinced that the product is all that wonderful anyway. [Wolfe finishing up on importance of multiple inheritance] > By incorporating this mechanism into Ada, the sole argument for C++ > becomes the unwillingness of C/C++ programmers to give up their > hacking ways, and this is a problem we can successfully address. This is flawed in several ways. The first is the attitude that C/C++ programmers have "hacking ways" somehow tied to the language, and that they can be corrected by setting them on the One True Path to Ada. Look, this is arrogant on the part of Ada folks and demeaning toward the C/C++ folks. You should be able to see that this sort of attitude won't cut it, *regard- less* of how much you like Ada or dislike C++! The arrogant and insular attitudes of Ada's adherents have done far more damage to the language than the lack of any feature could do. Also, the argument that you can just add multiple inheritance and win the battle is based on the assumption that C++ is now static, that it's not going to acquire any more useful features. I suspect strongly that this is a mistaken assumption. You had better assume that you are aiming at a moving target. If you want anything approaching a contemporary programming language, you're not going to get it by taking five years to get to where C++ is now, and then proclaiming you're done. The activity and adaptability of C++ is something you're going to have to address somehow if you're going to "compete" with it. Beyond that, if you just add a feature to Ada, it doesn't immediately become as useful as a feature that's existed in C++ for a while. There's a maturing period, during which people find the gotchas and evolve the paradigms. -- Dick Dunn rcd@ico.isc.com uucp: {ncar,nbires}!ico!rcd (303)449-2870 ...No DOS. UNIX.
billwolf%hazel.cs.clemson.edu@hubcap.clemson.edu (William Thomas Wolfe, 2847 ) (10/12/89)
From rcd@ico.ISC.COM (Dick Dunn): > Part of what I'm saying is that you've got a marketing problem. Even if > you have a wonderful product, you still have to sell it--you'll go broke if > you just wait for customers to find you. Many of the people who are being introduced to Ada (software engineering students) won't be in a position to change their organizations for a few years; in some cases, it simply takes time. Despite that, there are some major successes. For example, GTE is doing its future telephone network system (WINS) in what is expected to be over 20 million lines of Ada. We expect more. The primary limitation now (beyond inertia) is getting the bindings to things like SQL, and this is the subject of a lot of activity. The advanced second-generation optimizing compilers, along with the CASE environments (e.g., TeleArcs), are also coming on line just recently, and their impact is just beginning to be felt. > If you want anything approaching a contemporary programming language, > you're not going to get it by taking five years to get to where > C++ is now, and then proclaiming you're done. Of course not. We will take five years to get to everything C++ can do, plus many things (like multitasking and generics) it can't. > The activity and adaptability of C++ is something you're going to > have to address somehow if you're going to "compete" with it. Precisely why I advocate a shortened five-year revision cycle. > Beyond that, if you just add a feature to Ada, it doesn't immediately > become as useful as a feature that's existed in C++ for a while. There's a > maturing period, during which people find the gotchas and evolve the > paradigms. There are a lot of object-oriented languages and systems, many of which (e.g., Trellis/Owl) are more powerful than C++. The intent is to fully exploit the proof-of-concept work which has been done by the research languages rather than doing it ourselves. Once the concept is proven and debugged (and assuming that it's an important advance in software engineering technology), then it's time to move it into production. Bill Wolfe, wtwolfe@hubcap.clemson.edu
sakkinen@tukki.jyu.fi (Markku Sakkinen) (10/13/89)
In article <16192@vail.ICO.ISC.COM> rcd@ico.ISC.COM (Dick Dunn) writes: >William Wolfe writes about Ada 9X and C++ > >> There are a lot of negative things in C++, [...] >[...] >[Wolfe finishing up on importance of multiple inheritance] >> By incorporating this mechanism into Ada, the sole argument for C++ >> becomes the unwillingness of C/C++ programmers to give up their >> hacking ways, and this is a problem we can successfully address. > >This is flawed in several ways. The first is the attitude that C/C++ >programmers have "hacking ways" somehow tied to the language, and that they >can be corrected by setting them on the One True Path to Ada. Look, this >is arrogant on the part of Ada folks and demeaning toward the C/C++ folks. >[...] >Also, the argument that you can just add multiple inheritance and win the >battle is based on the assumption that C++ is now static, that it's not >going to acquire any more useful features. I suspect strongly that this is >a mistaken assumption.[...] The main problem of C++ is not that it would not have lots of good features (especially the newest release, 2.0). The problem is that it has such fundamental _bad_ features that will have no chance ever to go away: they should have been pruned in the first step from C to C++. Things like the pointer arithmetic certainly invite if not oblige C and C++ programmers to "hacking ways", or perhaps they invite hacker-style programmers to use these languages instead of more disciplined ones. Several other comments in Mr. Dunn's posting made sense, though. Markku Sakkinen Department of Computer Science University of Jyvaskyla (a's with umlauts) Seminaarinkatu 15 SF-40100 Jyvaskyla (umlauts again) Finland