TEAM-ADA Archives

Team Ada: Ada Programming Language Advocacy


Options: Use Forum View

Use Monospaced Font
Show Text Part by Default
Condense Mail Headers

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

Print Reply
"Team Ada: Ada Advocacy Issues (83 & 95)" <[log in to unmask]>
Thu, 3 Aug 2000 12:06:52 -0500
Randy Brukardt <[log in to unmask]>
text/plain; charset="iso-8859-1"
Randy Brukardt <[log in to unmask]>
text/plain (91 lines)
> GUIs in Ada interests me a lot. I often seem to have the
> choice of Java, Python, Ada, awk, etc. And I prefer Ada as a language.
> But is there any reason to prefer it as a GUI builder?

No. But there is no reason to prefer *any* of the above as a GUI builder.
Any language can (and most do) have good GUI builders. So choose the
language, without worrying about that. Choosing a solid language gives you a
solid foundation to build on. You can build a pretty house on quicksand, but
I doubt it will stay pretty for a long time.

> How could I tell how easy it is to build GUIs?

Unabashed ad: :-)

Step 1: Go to and download the Claw demo builder and the
Claw demo version for your compiler.
Step 2: Install the demo builder and compile the bindings. (A bit clunkier
than it would have to be, because we don't want to force people to download
a 1 meg install program).
Step 3: Work through the tutorial. Enjoy. :-)

I expect that AONIX's Special Edition would be just as easy.

> Or what other kinds of license I would have to buy to do the GUI? This
> mail list often cited in the past that you had to buy Microsoft Visual
> C++ or some such product in order to use the interface in one of the
> common Ada compilers. So, without any further information, we simply
> don't use that interface, possibly years after that problem may have
> been solved.

I can answer that for the 4 compilers I've used on Windows:

  AONIX ObjectAda: Nothing else needed, everything you need to use Claw is
included. (We haven't tried the new Special Edition yet; the old one
couldn't compile Claw programs because of the limits on program size.)
  Rational Apex: Nothing else needed.
  GNAT 3.12 & 3.13: The resource compiler included doesn't work right;
you'll have to get the Microsoft one. That's easily done by getting it from
the AONIX ObjectAda Special Edition.
  Janus/Ada: Yes, you need Visual C++. We couldn't afford the license
Microsoft wanted years ago, and we never were even able to find the right
person the last time we tried. We have a plan to build replacements for the
tools needed, but not yet. Note that you need Visual C++ to compile *any*
programs: it has nothing to do with the GUI.

> Is the GUI license like the graphics package (that the company that
> became Aonix sold me), that will not work unless I buy a license from
> another graphics company, and even then I would have problems knowing
> what features it would have?

Claw at least is a stand-alone package, needing nothing but the Ada compiler
(as noted above). I can't speak for other products, but I would be very
surprised if the Open Source GUI stuff required any licenses.

> As a project leader, it is not someone else, but me myself who is asking
> the question: Okay, do it in Ada if you are sure it will work and will
> not waste months learning how to build GUIs that way?

I've got a bunch of Claw success stories that I intend to get posted on our
web site as soon as our ISP lets us use it again (they are doing some sort
of upgrade). And the Claw GUI builder is completely written in Ada using
Claw. So it is obviously possible to do.

> ...
> Is there perhaps a website that shows how to read the keyboard
> interrupts and mouse interrupts in linux and windows?

There is no access to keyboard interrupts in Windows (except in device
drivers). You have the wrong model in mind. Perhaps you meant to ask how to
get keyboard input from Windows? But that is the sort of thing that simply
isn't on websites, and in any case is not language specific.

I would expect that the situation in Linux is similar: certainly older Unix
systems had poor keyboard access (because of their dumb terminal heritage).

> But I would need some help in getting the operating system independence
> for such things as http drivers, mouse drivers, keyboard interrupts,
> ODBC, and GUIs.

I don't think you can get OS independence on those things (with the possible
exception of the last one), not unless you write (or have someone write) a
very thick binding. But that sort of design is *very* hard, and the only
reward you'll get for it is a pat on the back.

                Randy Brukardt
                R.R. Software, Inc.