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.7 required=5.0 tests=BAYES_00,MSGID_RANDY autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,447bd1cf7a88c198 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2001-01-12 03:52:55 PST Path: supernews.google.com!sn-xit-02!supernews.com!news.gv.tsc.tdk.com!news.iac.net!news-out.cwix.com!newsfeed.cwix.com!news.maxwell.syr.edu!nntp2.deja.com!nnrp1.deja.com!not-for-mail From: dmitry6243@my-deja.com Newsgroups: comp.lang.ada Subject: Re: Do we need "Mission-Critical" software? Was: What to Do? Date: Fri, 12 Jan 2001 11:41:37 GMT Organization: Deja.com Message-ID: <93mqhh$4gl$1@nnrp1.deja.com> References: <3A4F5A4A.9ABA2C4F@chicagonet.net> <3A4F759E.A7D63F3F@netwood.net> <3A50ABDF.3A8F6C0D@acm.org> <92qdnn$jfg$1@news.huji.ac.il> <3A50C371.8B7B871@home.com> <3A51EC04.91353CE7@uol.com.br> <3A529C97.2CA4777F@home.com> <3A53CB9E.EA7CF86C@uol.com.br> <3A5466DE.811D43A5@acm.org> <932aol$ikc$1@nnrp1.deja.com> <932mi6$r2k$1@trog.dera.gov.uk> <9343b1$3g5$1@nnrp1.deja.com> <934iuf$eqv$1@nnrp1.deja.com> <937kc7$ssq$1@nnrp1.deja.com> <93c0e9$4u6$1@nnrp1.deja.com> <93e33l$tfu$1@nnrp1.deja.com> <93ekmo$a14$1@nnrp1.deja.com> <93f73f$mt1$1@nnrp1.deja.com> <93fnao$49u$1@nnrp1.deja.com> <93l6ut$pvf$1@nnrp1.deja.com> NNTP-Posting-Host: 212.197.149.215 X-Article-Creation-Date: Fri Jan 12 11:41:37 2001 GMT X-Http-User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt) X-Http-Proxy: 1.1 x72.deja.com:80 (Squid/1.1.22) for client 212.197.149.215 X-MyDeja-Info: XMYDJUIDdmitry6243 Xref: supernews.google.com comp.lang.ada:3944 Date: 2001-01-12T11:41:37+00:00 List-Id: In article <93l6ut$pvf$1@nnrp1.deja.com>, mark_lundquist@my-deja.com wrote: > In article <93fnao$49u$1@nnrp1.deja.com>, > dmitry6243@my-deja.com wrote: > > > To make a language popular, > > one need advertising. It must be as insolent as "Ada is an extension > > of C++ especially designed for Windows", then it works. > > Of course this is hyperbole, but I see your point. > > I think a good case could be made that Ada is Java++... > > Ada runs on the JVM. > > Java believes in strong static typing. That's a step in the right > direction, but they kept the impoverished type system of C++. Ada has > a type system that's not only strong, but rich as well. To start > with, you can have subtypes, and you have the ability to create user- > defined primitive types, etc. And since Ada 83, we have "type cloning" which is very commonly used and is very hard to emulate using "classic" inheritance. > Java wanted to get rid of pointer-related bugs. Unfortunately, you > kind of have to have pointers! Yes, but rare. BTW (if Robert does not hear us (:-)) I think that Ada shuld have true subroutine types (not only pointers). The values are passed by reference (always IN), so in may cases the clusy trick with generics will be not required. > So Java is a by-reference language, > hiding the pointer-ness of everything so that it's impossible to do > math on pointers. By-reference languages have their own problems, > though. Ada solves the pointer arithmetic problems by distinguishing > between pointers and addresses, and by defining pointers to be > something other than scalar types. Yes > Java figured out that truth value has nothing to do with integer math, > so it got a Boolean type like Ada's. > > Java believes that support for concurrency belongs in the language, > not just some random OS library. Java is right about that! They just > didn't think it through all the way and botched the details. C's birth-marks (:-)) > Java wanted to have better namespace control, so Java has packages. > These are better than C++ namespaces and more like Ada packages. But > the encapsulation construct in Java is still the "class", and in at > least two important senses (there are several) of the value > of "separation of interface and implementation", Java classes fall > short, because method bodies are defined in the class declaration. > (And no, Java "interface"s are not the answer to this). Agreed. Packages are much more universal, and child packages are an excellent idea. > Java's arrays are bounds-checked. That's good. Ada has a more > generalized system of range constraints that is involved with both > arrays and the subtyping system. This allows for automated range > assertions beyond just for array accesses, and makes it possible for > the compiler to eliminate many run-time array bounds checks. Yes > All these things can be viewed either negatively as half-measures, or > positively as steps in the right direction. The idea is that Java > incorporated all these elements for good reasons, and the fuller > support that Ada gives them is better. > > So that's one way to spin it, what do you think? Yes, to convince people that know the difference between pointers and references (:-)). There is also a vast majority of people that do not program themselves but still are in the position to decide which language is the best. Many of them make their decision based on whatever else, but not the features of particular languages. For them any lie is suitable (:-)). -- Regards, Dmitry Kazakov Sent via Deja.com http://www.deja.com/