From: anon@anon.org (anon)
Subject: Re: System calls - GNAT library vs. direct bindings
Date: Fri, 01 Jun 2007 06:59:54 GMT
Date: 2007-06-01T06:59:54+00:00 [thread overview]
Message-ID: <KtP7i.84653$p47.48437@bgtnsc04-news.ops.worldnet.att.net> (raw)
In-Reply-To: 1180623520.303981.191090@q75g2000hsh.googlegroups.com
In <1180623520.303981.191090@q75g2000hsh.googlegroups.com>, Maciej Sobczak <see.my.homepage@gmail.com> writes:
>Hi,
>
>I would like to now your opinion about the two options in the subject.
>
>Let's suppose that the problem is a network-aware application on the
>POSIX system. Ada doesn't know about network per RM, so we have to
>look around for libraries.
>One option is to use the GNAT library that has some package for
>sockets.
>Another is to write thin wrappers that bind directly to relevant
>system calls (socket, connect, read, write, close, bind, listen,
>accept, select - that's it for the basic stuff).
>
>1. The advantage of using GNAT library is portability across various
>systems that are targeted by GNAT. (I assume that the GNAT library is
>available outside of POSIX - if not, please correct me.)
>
>2. The advantage of writing custom thin wrappers is portability across
>various compilers that target POSIX platforms.
>
>The first is not really important for me, I will probably use only
>POSIX systems.
One factor is that Ada was designed for portability there if you do not care
about portability then do not use Ada!
>The seconds is not important neither, I will probably use only GNAT.
Wrappers defeat the purpose of use Ada, so do not use them!
>
>In other words - the focus for evaluation should go elsewhere.
>Performance? Maintainability? Some other factors?
Performance -- use the OS's core language. Which normally means
using C instead of writing code in Ada or using Wrappers. But as the
performance of the code goes up the maintainability starts to drop.
This is due to the fact that performance alorithms are normally tied to
the hardware and as hardware is update the alorithms may need to be
rewritten just to maintain current performance levels which increases
the maintainability cost.
But portability gives an average stable performance with a reduced
maintainability cost. Which means that development cost may be high but
installation and maintains cost afterwards for the software team is very
low. Especially in this age of upgrading the hardware every 6 to 18 months.
So unless one wants to spend the rest on the days updating and rewritting
code to maintain that package, portability should be the highest priority.
next prev parent reply other threads:[~2007-06-01 6:59 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-05-31 14:58 System calls - GNAT library vs. direct bindings Maciej Sobczak
2007-05-31 15:06 ` Ludovic Brenta
2007-05-31 15:23 ` Maciej Sobczak
2007-05-31 16:14 ` Ludovic Brenta
2007-05-31 19:08 ` Michael Bode
2007-05-31 19:48 ` Markus E Leypold
2007-05-31 20:07 ` Simon Wright
2007-05-31 21:10 ` Georg Bauhaus
2007-06-01 19:50 ` Simon Wright
2007-06-01 6:27 ` Maciej Sobczak
2007-06-01 19:29 ` Simon Wright
2007-06-01 6:59 ` anon [this message]
2007-06-01 10:17 ` Markus E Leypold
2007-06-01 13:01 ` Maciej Sobczak
2007-06-01 20:13 ` Pascal Obry
2007-06-01 20:35 ` Pascal Obry
2007-06-01 17:42 ` Jeffrey R. Carter
2007-06-01 19:32 ` Simon Wright
2007-06-01 20:45 ` Maciej Sobczak
2007-06-02 5:35 ` Jeffrey R. Carter
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox