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=2.5 required=5.0 tests=BAYES_05,INVALID_MSGID, TO_NO_BRKTS_PCNT autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,50ad4ada98045ba,start X-Google-Attributes: gid103376,public From: Steffen Huber Subject: A small Ada success story Date: 1999/03/14 Message-ID: <119fb4e248%hubersn@lcs.wn.bawue.de>#1/1 X-Deja-AN: 454957418 X-Posting-Agent: RISC OS Newsbase 0.60c Organization: LCS, LambdaComm System, WN-Hohenacker X-Editor: Zap, using ZapEmail 0.19 pre-32 Newsgroups: comp.lang.ada Date: 1999-03-14T00:00:00+00:00 List-Id: Hi, after reading this newsgroup for some time now, I thought I should tell you about a small, but very successful project implemented in Ada 95. Just to show those that think that Ada is only used in the military industry how wrong they are ;-) Let me start with some history. It was the summer of 1996 when I bought (together with some friends) a CD writer. Unfortunately, I was only able to use it with my PC, but not with my preferred platform (RISC OS on a Risc PC from Acorn) due to lack of software. After obtaining the necessary documentation for programming the CD writer, I started to implement a small prototype of a CD writing application capable of reading and writing audio and data tracks. This implementation was done in BBC Basic V, widely considered as the fastet interpreted BASIC around (the interpreter is included in the ROM of RISC OS, so it is usually used for quick-and-small projects and prototypes, or as a glorified scripting language). Some companies expressed an interest to turn this prototype into a commercial product. So I had to decide which way to go: a) further development in BASIC (even the prototype was quite nicely modularised and structured, so it was indeed an option) b) new implementation in C (everybody on this platform uses either C or assembler...I don't know why ;-)) c) new implementation using another language At university, I already implemented two projects in Ada, so I had a basic knowledge of Ada (Ada 83, to be more precise), and the results and experiences were very positive. After I discovered that a port of GNAT was available for the RISC OS platform, I decided to take option c) and implement everything in Ada. Now, over two years later, the project is still alive and happy, and despite the continuous development, the maintainability is still very high. The features of CDBurn (the name of the product) now include an ISO formatter with support for a very flexible filename translation scheme, Joliet and on-the-fly writing. CDBurn is also capable of driving a wide range of available drives, and supports disc-at-once writing. All this functionality is controlled by a very nice UI (for those of you wondering about RISC OS, the GUI is IMHO still the best thing since sliced bread), and everything is 100% Ada. Several key advantages of Ada surfaced during the project - especially the powerful structuring possibilities and the full control over representation issues (very valuable when interfacing with SCSI devices). All in all, I am sure that taking one of the alternative routes would have resulted in a more time consuming (overall development effort was around 3 man months until now, and this includes the work done on the bindings to RISC OS - I was the first developer to use GNAT on RISC OS, so I had to do this on my own ;-)) and less powerful/less maintainable solution. So long, Steffen -- Steffen Huber LambdaComm System - Welcome to Trollinger Country hubersn@lcs.wn.bawue.de acorn2@ftp.uni-stuttgart.de ... Bosheit ist nicht in der Lage, Dummheit vollstaendig zu simulieren. (JL)