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.9 required=5.0 tests=BAYES_00,FORGED_GMAIL_RCVD, FREEMAIL_FROM autolearn=no autolearn_force=no version=3.4.4 X-Google-Thread: 103376,ad4585f2971e47c5 X-Google-NewGroupId: yes X-Google-Attributes: gida07f3367d7,domainid0,public,usenet X-Google-Language: ENGLISH,ASCII Path: g2news2.google.com!news2.google.com!postnews.google.com!z27g2000prz.googlegroups.com!not-for-mail From: Edward Fish Newsgroups: comp.lang.ada Subject: Re: Need some light on using Ada or not Date: Fri, 18 Feb 2011 16:20:55 -0800 (PST) Organization: http://groups.google.com Message-ID: References: <4d5ef836$0$23753$14726298@news.sunsite.dk> NNTP-Posting-Host: 174.28.187.177 Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Trace: posting.google.com 1298074855 25108 127.0.0.1 (19 Feb 2011 00:20:55 GMT) X-Complaints-To: groups-abuse@google.com NNTP-Posting-Date: Sat, 19 Feb 2011 00:20:55 +0000 (UTC) Complaints-To: groups-abuse@google.com Injection-Info: z27g2000prz.googlegroups.com; posting-host=174.28.187.177; posting-account=IGEw6QoAAAChe8btAoGmJk0kqF3q3VLA User-Agent: G2/1.0 X-HTTP-UserAgent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13,gzip(gfe) Xref: g2news2.google.com comp.lang.ada:18411 Date: 2011-02-18T16:20:55-08:00 List-Id: On Feb 18, 2:52=A0pm, "Luis P. Mendes" wrote: > Hi, > > I have two projects to work, one of them in the data mining field and > another regarding xml parsing. > I've been learning C++ (from a Python, Pascal, VB background), due to it > being fast (sure it depends on the implementation) and because it has a > lot of libraries. > > But I find C++ a very complex language and Ada appeals to me specially > for its overall safety. =A0Or maybe also because I don't like to go with > majorities... :-) > > I have some questions, however, that I'd like to be answered: > 1. If Ada is more type safe and restricted than C++, how can it be > significantly slower? > Please see:http://shootout.alioth.debian.org/u64q/benchmark.php? > test=3Dall&lang=3Dgnat > where for some tests, Ada is 2x, 3x, 4x and 5x slower. > For the data mining field as I want to implement, speed is essential. > I'll code in Linux and use gcc as a compiler/linker. > > 2. In C++ I can use lots of libraries. I'm thinking on data visualization > libraries, for examplehttp://www.graphviz.org/Gallery/undirected/ > softmaint.html. > I've read that Ada can use some C bindings. =A0Can I use any C library? > Some? Is it easy? > I don't want to drop C++ for Ada to build a project that later has to be > rewritten in C++ because of lack of libraries. > > 3. Is there any kind of fast xml stream parser library? No DOM or SAX, > just to read attributes. > > Luis I'm going to answer in reverse-order. #3 - There is XMLAda; I mention it only because I've heard of it. I haven't had a need for XML, much less a FAST XML parser. But consider that you might not NEED a full-blown XML parser if what you're doing is relatively simple: you could instead have your type override the 'Read & 'Write attributes in the proper XML format and use Streams. #2 - This is highly dependent on you. Some people are perfectly happy with a light binding, in which case it's EASY; some people want a THICK binding in which case it's a bit harder because you have to design an interface which essentially a) hides the C/C++ imports & calls, and b) is in the "Ada Style." To take OpenGL for example instead of a function taking a glenum you would subtype it out so that it takes ONLY the valid values. #1 - Speed is HEAVILY dependent on the implementation. Consider, for a moment, sorting. A bubble-sort and a quick-sort are exactly the same in terms of Input/Output [on an array of discrete types], but the speeds are radically different. As Georg mentioned that shootout program used the Unbounded version of strings, and that makes manipulation thereof rather slow... it could likely have been done with normal strings a bit faster but with a bit more effort and "dancing around" the fixed nature of string-lengths.