TEAM-ADA Archives

Team Ada: Ada Programming Language Advocacy

TEAM-ADA@LISTSERV.ACM.ORG

Options: Use Classic View

Use Monospaced Font
Show HTML Part by Default
Condense Mail Headers

Topic: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Sender: "Team Ada: Ada Advocacy Issues (83 & 95)" <[log in to unmask]>
Date: Wed, 10 May 2000 09:06:53 -0400
Reply-To: Mike Brenner <[log in to unmask]>
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset=us-ascii
Organization: none
From: Mike Brenner <[log in to unmask]>
Parts/Attachments: text/plain (92 lines)
> >   Skweetis wrote:
> >      I don't use Ada because there aren't very many library bindings
> >      for it.
> >
> > Finally a criticism that isn't completely false.
> > Microsoft/Sun/SGI/etc has legions of programmers and are constantly
> > defining new APIs.  Everyone else will always be one step behind.
>
> Unfortunately, this is very true.  Building a system with COTS hardware
> requires a fairly large resource expenditure on creating binding for the
> included C/C++ libraries.  This is not just having to deal with new APIs
> from Microsoft/Sun/
> SGI/etc but with real world, everyday hardware.


There is another part of the Truth to this objection. There are many
Ada binding that assume expert level familiarity with and an unknown
number of licenses to the products they are binding to.

It would be helpful if there were a list as to what products you
need to buy and how to use the various bindings (a total of
approximately 4 lines for each binding that exists).

As a specific example, if I wanted to use Ada in the following
contexts, how could I figure out what bindings I could use and what
products I would have to buy in order to use it:

   a. I would like to use Ada to do queries against my SQL databases
(implemented in commercial DBMS products across the web such as
Oracle, Sybase, Informix, and DB2). There are several ODBC bindings,
but they seem to bind to various commercial products that must be
boughten before you get the ability to do the ODBC, without actually
telling you what you have to buy. Java and Python, on the other
hand, provide objects that open sockets on the internet and do ODBC
in an identical manner on Solaris, Linux, and Windows without having
to buy any extra products.

   b. I would like to light up dots on the screen directly. Okay, so
no one on the list agrees with me that I SHOULD be wanting this kind
of control or speed. So, let's go for a second choice. I would like
to do vector graphics in the same manner on Windows, Linux, and
Solaris. There are dozens of graphics bindings out there, and a
couple of them have features that work on NT. But with all the
choices, the open graphics, the gtks of the world, etc., etc., where
is a binding to a method of lighting up horizontal segments on the
screen IN REALTIME that works on both the windows and the unixen of
the world, like Java does, even though most unixen use X-Windows and
NTs out of the box do not?

  c. I would like to use Ada programs as Jini services, requiring
them to serve as RUNNABLE, SERIALIZABLE Java classes implementing
DiscoveryListener and ServiceIDListener, and hava an interface that
permits them to be transmitted as a proxy across a socket. There are
several Java bindings. Can any of them give me close enough control
over the Java virtual machine, its security policy, and the Java
runtime library to do this?

  d. I would like to write a keyboard interrupt driver for NT to
permit applications (think of an elecronic pipe-organ) to receive
multiple simultaneous keypresses, like chords. Is there a binding
that lets me access the Ring 0 features of NT, access the internals
of an interrupt driver, and hook myself into the interrupt chain
like we do in DOS?

  e. I would like an Ada version of a shopping basket, to hook
myself into a bank, a clearinghouse, a customer service bureau, a
fulfillment house (that does the pick/pack/ship from a warehouse),
the marketing database of the vendor, the hyperlinked catalog web
page, and the customer web page, so that a customer can pick
products from the catalog, put them in the shopping basket, pay for
them, and track the shipments, talking to the various companies via
coded e-mail (or database transactions or realtime mailboxes or
standard business transactions, or whatever). What bindings are
available to permit me to send transactions across the internet?
What bindings are available to permit me to trigger an Ada program
upon activation of a hyperlink button? What bindings are available
to receive and decode email? What bindings are available to send
email? What bindings are available to log onto Federal Express's web
page and generate a label for my shipment? What bindings are
available to log onto Federal Express's web page and ask for the
status of my shipment?

THE COMMON THEME IS THAT, ALTHOUGH MOST OR ALL OF THESE BINDING
EXIST, THEY ARE NOT ACCESSIBLE AS ANSWERS TO THE ABOVE QUESTIONS,
BASED ON PROGRAMMER NEED. THEY ARE GROUPED IN A WAY THAT ONLY
EXPERTS OF A CERTAIN KIND CAN FIND THEM, AND THOSE EXPERTS DO NOT
SEEM TO EXIST.

ADA-95 WOULD BE USED MORE IF I COULD PROGRAM MY GAMES
(Business-to-Business, Military, Simulation, Adventure, etc.) IN
ADA-95.

ATOM RSS1 RSS2