comp.lang.ada
 help / color / mirror / Atom feed
From: Edward Fish <edward.r.fish@gmail.com>
Subject: Re: Need some light on using Ada or not
Date: Fri, 18 Feb 2011 16:20:55 -0800 (PST)
Date: 2011-02-18T16:20:55-08:00	[thread overview]
Message-ID: <e9e2e44e-88ba-4e6a-8f38-e7d5df15ee2c@z27g2000prz.googlegroups.com> (raw)
In-Reply-To: 4d5ef836$0$23753$14726298@news.sunsite.dk

On Feb 18, 2:52 pm, "Luis P. Mendes" <luislupe...@gmailXXX.com> 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.  Or 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=all&lang=gnat
> 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.  Can 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.



  parent reply	other threads:[~2011-02-19  0:20 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-02-18 22:52 Need some light on using Ada or not Luis P. Mendes
2011-02-18 23:58 ` Georg Bauhaus
2011-02-19 14:25   ` Simon Wright
2011-02-19  0:20 ` Edward Fish [this message]
2011-02-20  0:13   ` Luis P. Mendes
2011-02-20  1:36     ` Marc A. Criley
2011-02-20  9:59     ` mockturtle
2011-02-20 10:37     ` Brian Drummond
2011-02-20 11:08     ` Ludovic Brenta
2011-03-01  8:10     ` Adrian Hoe
2011-03-01  8:29       ` Thomas Løcke
2011-03-04 13:34         ` Adrian Hoe
2011-02-19  8:43 ` Vadim Godunko
2011-02-19 13:07 ` Brian Drummond
2011-02-19 14:17   ` Simon Wright
2011-02-19 18:02     ` Brian Drummond
2011-02-19 18:07       ` Bill Findlay
2011-02-20 10:42         ` Brian Drummond
2011-02-19 14:36   ` Georg Bauhaus
2011-02-19 18:25     ` Brian Drummond
2011-02-20 14:34       ` Brian Drummond
2011-02-20 15:45         ` jonathan
2011-02-20 16:18           ` Brian Drummond
2011-02-20 19:49           ` Pascal Obry
2011-02-20 19:57             ` Brian Drummond
2011-02-20 20:10               ` jonathan
2011-02-20 21:15                 ` Pascal Obry
2011-02-20 21:26                   ` Vinzent Hoefler
2011-02-20 21:33                     ` Vinzent Hoefler
2011-02-20 21:36                     ` Pascal Obry
2011-02-20 21:50                       ` Vinzent Hoefler
2011-02-20 22:18                   ` jonathan
2011-02-20 22:47               ` Simon Wright
2011-02-21 12:52                 ` Brian Drummond
2011-02-21 13:44                   ` Simon Wright
2011-02-24  0:19                     ` Brian Drummond
2011-02-24  7:41                       ` Jacob Sparre Andersen
2011-02-22  2:15                   ` Shark8
2011-02-20 16:42       ` jonathan
2011-02-20 20:02         ` Brian Drummond
2011-02-20  0:20   ` Luis P. Mendes
2011-02-20 10:50     ` Brian Drummond
2011-02-20 19:54     ` Brian Drummond
2011-02-23 22:19       ` Luis P. Mendes
2011-02-24 17:06         ` Brian Drummond
2011-02-27 17:51           ` Luis P. Mendes
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox