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-11 13:15:00 PST Path: supernews.google.com!sn-xit-02!supernews.com!news.gv.tsc.tdk.com!falcon.america.net!news.minn.net!newsfeed.direct.ca!look.ca!cyclone.bc.net!arclight.uoregon.edu!newsfeed.cs.utexas.edu!galaxy.us.dell.com!news-feeds!nntp2.deja.com!nnrp1.deja.com!not-for-mail From: mark_lundquist@my-deja.com Newsgroups: comp.lang.ada Subject: Re: Do we need "Mission-Critical" software? Was: What to Do? Date: Thu, 11 Jan 2001 21:01:25 GMT Organization: Deja.com Message-ID: <93l6ut$pvf$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> NNTP-Posting-Host: 130.213.203.244 X-Article-Creation-Date: Thu Jan 11 21:01:25 2001 GMT X-Http-User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt) X-Http-Proxy: 1.1 x57.deja.com:80 (Squid/1.1.22) for client 130.213.203.244 X-MyDeja-Info: XMYDJUIDmark_lundquist Xref: supernews.google.com comp.lang.ada:3926 Date: 2001-01-11T21:01:25+00:00 List-Id: 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. Java wanted to get rid of pointer-related bugs. Unfortunately, you kind of have to have pointers! 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. 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. 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). 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. 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? -- mark Sent via Deja.com http://www.deja.com/