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.1 required=5.0 tests=BAYES_00,FREEMAIL_FROM, FREEMAIL_REPLYTO_END_DIGIT,REPLYTO_WITHOUT_TO_CC autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 103376,1cf653444208df72 X-Google-Attributes: gid103376,public X-Google-ArrivalTime: 2001-10-04 01:22:52 PST Path: archiver1.google.com!news1.google.com!newsfeed.stanford.edu!news.tele.dk!small.news.tele.dk!195.54.122.107!newsfeed1.bredband.com!bredband!newsfeed.sovam.com!nf1.bellglobal.com!nf2.bellglobal.com!news20.bellglobal.com.POSTED!not-for-mail From: Pi Subject: Re: ada vs. cpp Newsgroups: comp.lang.ada Reply-To: pi3_1415926536@yahoo.ca References: <9pgu0l01687@drn.newsguy.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8Bit User-Agent: KNode/0.3.2 Message-ID: <4XUu7.18551$4l5.2541822@news20.bellglobal.com> Date: Thu, 4 Oct 2001 04:42:00 -0400 NNTP-Posting-Host: 65.92.161.237 X-Complaints-To: abuse@sympatico.ca X-Trace: news20.bellglobal.com 1002183488 65.92.161.237 (Thu, 04 Oct 2001 04:18:08 EDT) NNTP-Posting-Date: Thu, 04 Oct 2001 04:18:08 EDT Organization: Bell Sympatico Xref: archiver1.google.com comp.lang.ada:13707 Date: 2001-10-04T04:42:00-04:00 List-Id: mike@nospam wrote : > In article , Pi says... > > > > > > >You say that it's text-based. > >Do you have to parse the text-input? > >In this case I would consider using Perl[1] for the parsing > >and than the actual treatement in Ada. > >(Strings aren't Ada's strength) > > > > > first, perl is ugly. it is write-only language. > > second, I think Ada is brilliant for strings, I used only standard > Ada packages for strings, and the standard Ada library strings are quite > good. I find string parsing with Ada standard library's ugly. > and even though I have worked much in it, I understand that GNAT > has now snobol-like package (and you can't say sbitbol aint for strings) > and GNAT also has perl like reqular expressions package too. Didn't know this, just found it ... forget what I said about Perl and use GNAT.Regpat ;-) > (even > Java 1.4 has now a reqular expression classes, so there is no reason > to use perl anymore :) > > >2nd : Objects : > >as long as you dont need special features you're fine with Ada. > >Just consider a package like an object and you're cool. > > > > I think the confusion comes from this: In java, the most popular OO > language these days, a package is really nothing but a directory where > files exist in it. Each file represents a class (not considering inner and > private classes for the moment). > > i.e. in Java > > class <---> own file > > In Ada, a package is declared/defined in a file. i.e. > > Ada package <--> own File > > very loosely put. > > So, the object in Ada sits in a file that "belong" to a > package. This is the core difficulity many face when trying to use Ada > OO features I think. > Maybe, but I still use one file per "class" in Ada. I find it much more lisible if I export only one (tagged) type per package. (plus any convenient enumartion type, subtypes, etc ...) So you have the class and his methods clearly regrouped. And you can use package extention + tagged type extention combined. > > Now DELPHI has the same thing as Ada, but in DELPHI, > an object has it own 'class' key work inside a package, which makes it > less confusing to some. It is all syntax suger, and at the end it all > comes down to the same thing, but in Ada it does take a little more time > to get used to doing OO if one comes from Java or C++. It is all about the > object.method() vs. method(object) notation. > But in Ada you have no "end" after the definition of the methods. The "end" comes after the attributes, but the position of the methods has a *major* impact, especially if you want to use polymorphism. IIRC you have to specify the headers (but *only* the headers) of all method that you want to use polymorph *directly* after the declaration of the tagged type. And this is poorly documented and the compiler warnings are of no much help either. > > > >4th : Polymorphism > >Argh, only possible with tagged type and true crap, so stick with C++ > > I do not understand the above. a tagged record is a record you can extend, > what is so hard about it? think of a tagged record + its operations as a > class. > See above why I consider polymorphism in Ada an ugly patchwork. > >5th : Multiple Heritage > >Not possible with Ada. > > > > big deal. MI is not possible in Java too, but I do not see it stopping > people from using Java (2.5 million programmers use Java these days and > counting). > He asked if he should port his project from cpp to Ada. What do I know if he uses MI? You're right, normally nobody needs it, but when you need it it causes problems, so you wont use it anyway. > >[1] Perl is your worst nightmare for big project, > >but the best language for text parsing out there, > >so if you use it, use it *only* for the parsing. > > Untill you get to have to fix the code, then you are stuck wasting hours > and hours trying to figure what the code does. > It's much easier to write unreadable code in Perl, but that doesn't mean you have too. Beside, the parsing of an input line would be very short. Maybe 10 lines of code + 30 lines of commentary. (but GNAT.Regpat is still a better choice) > There is no perfect language. May be someone should invent a language > which looks like Java, but acts like Ada, then it will be a real winner :) > So true, Java has the most beautiful grammar + syntax I've ever seen, interested in writing an Java to Ada compiler? (only half kidding) > Java has nice global features, but week at the core languge level (it is > like an enterprise version of VB). Ada is best engineered language, but > not much window dressing on it to attract the industry. > > Try to do an enumeration type in Java with the same features that comes > with Ada per-build, and you'll see what I mean. (one simple example). > There is a whole section (2-3 pages) in 'effective Java' book on how to > make an enumeration type safe in Java, and at the end, it does not give > you 5% of what Ada enumeration does in one line. > Very true (had to do this once), but if you want an enumeration type you shouldn't use Java. An enumeration type is not an OO-Concept and therefor isn't included. Beside, as you have to write it yourself you can also make it more powerful. (Enumeration of objects?) But, I admit, I missed enumerations in Java ... -- 3,14159265359