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.4 required=5.0 tests=BAYES_00,FORGED_MUA_MOZILLA autolearn=no autolearn_force=no version=3.4.4 X-Google-Thread: 103376,d5b211b0c1ffcf3e X-Google-NewGroupId: yes X-Google-Attributes: gida07f3367d7,domainid0,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit Received: by 10.68.190.104 with SMTP id gp8mr8004040pbc.4.1339191361530; Fri, 08 Jun 2012 14:36:01 -0700 (PDT) Path: l9ni29937pbj.0!nntp.google.com!news1.google.com!border1.nntp.dca.giganews.com!border4.nntp.dca.giganews.com!border2.nntp.dca.giganews.com!nntp.giganews.com!newsgate.cuhk.edu.hk!news.netfront.net!not-for-mail From: Jeffrey Carter Newsgroups: comp.lang.ada Subject: Re: Practicalities of Ada for app development Date: Fri, 08 Jun 2012 14:35:55 -0700 Organization: Also freenews.netfront.net; news.tornevall.net Message-ID: References: <79c5c9f7-4b72-4990-8961-b3e2db4db79b@qz1g2000pbc.googlegroups.com> NNTP-Posting-Host: 184.20.201.198 Mime-Version: 1.0 X-Trace: adenine.netfront.net 1339191360 3945 184.20.201.198 (8 Jun 2012 21:36:00 GMT) X-Complaints-To: news@netfront.net NNTP-Posting-Date: Fri, 8 Jun 2012 21:36:00 +0000 (UTC) User-Agent: Mozilla/5.0 (X11; Linux i686; rv:12.0) Gecko/20120430 Thunderbird/12.0.1 In-Reply-To: <79c5c9f7-4b72-4990-8961-b3e2db4db79b@qz1g2000pbc.googlegroups.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Date: 2012-06-08T14:35:55-07:00 List-Id: On 06/08/2012 01:48 PM, wrp wrote: > > 1. To begin with, I've heard it said that Ada, designed for embedded > system building, is simply not suited to apps for a general computing > platform. That's rather vague and I haven't seen any detailed > justification of that claim. What would you say? I would say everything you've heard is wrong. Ada is a general-purpose language that has been used successfully in every application domain. Ada is the language of choice for S/W that must be correct. Since I want all my S/W to be correct, I always use Ada. Examples of small Ada applications I've written include one to choose the signature (like the one at the end of this message), one to choose the sound to be played next time I log in (next time it will say, "What is your favorite color?"), and one to display a quote in a dialog window (today's is, "If you think you got a nasty taunting this time, you ain't heard nothing yet!"). There seems to be a theme there. A larger application is the Mine Detector game (http://pragmada.x10hosting.com/mindet.html). At work we have a large, concurrent, distributed, soft-real-time, web-accessible call-center application, but large parts of it do DB access and things that would be common in the kind of applications you want to make. > 2. I don't need tools to be free, but they have to be affordable to a > small shop. If I'm targeting x86-64 (and possibly ARM) is GNAT the > only compiler option I have? RR Software's Janus/Ada (for Windows) is reasonably priced. You might also look at Atego. Note that most compiler are for Ada 95. Only 3 of 7 compilers I'm aware of support the entire language in the current standard (published in 2007). GNAT is the only compiler I'm aware of that supports features from the next standard (hopefully published this year). Ada 95 is a very good language, so that might not be a concern. (Even Ada 83 is a better language than most of the competition.) > 3. How about the quality and availablity of supporting tools like > debuggers and profilers? One nice thing about Ada is not needing to use a debugger. > 4. How about production quality, open source libraries for things like > Unicode support, sockets, network communication, GUIs, etc? The stuff > at www.dmitry-kazakov.de looks good, but most of what I have seen > online is from the 1980s and pretty rough to begin with. There are plenty of libraries available. You can find many through adaic.org. > 5. How well is incremental development supported? I'm thinking of > things like modular compiling and speed of the edit-compile-test > cycle. Unlike C, Ada has modules ("packages"). With them, stubs, and separate compilation, incremental development is supported well. > 6. Size and latency are sometimes an issue. I've heard that since GNAT > is oriented to building larger systems, the executables it produces > are comparatively bulky. What is the situation relative to C in that > regard? As I've said, everything you've heard is wrong. Equivalent programs in Ada and C create executables of about the same size using gcc (the key word is "equivalent"). Robert Dewar of AdaCore claims to have a collection of equivalent Ada and C programs that produce identical object code using gcc. > 7. What advanced tutorial material is there for using Ada in this way? > Say that I have Norman Cohen's _Ada as a Second Language_. What more > advanced material is available on subjects other than concurrency, > distributed processing, or real-time systems? On a related note, what > projects would you recommend looking at as examples of great code? Cohen is a pretty good book; I'm not sure that you need anything else. Note that even small applications can sometimes benefit from concurrency. Since Ada tasking is high-level and safe, it would a mistake not to learn about it so you can use it when warranted. Barne's book is a good choice. You might want to look at "Ada Distilled" by Richard Riehle. Again, adaic.org has a list of texts and tutorials. -- Jeff Carter "When Roman engineers built a bridge, they had to stand under it while the first legion marched across. If programmers today worked under similar ground rules, they might well find themselves getting much more interested in Ada!" Robert Dewar 62 --- Posted via news://freenews.netfront.net/ - Complaints to news@netfront.net ---