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=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 115aec,d275ffeffdf83655 X-Google-Attributes: gid115aec,public X-Google-Thread: 103376,d275ffeffdf83655 X-Google-Attributes: gid103376,public X-Google-Thread: 1108a1,d275ffeffdf83655 X-Google-Attributes: gid1108a1,public X-Google-Thread: 146b77,d275ffeffdf83655 X-Google-Attributes: gid146b77,public X-Google-Thread: 109fba,d275ffeffdf83655 X-Google-Attributes: gid109fba,public X-Google-Thread: 101b33,d275ffeffdf83655 X-Google-Attributes: gid101b33,public X-Google-Thread: f849b,d275ffeffdf83655 X-Google-Attributes: gidf849b,public X-Google-Thread: f5d71,d275ffeffdf83655 X-Google-Attributes: gidf5d71,public From: "Erik Funkenbusch" Subject: Re: Ada vs C++ vs Java Date: 1999/01/13 Message-ID: #1/1 X-Deja-AN: 432214062 References: <369C1F31.AE5AF7EF@concentric.net> X-Priority: 3 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.0810.800 X-Complaints-To: abuse@visi.com X-Trace: ptah.visi.com 916251993 209.32.178.131 (Wed, 13 Jan 1999 12:26:33 CDT) X-MSMail-Priority: Normal NNTP-Posting-Date: Wed, 13 Jan 1999 12:26:33 CDT Newsgroups: comp.lang.ada,comp.lang.c++,comp.vxworks,comp.lang.java,comp.java.advocacy,comp.realtime,comp.arch.embedded,comp.object,comp.lang.java.programmer Date: 1999-01-13T00:00:00+00:00 List-Id: It's not a very cut and dried situation i'm afraid. (comments below) Leszek Sczaniecki wrote in message news:369C1F31.AE5AF7EF@concentric.net... >We are about to start a big project, something about 250k lines of code. >We are going to stick to it for next several years. We would like to >make an educated choice for the underlying language. This language >should I don't think size of the project has much influence over the choice when considering language. At least not in the languages you've mentioned. >- support object oriented programming All three do, although at differing levels and differing feature sets (example: Java doesn't support Multiple Inheritance, C++ does. But that may not be a concern to you). >- support parallel programming I'm not sure exactly what you mean by that. You mean multi-processor support? Threads? Those are OS constructs, but of course the Language has to be able to handle them (VB for instance doesn't do a good job of that). >- lead to easily maintainable code No language will do that. It's a function of design. >- promote safe programming techniques Be aware that "safe" often means "confining". You may not be able to do the things you need to do in a language that doesn't support pointers or direct hardware access (like Java). >- have significant support from commercial vendors (compilers, GUI >design, testing sw) Well, Java is gaining a lot of vendor support. But be aware that the language is changing rapidly and that there is no standardization of it. New versions are likely to make older code obsolete (for instance, the switch from 1.0.x to 1.1 introduced whole new event models). It's a very immature language and is likely to go through a lot more growing pains. >- be available for popular processors (such as 68xxx, PowerPC, etc.) Processors aren't the key, OS platforms are. You're most safe with C++ on this matter i think. Java isn't available on everything yet. You're also likely to find limited choices in ADA compilers on more obscure OS's. >- enjoy wealth of existing solutions If you mean add-on libraries, again this is mostly OS platform related, although there are certainly a number of platform independant libraries as well. I don't know much about the 3rd party ADA market, but C++ certainly has a strong support here. >- support "almost real time" execution Well, Java certainly can't do this yet. C++ can, depending on OS support. ADA most certainly does, or it wouldn't be able to be used in Jet Avionics and such. >- be suitable for design of embedded systems C++ generally isn't. There is an "embedded C++" that's in the works, and there might even be some implementations. C is better for embedded work than C++. I don't know the specifics of ADA embedded work. >There is a legacy code written in Ada and our customer would prefer Ada >95. However, we became seriously concerned that there is not sufficient >support for Ada in the commercial world. Well, there seems to be plenty of vendor support for ADA, but I think you won't find as much 3rd party library support. That means you'll be stuck writing everything from scratch in most cases. >Given, that we will be stuck >with our project for the next several years we would like to choose >something that still will have adequate support few years down the road. >Given all that we decided to check C++ and Java. I would appreciate >greatly any comparisons, comments, hints, pointers to electronic and >hard copy sources, warnings about traps and pitfalls, etc. that would >help us thoroughly justify the language choice to our customer. Well, I would vote against Java. It's too immature for a long term project and has questionable speed. Your choice of ADA and C++ has many factors. It's likely going to be easier to find people to maintain C++ code than ADA. It's also got more 3rd party support. Both are standardized, although not all current compilers support the full standard C++ yet (in fact, I don't know of any that are fully compliant yet). ADA is mature, and has proven itself in military applications and stability over the years. You've got to weigh the pros and cons and come to your own decision.