From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,4873305131bf4d94 X-Google-Attributes: gid103376,public From: "Marin David Condic, 561.796.8997, M/S 731-96" Subject: Re: ADA and Pascal SUCK, C,C++, and Java are the only languages you need!! Date: 1997/10/30 Message-ID: <97103010245957@psavax.pwfl.com> X-Deja-AN: 286843946 Sender: Ada programming language Comments: Gated by NETNEWS@AUVM.AMERICAN.EDU X-VMS-To: SMTP%"INFO-ADA@VM1.NODAK.EDU" X-VMS-Cc: CONDIC Newsgroups: comp.lang.ada Date: 1997-10-30T00:00:00+00:00 List-Id: Mike Copeland writes: > 1. The portability issue. C/C++ are basically portable across >platforms, and this is an extremely important issue to corporate >thinking. It's more important to the executives/decision makers of most >companies that their key applications can be moved to other vendor's >hardware when financial issues force such switches, than to have >implementation languages which their programmers like and find easy to >learn. This seems to be misinformation. C was originally invented as a systems programming language and for years had no standard at all. Implementations varied quite a bit and many of the things that were legal to do (and frequently done) were notoriously non-portable. From practical experience in porting C programs (albeit, not in the last couple of years) I can attest to the fact that it is far more work than porting an equivalent Ada program. If anybody considers C (and by extension C++) to be "portable" then they ought to be extremely impressed with Ada since it is much more rigorous in its language definition and designed with portability as one of its major objectives. > 2. Pascal and Ada (which is often called a highly enriched Pascal) >weren't designed as application development vehicles - whereas C/C++ >were. Pascal was invented as a teaching tool for structured and module As stated above. C was developed as a systems programming language which has dramatically different requirements from an applications programming language. Arguably, C++ might have been oriented more towards applications, but it's roots in C means its dragging along many characteristics aimed at systems programming. > Ada, OTOH, was designed for implementation of secure and fail-safe >systems for the Government. It was based on Pascal concepts (very strong >typing, modularity, consistency, etc.), but was taken much farther than >was useful to the general world. Learning Ada should be considered an >educational experience, at best, because no one uses it. And I agree >it's very hard to learn and work with, even coming from a Pascal >background. Nonetheless, Ada provides some interesting and useful things >for any serious programmer to think about and use in his/her work. > I'd beg to differ on the "no one uses it" part of this statement. While it seems obvious that other languages may be more widely used than Ada, it is not as if there is no Ada programming going on in the real world. It is a non-trivial market and I don't expect it will disappear any time soon. Hard to learn? Sure - there's features in the language that deal with difficult concepts, such as multitasking/concurrency, numerical analysis, et cetera. When you deal with difficult concepts, you're going to find it difficult to learn. But I teach an "Intro to Ada" in-house course aimed at engineers with a familarity with other languages and it's not hard at all getting them up to speed with a Pascal-like subset of the features. The only area that gets difficult is teaching the use of the generic I/O packages. (Forces you to discuss generic instantiation early on and this always seems to be a difficult concept to get across until some experience with the language is gained.) Text_IO can be turgid, but by sticking to Put_Line and 'Image (EVERYTHING ought to have a 'Image attribute!!!) you can get folks rolling on basic terminal I/O without any more complication than trying to teach the "printf" calls (and all its variants) in C. The thing that bothers me about the "Hard To Learn" falacy is that when you dig into it a little you tend to discover that it is a variation of "It's not what I already know, so it's 'Hard To Learn'" or "I'm used to a language that has no advanced features so I find it 'Hard To Learn' a language that does." You can learn the Pascal-like subset of Ada with no more difficulty than you would experience learning Pascal - and all learning requires effort and therefore, by definition is not going to be easy. (If it were easy, everybody would do it.) When you've mastered the Pascal-like subset, you can gradually add on features just like you learned the more advanced, arcane, dark features of C. And no language design is *ever* going to make concepts like concurrency "simple" so you're going to have to bite the bullet and learn the theory behind the advanced features before the features themselves are going to make sense. Language wars are futile, like most wars are, so we shouldn't ought to start one. I don't mean to give the impression that there's something wrong with preferring one language over another. There's nothing wrong with saying "This is the language I know and am comfortable with, so that's what I use to get my job done." But in criticizing a language, there needs to be some emphasis on avoiding vague generalities or subjective judgments. MDC Marin David Condic, Senior Computer Engineer Voice: 561.796.8997 Pratt & Whitney GESP, M/S 731-96, P.O.B. 109600 Fax: 561.796.4669 West Palm Beach, FL, 33410-9600 Internet: CONDICMA@PWFL.COM =============================================================================== "Having an open mind is nothing. The object of opening the mind, as of opening the mouth, is to shut it again on something solid." -- G.K. Chesterton ===============================================================================