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.9 required=5.0 tests=BAYES_00 autolearn=ham autolearn_force=no version=3.4.4 X-Google-Thread: 103376,703c4f68db81387d X-Google-Thread: 109fba,703c4f68db81387d X-Google-Thread: 115aec,703c4f68db81387d X-Google-Thread: f43e6,703c4f68db81387d X-Google-Attributes: gid103376,gid109fba,gid115aec,gidf43e6,public X-Google-Language: ENGLISH,ASCII Path: g2news1.google.com!news4.google.com!news3.google.com!news.glorb.com!newsfeed.kamp.net!newsfeed.freenet.de!feed.news.tiscali.de!news.belwue.de!newsfeed.arcor.de!news.arcor.de!not-for-mail Date: Wed, 23 Mar 2005 14:22:03 +0100 From: Georg Bauhaus User-Agent: Debian Thunderbird 1.0 (X11/20050116) X-Accept-Language: en-us, en MIME-Version: 1.0 Newsgroups: comp.lang.ada,comp.lang.c++,comp.realtime,comp.software-eng Subject: Re: Teaching new tricks to an old dog (C++ -->Ada) References: <4229bad9$0$1019$afc38c87@news.optusnet.com.au> <1110032222.447846.167060@g14g2000cwa.googlegroups.com> <871xau9nlh.fsf@insalien.org> <3SjWd.103128$Vf.3969241@news000.worldonline.dk> <87r7iu85lf.fsf@insalien.org> <1110052142.832650@athnrd02> <1110284070.410136.205090@o13g2000cwo.googlegroups.com> <395uqaF5rhu2mU1@individual.net> <1110329098.642196@athnrd02> <1110361741.551255@athnrd02> <422edaec$0$26554$9b4e6d93@newsread4.arcor-online.net> <1111464133.508323@athnrd02> <423fe9df$0$11476$9b4e6d93@newsread2.arcor-online.net> <1111524623.705533@athnrd02> <4240937b$0$9215$9b4e6d93@newsread4.arcor-online.net> <1111568536.640808@athnrd02> <42414d77$0$9217$9b4e6d93@newsread4.arcor-online.net> <1111576684.292321@athnrd02> In-Reply-To: <1111576684.292321@athnrd02> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 8bit Message-ID: <42416d31$0$9221$9b4e6d93@newsread4.arcor-online.net> Organization: Arcor NNTP-Posting-Date: 23 Mar 2005 14:20:49 MET NNTP-Posting-Host: 34a12c77.newsread4.arcor-online.net X-Trace: DXC=d]gQIF7[c0KeoBec=`Q1lF:ejgIfPPldDjW\KbG]kaMHdbobRQ:W=WBbYfV@J=08EJ8JM^O\[iIdC5_D:ZO]eW3G X-Complaints-To: abuse@arcor.de Xref: g2news1.google.com comp.lang.ada:9794 comp.lang.c++:46806 comp.realtime:1614 comp.software-eng:5214 Date: 2005-03-23T14:20:49+01:00 List-Id: Ioannis Vranos wrote: > Georg Bauhaus wrote: > >> Compare log(10^6) to 1. >> >> I can't see how O(log(n)) isn't huge when compared to >> O(1), in an inner loop for containers of size 10^6. > > > OK, but besides the fact that only explicit entries in map occupy space, Yet another issue having nothing to do with how Ada arrays compare to C++ style arrays when the problem requires plain arrays, not sparse arrays. > Also, as I said it is not difficult to define an array that takes > arbitrary signed ranges, but this does not make much sense in C++. Any evidence? > In other words, the direct equivalent of your array is probably > valarray/vector, ignoring the signed ranges. "ignoring" seems to be an attitude in your responses. ;-) > built-in arrays, which means is not of much use. Do you know what a built in array really is, and what it does? > Also the lack of a "STL like" library in Ada until now probably sounds > like that Ada lacks much of the high-level abstraction that C++ provides. Oh, come on. You are making claims about a language and then guess about it? For many things a library was just not needed in Ada. The language already provided what was needed, including the high level of abstraction. I've tried to picture the higher level of abstraction in the Ada base type system that is just not present in C++. For example, there is no need for .begin() and .end() in Ada because it has always had these as attributes. In Ada it has always been possible to write a generic array algorithm simply by requiring that the G in is of an array type. There was no need to add the hot new things like Can_Copy because they were already in the language. There have always been well designed ADT libraries (including graph support). One of them has actually been ported from Ada 83 to C++, and later to Ada 95 (Booch components). Come to think of it, I don't know of anything like task *types* and shared variable *types* built into the language C++. This is right under your nose as high level abstractions in plain Ada program structuring. �C++ adds concurrency support to the C++ type system, at a somewhat lower level of abstraction than Ada. Still, �C+++ reimports the weaknesses of the precursor languages. Sad, but successful because of mass momentum. Georg