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=-0.3 required=5.0 tests=BAYES_00, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 109fba,304c86061dc69dba X-Google-Attributes: gid109fba,public X-Google-Thread: 103376,5cb36983754f64da X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2004-02-09 19:37:39 PST Path: archiver1.google.com!news2.google.com!news.maxwell.syr.edu!elnk-pas-nf1!newsfeed.earthlink.net!stamper.news.pas.earthlink.net!newsread2.news.pas.earthlink.net.POSTED!01cc3b7c!not-for-mail Reply-To: "Richard Riehle" From: "Richard Riehle" Newsgroups: comp.lang.ada,comp.lang.c++ References: <20040206174017.7E84F4C4114@lovelace.ada-france.org> <54759e7e.0402071124.322ea376@posting.google.com> <2460735.u7KiuvdgQP@linux1.krischik.com> <1806342.U8nlC1YBRp@linux1.krischik.com> Subject: Re: No call for Ada (was Re: Announcing new scripting/prototyping language) X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2800.1106 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1106 Message-ID: <7mYVb.18151$F23.15120@newsread2.news.pas.earthlink.net> Date: Tue, 10 Feb 2004 03:37:39 GMT NNTP-Posting-Host: 66.81.223.206 X-Complaints-To: abuse@earthlink.net X-Trace: newsread2.news.pas.earthlink.net 1076384259 66.81.223.206 (Mon, 09 Feb 2004 19:37:39 PST) NNTP-Posting-Date: Mon, 09 Feb 2004 19:37:39 PST Organization: EarthLink Inc. -- http://www.EarthLink.net Xref: archiver1.google.com comp.lang.ada:5380 comp.lang.c++:18375 Date: 2004-02-10T03:37:39+00:00 List-Id: Language advocacy can be an entertaining activity on a cold winter's evening, but even the most ardent enthusiasts for one language or another will eventually admit that languages are nothing more than tools for composing computer programs. The good craftsperson selects the appropriate tool for the job at hand. During my forty-plus year career I have had to use a variety of different programming languages. In some cases I have had to construct fairly large programs. Other times, my programs were small parts of much larger systems. During the past four years (actually longer if I count preparation time), I have had to put to use, engage, and confront several newer language offerings. Of these new offerings, I rather like some aspects of Ruby, some ideas in C#, and have gained a new level of respect for certain functional languages. Still, each of these new languages is a tool. My responsibility, as a computer software practitioner, is to understand when to pick the right tool for the right job. On a large-scale project, I must realize that several different languages might be required. Also, some people will be more skilled with one language than another or some pre-existing code might be better suited to the solution than brand-new code in the latest whiz-bang language. Under some circumstances, C++ is a perfectly appropriate choice. It is no better than Ada for these circumstances, but it is acceptable. In some other set of circumstances, Ada is a perfectly good choice. Again, it is no better than C++, but works out just fine. There are still other problems where language choice does matter. For programming an small microcomputer (e.g. I-8051) C is almost always a better choice than either Ada or C++. For large, mainframe data processing systems, modern COBOL (Yes, COBOL has been modernized) is probably a better choice. The worst possible choice for those mainframe systems is probably C++, but lots of irresponsible software managers are allowing such code to disrupt their development cycle. For windows (MS) programming, C++ still has some edge over Ada simply because it is more closely associated with the MS programming libraries. However, I have been involved in a least one significant project where Ada proved more portable across more kinds of windows environments than C++. We select Ada when dependability is an issue. A clear requirement of safe software is that of predictability. C++ is well-known to be the source of much that is unpredictable. We certainly do not want to use tools with inherent unpredicatbility in the creation of predictable, deterministic software solutions. In such cases, Ada is the correct tool. Some might suggest that Eiffel also fits that description. The language definition for Eiffel probably does. One needs to examine implementations to determine whether the result will involve complete predictability. Meanwhile, SQL remains useful. Visual Basic is a good tool for those applications that lend themselves to such solutions. Java is good for a limited range of things, but is used for more things than it is good for. C++ continues to have much to recommend it. People do not select their programming tools as wisely as they select their carpentry tools. Usually, someone learns a language and sticks with it they way some people stick with the same religion into which they were born, or the same political party into which they were born. The religiofication of language arguments leads nowhere. Reasonable people must understand that languages are designed by people, and every language is flawed in one way or another. We must admit the flaws in our preferred language before the other fellow will admit the flaws in his/her preferred language. As we do so, we might just come up with some ideas for the next improved language rather than remain paralyzed with the our current favorite. Richard Riehle