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: f849b,d275ffeffdf83655 X-Google-Attributes: gidf849b,public X-Google-Thread: f5d71,d275ffeffdf83655 X-Google-Attributes: gidf5d71,public X-Google-Thread: 103376,d275ffeffdf83655 X-Google-Attributes: gid103376,public X-Google-Thread: 115aec,d275ffeffdf83655 X-Google-Attributes: gid115aec,public X-Google-Thread: 1108a1,d275ffeffdf83655 X-Google-Attributes: gid1108a1,public X-Google-Thread: 101b33,d275ffeffdf83655 X-Google-Attributes: gid101b33,public X-Google-Thread: 146b77,d275ffeffdf83655 X-Google-Attributes: gid146b77,public X-Google-Thread: 109fba,d275ffeffdf83655 X-Google-Attributes: gid109fba,public From: "Michael J. Tobler" Subject: Re: Ada vs C++ vs Java Date: 1999/01/14 Message-ID: <369DF242.B0613E1C@no-spam-ibm.net>#1/1 X-Deja-AN: 432535061 Content-Transfer-Encoding: 7bit References: <369C1F31.AE5AF7EF@concentric.net> Content-Type: text/plain; charset=us-ascii Organization: Anadarko Mime-Version: 1.0 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-14T00:00:00+00:00 List-Id: Erik Funkenbusch wrote: [snip] > > >- 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). Java does support multiple-interfaces, so there is a sort of "simulation" of multiple inheritance. But there are reasons the designers opted not to provide "true" MI, reasons I wont go into in this thread. > >- 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. And the people writing the code. > >- 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). I think here it's meant that you cant do anything "crazy" and have some wild pointer or what-not. The OS should take care of this for you; yet, there are reasons you might want a language to help you in this respect. Say, something like handling array-out-of-bounds, etc. > >- 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. This is a mistake that a lot of people are making. The JDK is changing rapidly - I dont necessarily see this as a hinder as more functionality is coming to the forefront. The LANGUAGE proper hasnt really changed. Hey - there's something to be said for a language that doesnt support "goto". > >- 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. You cant say C++ is "more safe" in this matter. It depends how the system is designed and coded. I can write a program targeted for the unix platform that will pure h@ll to port anywhere else. It is harder to do this in Java. BTW, I build a lot of C++/Java/CORBA systems and haven't found a platform that didnt run Java. Yea, maybe some obscure platform .... > >- 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. You're off-target here. There are a handfull of vendors offering C++ tools for the embedded systems market. Saying that C is better than C++ is just not valid. [snip] > >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. I think you should educate yourself concerning Java. As I've said, we've been building Java (collaborative, multi-tier) systems for about 3 years now and the customers are very happy. I am currently on a C++/Java/CORBA project that is 90% Java and 10% C++. The coding is going VERY fast - I find that we can code a system much faster, with less errors in Java than in C++. I'm not knocking C++ because it's my TRUE language, but I have found power in Java. To address you concern for speed with Java - that issue is out the door. We are using JIT tools that get us to C++ like speed. Depending on platform, you can get tools to build true binary executables. [snip] -- <<<<<<<<<<< Blue Skies >>>>>>>>>>>> < Michael J. Tobler > < remove "no-spam"when replying > < mailto:mtobler@no-spam-ibm.net > < http://www.webbrew.com/toblermj > <<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>