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.9 required=5.0 tests=BAYES_00,FORGED_GMAIL_RCVD, FREEMAIL_FROM autolearn=no autolearn_force=no version=3.4.4 X-Google-Thread: 103376,677963b1aa23e668 X-Google-NewGroupId: yes X-Google-Attributes: gida07f3367d7,domainid0,public,usenet X-Google-Language: ENGLISH,ASCII-7-bit Path: g2news1.google.com!postnews.google.com!i3g2000vby.googlegroups.com!not-for-mail From: Maciej Sobczak Newsgroups: comp.lang.ada Subject: Re: What's stopping you from using Ada for your next commercial project? Date: Wed, 9 Mar 2011 14:04:14 -0800 (PST) Organization: http://groups.google.com Message-ID: References: NNTP-Posting-Host: 83.3.40.82 Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 X-Trace: posting.google.com 1299708637 6432 127.0.0.1 (9 Mar 2011 22:10:37 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Wed, 9 Mar 2011 22:10:37 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: i3g2000vby.googlegroups.com; posting-host=83.3.40.82; posting-account=bMuEOQoAAACUUr_ghL3RBIi5neBZ5w_S User-Agent: G2/1.0 X-HTTP-UserAgent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13,gzip(gfe) Xref: g2news1.google.com comp.lang.ada:18014 Date: 2011-03-09T14:04:14-08:00 List-Id: On 9 Mar, 21:43, Simon Wright wrote: > > 3. Availability of reasonably robust and up to date compilers. > > Unfortunately things are very bad for Ada in this regard - compilers > > are either bug-ridden or outdated. > > Speaking only of GCC, is this actually any different for Ada vs C or > C++? (and the outdated ones have their own bugs ...) Well, my experience with the C and C++ support in the GCC family is very positive. In fact, I have never (like in "not even once") encountered a situation where the g++ would surprise me or crash in front of my eyes. It has its own issues that relate more to the target language (like the ability to create inconsistent binary from mismanaged source files) or to its evolution strategy (like breaking ABI almost every release), but really, it has never surprised me with bugs coming from its own implementation. This is much different with GNAT, which is unfortunately so bug-ridden as to really slow down the development work. The difference is even more frustrating if we compare the kind of code that I used in these languages - that is, very advanced or even outright experimental code in C++ vs. tutorial-level examples in Ada. I have submitted several bug reports for GNAT on my own and if you search the archives of this group you will find my (almost) regular rants about that. For the practical example - I have just announced the availability of YAMI4 v. 1.3.0, which involved quite a bit of Ada development. I have decided to use three different versions of GNAT to ensure that the code compiles properly for the widest audience. The result - it was not possible. The compilers either crashed or produced code with runtime errors. This forced me to introduce *very* ugly workarounds, which, ironically, resulted in additional compiler warnings on another version. That is, I had to agree to have compiler warnings on version X only to compile the code at all on version Y. If you need some numbers to back these observations, just download the YAMI4 source package and do this: $ find . -name '*.ad[bs]' | xargs grep workaround there are 57 entries. I estimate that this additional effort was somewhere between 33% and 50% of the whole work. The YAMI4 project contains also code in C++, Java, Python and (most recently) C#, so it might be a good platform for comparisons. From these, only Python proved to be problematic on 64-bit platforms due to internal interpreter bugs. C++, Java and C# did not exhibit *any* problems related to compilers or runtime libraries. I write all this because I try to be frank and honest - even though it does not look very well for Ada. These are important factors to take into account when choosing the technology for the next project (whether commercial or not), because obviously the additional effort is not negligible. Having said this I must add that I really hope that things will improve in the future and this is why I was willing to make this investment. However, do not expect every company out there to do the same, as obviously the decision dynamics are usually different. What are the alternatives for small companies that want to use Ada? I don't know, really. I have approached Aonix (now Atego), but they have apparently frozen 15 years ago and stopped responding when I mentioned that I need Ada 2005 features. Rational is out of question if its price range is as described in another post. SofCheck might be a viable solution - but then the price difference (reminder: g++ costs 0$) is another factor to take into account. -- Maciej Sobczak http://www.inspirel.com/