> The PITAC report I spoke of the other day speaks of
> Component-based Software Engineering. That's where I
> see VB fitting in like a glove, and that's were I see
> Ada lacking. The VB GUI is not just buttons and text
> boxes (THAT was the first day). ....
> The domain engineering which went into VB really shows.
> We see the five target domains clearly: Windows OS
> interfacing, GUI development, data manipulation,
> OS-based device control, and communications in general
> (and web in particular). The VB controls operate at such a high
> level of abstraction that you don't have to worry about
> the low-level details and can concentrate on the problem.
> Ada was a significant step in the right direction, but
> VB is a much bigger step. Ada could be there as well
> (there's no technical reason why these highly abstract
> component features cannot be added), but the cost of
> such an effort would be really significant.
You really need to look at Claw. It doesn't do everything on your list, but
it does a lot of them, and in a higher-level, all-Ada way. You're of course
right that the effort would be significant -- Claw has taken many thousands
of person-hours to date, and will take many more in the future.
(Of course, if we had Microsoft sort of money, it would be a killer
Looking specifically at the things mentioned:
> The VB GUI is not just buttons and text
> boxes (THAT was the first day).
Claw does these, of course.
> It is also dynamic list boxes (a form of linked list without
> the pointers),
That's a standard part of Win32; Claw does them of course.
> drive list boxes and directory list boxes and file list
> boxes which combine to allow you to navigate a file
> system without programming any system calls,
That's also a standard part of Win32, although these generally are
considered obsolete (use the common dialogs instead). Claw supports them as
> the chart
> control which allows you to configure and draw 16 kinds
> of charts (bar, XY, line, area, pie, both 2D and 3D, etc)
> without worrying about manipulating pixels,
Well, Claw doesn't do everything! We don't have any chart controls. Never
could figure out how they ought to work.
> the common
> dialog control which allows for 6 common program needs
> (open a file, save/create a file, select a printer,
> select a font, select a color, and invoke online help)
> with almost no effort, and so on.
Claw supports these as well. All of these things have been around since
Windows 3.1, only the abstractions are new. So they are pretty reliable.
> The standard packages in Ada95 are very good, but no where near
> this level of abstraction.
Of course not, GUI APIs are ready for the sort of standardization that
a programming language has. (Look at all of the trouble Sun has had doing
that for Java).
But there are add-ons that do this very well. Claw is one of these. It
suffers for some purposes by being tied to Windows, but so is VB.
> Assuming the components are reliable
> (which they seem to be), you can put together massive
> applications with very few lines of code. They work the
> first time (in my experience) and you are done and ready
> to move on. The Web Browser I wrote in 1 hour on a
> Sunday morning was part of what made me trigger my first
I happened to be building a new client for our source code repository to
replace an old hand-built one when you message came. I spent all of 4 hours
building the GUI interface for it, and most of that time was spent tracking
a bug I triggered in the Claw registry code. (One reason for doing it was to
exercise the builder better than small examples does).
Claw certainly isn't as easy to use as VB, in large part because we work
with many compilers, which means we aren't integrated with the compilers as
well as we could be. That could be eliminated if only we made enough money
to really develop the product. Similarly for web interfaces. So support Ada
on the desktop: buy Claw!! :-)
(Standard disclaimer: I'm the lead engineer for Claw, so I have an interest
in people buying Claw...)
R.R. Software, Inc.