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-Thread: 103376,c406e0c4a6eb74ed X-Google-Attributes: gid103376,public X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.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 References: <49dc98cf.0408110556.18ae7df@posting.google.com> Subject: Re: ADA Popularity Discussion Request X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2800.1409 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1409 Message-ID: <6F2Yc.848$8d1.621@newsread2.news.pas.earthlink.net> Date: Sat, 28 Aug 2004 16:45:54 GMT NNTP-Posting-Host: 66.81.216.88 X-Complaints-To: abuse@earthlink.net X-Trace: newsread2.news.pas.earthlink.net 1093711554 66.81.216.88 (Sat, 28 Aug 2004 09:45:54 PDT) NNTP-Posting-Date: Sat, 28 Aug 2004 09:45:54 PDT Organization: EarthLink Inc. -- http://www.EarthLink.net Xref: g2news1.google.com comp.lang.ada:3118 Date: 2004-08-28T16:45:54+00:00 List-Id: "Georg Bauhaus" wrote in message news:cgppvn$t4m$1@a1-hrz.uni-duisburg.de... > > See? :-) So if this were the only factor for choosing a language, > Ada's popularity will be a function of the popularity of the military. > Popularity is rarely a good reason for choosing any tool, including a programming language. We who are software developers must understand how to use more than one tool (language, method, process, etc). Certainly some software practitioners may restrict themselves to one toolset, but this will have the long-term effect of also restricting their own career progress. We choose a tool, in any domain, according to its being appropriate for the problem we are trying to solve. To draw a somewhat rough analogy, one that I have used before in public lectures and in my publications, when I need a torque wrench (Ada) that is the tool I should choose. When I can get by with an adjustable, fits anything wrench, I might find C satisfactory for the job. Smalltalk is an excellent tool for object-oriented programming, and a good choice when the deeper concern is not software safety. Functional languages free the developer from concerns about the underlying representation issues, and allow one to work at a level of abstraction not easily available in imperative languages. I find it difficult to use functional languages for multiple programmer projects that are what we might call, large-scale. A poet friend of mine once explained that he writes some of his poems in more than one form before he is satisfied with the outcome. For example, he might have an idea for a poem which he first writes as free verse. Then he might try to write the same poem as a sonnet. Later he might try to express the idea in several haiku. At some point he might toy with it as a kind of jingle. He plays with the language, the meter, the structure, and the style before he decides on what the final poem should look like. A well-known software practitioner once explained that he first likes to write his software in Smalltalk, then produce the final code in Ada. This is somewhat like an artist who works in oil, but first sketches some ideas on the canvas with a pencil. Each of us works toward the completion of a software product in a different way. Some are more comfortable with C++. I'm not one of them. Others are more comfortable with Smalltalk, Lisp, OCAML, etc. Over the years, I have become more comfortable with Ada. I find myself able to express my ideas in the language, most of the time. There is no perfect programming language. Sometimes I might want to mix Ada and some other language (e.g., SQL or C) to achieve a level of expressiveness not directly available in Ada. That does not make Ada bad. Rather, the ability to mix other languages into my Ada code is one of the things I like about the language. So, we choose a language, not because it is popular, but because it has the expressive power for the problem space we require. In large-scale software, where lots of people will be involved in the development, and a high level of reuse is required, the structural and semantic model of Ada seems to be better than most. When certain features of some other language need to be incorporated into that large-scale design, it is no sin to admit such and take advantage of the expressive power of both Ada and the imported language to develop the appropriate solution. Richard Riehle