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.2 required=5.0 tests=BAYES_00,INVALID_MSGID, REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: f849b,d275ffeffdf83655 X-Google-Attributes: gidf849b,public X-Google-Thread: 101b33,d275ffeffdf83655 X-Google-Attributes: gid101b33,public X-Google-Thread: 1108a1,d275ffeffdf83655 X-Google-Attributes: gid1108a1,public X-Google-Thread: f5d71,d275ffeffdf83655 X-Google-Attributes: gidf5d71,public X-Google-Thread: 146b77,d275ffeffdf83655 X-Google-Attributes: gid146b77,public X-Google-Thread: 109fba,d275ffeffdf83655 X-Google-Attributes: gid109fba,public X-Google-Thread: 115aec,d275ffeffdf83655 X-Google-Attributes: gid115aec,public X-Google-Thread: 103376,d275ffeffdf83655 X-Google-Attributes: gid103376,public From: Marin David Condic Subject: Re: Ada vs C++ vs Java Date: 1999/01/13 Message-ID: <369D1F2B.138D1FB8@pwfl.com>#1/1 X-Deja-AN: 432302508 Content-Transfer-Encoding: 7bit Sender: condicma@bogon.pwfl.com References: <369C1F31.AE5AF7EF@concentric.net> Content-Type: text/plain; charset=us-ascii Organization: Pratt & Whitney Mime-Version: 1.0 Reply-To: diespammer@pwfl.com 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: Erik Funkenbusch wrote: > > >- 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). Not entirely accurate. Ada has the Task construct which allows parallel programming without dependence on the specific OS. Typical implementations on Unix and WinNT platforms will be via system calls. However, since Ada was originally targeted for embedded systems, a number of implementations go directly to the bare hardware and the implementation's runtime support has to provide the primitives for task scheduling, etc. Tasks in Ada provide parallelism in a machine-independent and invisible-to-the-programmer manner. I do not know of a similar mechanism in either C++ or Java. Maybe it is there. Maybe not. You'd need someone else to fill you in on that. > > >- lead to easily maintainable code > > No language will do that. It's a function of design. Yes and no. "Yes", a bad design or a bad realization of a design is possible in *any* language. It has never been the least bit hard to write bad programs in any known language. "No", maintainability *can* be enhanced by the language. Some languages are inherently more readable, less cryptic, easier to develop extendable constructs, less apt to produce errors, etc. etc. etc. To discount this would be to claim that programs written in raw machine code (zeros and ones - not assembler) are just as easily maintained as a program written in a state-of-the-art high level language. Such a statement is patently absurd, so we can conclude that there is at least *some* influence the language has on maintainability. That being the case, it is fair to ask "Is language X more easily maintained than language Y?" Quad Erat Demonstratum. > > >- 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. Possibly, but C++ & Java both are relatively new languages and aren't likely to appear on out of date or obscure hardware/OS's either. And the question seems to indicate that it is "bare processors" that are of interest. (Typical of any embedded app). So it will depend on if you want an embedded compiler or a "regular" compiler. > >- 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. For the record - Ada was originally developed with embedded applications in mind. There are a number of compilers for Ada which do target bare, embedded processors. Aonix, Green Hills, and Rational to name a few I can think of off the top of my head. There are plenty of choices for a variety of targets, but you have to start by defining what you want. Bare processor or running on top an RTOS? Which processor? What sort of application domain? Hope this sheds a little light on the subject. MDC -- Marin David Condic Real Time & Embedded Systems, Propulsion Systems Analysis United Technologies, Pratt & Whitney, Large Military Engines M/S 731-95, P.O.B. 109600, West Palm Beach, FL, 33410-9600 Ph: 561.796.8997 Fx: 561.796.4669 ***To reply, remove "bogon" from the domain name.*** "Nobody shot me." -- Last words of Frank Gusenberg when asked by police who shot him fourteen times with a machine gun in the Saint Valentine's Day Massacre.