comp.lang.ada
 help / color / mirror / Atom feed
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.




  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