1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600
|
<!--startcut ==========================================================-->
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<META NAME="Generator" CONTENT="Microsoft Word 97">
<TITLE>Gnat and Linux: C++ and Java Under Fire LG #33</TITLE>
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000FF" VLINK="#A000A0"
ALINK="#FF0000">
<!--endcut ============================================================-->
<H4>
"Linux Gazette...<I>making Linux just a little more fun!</I>"
</H4>
<P> <HR> <P>
<!--===================================================================-->
<CENTER>
<H1><font color="maroon">Gnat and Linux: C++ and Java Under Fire</font></H1>
<H4>By <a href="mailto:ken@tiamet.vaxxine.com">Ken O. Burtch</a></H4>
</center>
<P> <HR> <P>
<CENTER>
<FONT SIZE=-1><U>Quick Index</U>: <A HREF="#Newer">Newer than Java </A>/
<A HREF="#Under">Gnat: gcc understands Ada</A> / <A HREF="#Features">Features
and Compatibility</A> / <A HREF="#Install">Installation</A> / <A HREF="#Avail">Availability
and Commercial Support</A> / <A HREF="#Java">Java Byte Code and Distributed
Processing</A> / <A HREF="#Gripes">Gripes</A> / <A HREF="#Recommend">Recommendations</A>
</center>
<BR>
<HR WIDTH="100%">
<P><FONT SIZE=-1>Long sessions.</FONT>
<BR><FONT SIZE=-1>Awkward environments.</FONT>
<BR><FONT SIZE=-1>Convoluted rules.</FONT>
<BR><FONT SIZE=-1>Missile guidance systems.</FONT>
<P><FONT SIZE=-1>This is the computer language that many people know as
Ada. Today's Ada looks more like Inprise's Delphi than its caveman ancestor,
and soon will produce Java applets that you can drop into your web sites.
However, does it stack up against other languages available for Linux?</FONT>
<BR>
<H3>
<HR WIDTH="100%"><A NAME="Newer"></A><FONT SIZE=-1>Newer than Java</FONT></H3>
<FONT SIZE=-1>The new Ada standard is known as Ada 95. Two years younger
than Java, this is the first object-oriented programming language to be
internationally standardized. This means that all Ada compilers and their
libraries should work exactly the same on any operating system, giving
Linux programmers an extra level of portability.</FONT>
<P><FONT SIZE=-1>C++ is the de facto standard for Linux programming. After
all, the kernel itself is written in C. However, C++ is not suitable for
all kinds of projects because different computer languages have different
strengths and weaknesses. Ada was designed for team development and embedded
systems, leading to advantages over C in development time and debugging.
An in-depth 1995 study by Stephen F. Zeigler (http://sw-eng.falls-church.va.us/AdaIC/docs/reports/cada/cada_art.html)
showed that development in Ada costs about half that of C++. It also suggests
that Ada produces "almost 90% fewer bugs for the final customer".</FONT>
<P><FONT SIZE=-1>The test bed compiler for Ada 95 was gnat.</FONT>
<BR>
<H3>
<HR WIDTH="100%"><A NAME="Under"></A><FONT SIZE=-1>Gnat: gcc understands
Ada</FONT></H3>
<FONT SIZE=-1>The Ada compiler produced by Ada Core Technologies (ACT),
gnat is available for free for Linux. Gnat is also available for other
platforms, including Sun Solaris, Silicon Graphics, DEC Alpha and Microsoft
Windows.</FONT>
<P><FONT SIZE=-1>Gnat was developed closely with gcc, the native C
compiler for Linux. Unlike some compilers that translate a program into
C and then feed the C program into gcc, gcc has built-in support for the
Ada language. Like g++, gnat works with with gcc, allowing
it to produce fast, quality executables without any intermediate steps.</FONT>
<P><FONT SIZE=-1>This integration gives a lot of flexibility to programmers
who want or need to support multiple languages. Gnat has an extensive set
of features for trading variables and function calls between Ada and C/C++.
It can import C/C++ items into Ada, export Ada items to C/C++. You can
also link Ada functions indirectly into Java, using Java's ability to import
C++ functions.</FONT>
<P><FONT SIZE=-1>Gnat comes with over 140 standard libraries. These include
numeric and string libraries, file operations, hash tables and sorts. If
you would rather work directly with Linux C libraries, a variety of "binding"
libraries exist, available for download from the Public Ada Library or
The Home of the Brave Ada Programmers. These include bindings for POSIX
(that is, the kernel), X Windows, Motif, TCL and WWW CGI applications.</FONT>
<P><FONT SIZE=-1>Although gnat is distributed under the GPL license, gnat
and its libraries may be used in commercial applications.</FONT>
<BR>
<H3>
<HR WIDTH="100%"><A NAME="Features"></A><FONT SIZE=-1>Features and Compatibility</FONT></H3>
<FONT SIZE=-1>Last year I ran some simple time trials on gnat, the Java
Development Kit, and gcc.</FONT><p>
<CENTER><I><U><FONT SIZE=-1>Language Performance Comparision</FONT></U></I></CENTER>
<CENTER><I><FONT SIZE=-1>(Pentium 90, 10 million iterations, results in
CPU Seconds)</FONT></I></CENTER>
<CENTER> </CENTER>
<TABLE BORDER CELLPADDING=7 WIDTH="696" >
<TR>
<TD VALIGN=TOP><FONT SIZE=-1></FONT></TD>
<TD><B><FONT SIZE=-1>Java</FONT></B></TD>
<TD><B><FONT SIZE=-1>Ada</FONT></B></TD>
<TD><B><FONT SIZE=-1>C</FONT></B></TD>
</TR>
<TR>
<TD VALIGN=TOP><FONT SIZE=-1></FONT></TD>
<TD><FONT SIZE=-1>JDK 1.0.1 </FONT></TD>
<TD><FONT SIZE=-1>gnat 3.09 </FONT></TD>
<TD><FONT SIZE=-1>gcc 2.7.2.1</FONT></TD>
</TR>
<TR>
<TD><B><FONT SIZE=-1>Test</FONT></B></TD>
</TR>
<TR>
<TD VALIGN=TOP><FONT SIZE=-1>Constant assignment </FONT></TD>
<TD><FONT SIZE=-1>20.68 </FONT></TD>
<TD><FONT SIZE=-1>0.36 </FONT></TD>
<TD><FONT SIZE=-1>0.23</FONT></TD>
</TR>
<TR>
<TD VALIGN=TOP><FONT SIZE=-1>Long Int assignment </FONT></TD>
<TD><FONT SIZE=-1>20.88 </FONT></TD>
<TD><FONT SIZE=-1>0.35 </FONT></TD>
<TD><FONT SIZE=-1>0.22</FONT></TD>
</TR>
<TR>
<TD VALIGN=TOP><FONT SIZE=-1>Long Int multiply </FONT></TD>
<TD><FONT SIZE=-1>29.50 </FONT></TD>
<TD><FONT SIZE=-1>0.38 </FONT></TD>
<TD><FONT SIZE=-1>0.23</FONT></TD>
</TR>
<TR>
<TD VALIGN=TOP><FONT SIZE=-1>Array access </FONT></TD>
<TD><FONT SIZE=-1>24.52 </FONT></TD>
<TD><FONT SIZE=-1>0.64 </FONT></TD>
<TD><FONT SIZE=-1>0.23</FONT></TD>
</TR>
<TR>
<TD VALIGN=TOP><FONT SIZE=-1>Function Calls </FONT></TD>
<TD><FONT SIZE=-1>15.63 </FONT></TD>
<TD><FONT SIZE=-1>1.07 </FONT></TD>
<TD><FONT SIZE=-1>0.22</FONT></TD>
</TR>
<TR>
<TD VALIGN=TOP><FONT SIZE=-1>Strings Concatenation </FONT></TD>
<TD><FONT SIZE=-1>19.29 </FONT></TD>
<TD><FONT SIZE=-1>0.35 </FONT></TD>
<TD><FONT SIZE=-1>2.75</FONT></TD>
</TR>
</TABLE>
<FONT SIZE=-1></FONT>
<P><FONT SIZE=-1>Gnat performed well against gcc. Inspite of gnat's extensive
run-time error checks, the test programs ran on average only a third slower
than gcc. With these checks disabled, you should get performance comparable
with C. As an interpreted language, Java ran several times slower than
either Ada or C.</FONT>
<P><FONT SIZE=-1>The following table presents a summary of some common
features, compared with others languages (including Delphi):</FONT><p>
<CENTER><FONT SIZE=-1> <I><U>Summary of Common Features</U></I></FONT></CENTER>
<FONT SIZE=-1></FONT>
<TABLE BORDER CELLPADDING=7 WIDTH="696" >
<TR>
<TD VALIGN=TOP><B><FONT SIZE=-1></FONT></B></TD>
<TD><B><FONT SIZE=-1>C++ </FONT></B></TD>
<TD><B><FONT SIZE=-1>Java </FONT></B></TD>
<TD><B><FONT SIZE=-1>Ada </FONT></B></TD>
<TD><B><FONT SIZE=-1>Delphi</FONT></B></TD>
</TR>
<TR>
<TD VALIGN=TOP><FONT SIZE=-1> <B>Feature</B></FONT></TD>
</TR>
<TR>
<TD VALIGN=TOP><FONT SIZE=-1>Objects & Classes </FONT></TD>
<TD><FONT SIZE=-1>yes </FONT></TD>
<TD><FONT SIZE=-1>yes </FONT></TD>
<TD><FONT SIZE=-1>yes </FONT></TD>
<TD><FONT SIZE=-1>yes</FONT></TD>
</TR>
<TR>
<TD VALIGN=TOP><FONT SIZE=-1>16-bit Characters </FONT></TD>
<TD><FONT SIZE=-1>NO </FONT></TD>
<TD><FONT SIZE=-1>yes </FONT></TD>
<TD><FONT SIZE=-1>yes </FONT></TD>
<TD><FONT SIZE=-1>yes</FONT></TD>
</TR>
<TR>
<TD VALIGN=TOP><FONT SIZE=-1>Short Circuiting </FONT></TD>
<TD><FONT SIZE=-1>NO </FONT></TD>
<TD><FONT SIZE=-1>yes </FONT></TD>
<TD><FONT SIZE=-1>yes </FONT></TD>
<TD><FONT SIZE=-1>yes</FONT></TD>
</TR>
<TR>
<TD VALIGN=TOP><FONT SIZE=-1>Overloading </FONT></TD>
<TD><FONT SIZE=-1>yes </FONT></TD>
<TD><FONT SIZE=-1>some* </FONT></TD>
<TD><FONT SIZE=-1>yes </FONT></TD>
<TD><FONT SIZE=-1>yes </FONT></TD>
<TD><FONT SIZE=-1>*no infix operators</FONT></TD>
</TR>
<TR>
<TD VALIGN=TOP><FONT SIZE=-1>Inlining </FONT></TD>
<TD><FONT SIZE=-1>yes </FONT></TD>
<TD><FONT SIZE=-1>NO </FONT></TD>
<TD><FONT SIZE=-1>yes </FONT></TD>
<TD><FONT SIZE=-1>yes</FONT></TD>
</TR>
<TR>
<TD VALIGN=TOP><FONT SIZE=-1>Built-in Multithreading </FONT></TD>
<TD><FONT SIZE=-1>NO </FONT></TD>
<TD><FONT SIZE=-1>yes </FONT></TD>
<TD><FONT SIZE=-1>yes* </FONT></TD>
<TD><FONT SIZE=-1>yes </FONT></TD>
<TD><FONT SIZE=-1>*has 2 kinds</FONT></TD>
</TR>
<TR>
<TD VALIGN=TOP><FONT SIZE=-1>Multiple Inheritance </FONT></TD>
<TD><FONT SIZE=-1>yes </FONT></TD>
<TD><FONT SIZE=-1>interfaces </FONT></TD>
<TD><FONT SIZE=-1>NO </FONT></TD>
<TD><FONT SIZE=-1>NO</FONT></TD>
</TR>
<TR>
<TD VALIGN=TOP><FONT SIZE=-1>Polymorphism </FONT></TD>
<TD><FONT SIZE=-1>yes </FONT></TD>
<TD><FONT SIZE=-1>yes </FONT></TD>
<TD><FONT SIZE=-1>yes </FONT></TD>
<TD><FONT SIZE=-1>yes</FONT></TD>
</TR>
<TR>
<TD VALIGN=TOP><FONT SIZE=-1>Private fields </FONT></TD>
<TD><FONT SIZE=-1>yes </FONT></TD>
<TD><FONT SIZE=-1>yes </FONT></TD>
<TD><FONT SIZE=-1>yes </FONT></TD>
<TD><FONT SIZE=-1>yes</FONT></TD>
</TR>
<TR>
<TD VALIGN=TOP><FONT SIZE=-1>Built-in Distributed Processing </FONT></TD>
<TD><FONT SIZE=-1>NO </FONT></TD>
<TD><FONT SIZE=-1>NO+ </FONT></TD>
<TD><FONT SIZE=-1>yes* </FONT></TD>
<TD><FONT SIZE=-1>NO </FONT></TD>
<TD><FONT SIZE=-1>*requires free add-on </FONT>
<BR><FONT SIZE=-1>+not built-in, uses a class</FONT></TD>
</TR>
<TR>
<TD VALIGN=TOP><FONT SIZE=-1>Garbage Collection </FONT></TD>
<TD><FONT SIZE=-1>NO </FONT></TD>
<TD><FONT SIZE=-1>yes </FONT></TD>
<TD><FONT SIZE=-1>yes* </FONT></TD>
<TD><FONT SIZE=-1>yes </FONT></TD>
<TD><FONT SIZE=-1>*not implemented by gnat</FONT></TD>
</TR>
</TABLE>
<FONT SIZE=-1> </FONT><p>
<p><FONT SIZE=-1>As you can see, Ada holds its own against Java.</FONT>
<H3>
<HR WIDTH="100%"><A NAME="Install"></A><FONT SIZE=-1>Installation</FONT></H3>
<FONT SIZE=-1>Because gnat is integrated with gcc, the gnat binaries are
compiled for a specific version of gcc and will only work with that version.
The latest public version from ACT is 3.10p, which has been compiled for
gcc 2.7.2.1. If you have this version, the installation program allows
you to install gnat directly on your system. This will overwrite your copy
of gcc with one that has Ada support enabled.</FONT>
<P><FONT SIZE=-1>If you don't have gcc 2.7.2.1, you can specify a separate
directory where gnat will install itself and its personal copy of gcc 2.7.2.1.
To make gnat available, you have to perform two additional steps:</FONT>
<OL>
<LI>
<FONT SIZE=-1>The installation program creates a shell script containing
environment variables that you can copy to your shell startup script (under
bash, this is your .profile file). Gnat uses these variables to locate
important files.</FONT></LI>
<LI>
<FONT SIZE=-1>Include the gnat directory in the front of your path to prevent
gnat from using the gcc that came with your Linux distribution. (Only do
this when you want to run gnat.)</FONT></LI>
</OL>
<FONT SIZE=-1>When I attempted to install gnat on RedHat, I ran into a
number of problems. According to ACT, they are aware of the problems of
running gnat under RedHat and instructions on how to get it working are
found in the gnat chat and comp.lang.ada archives. Nevertheless, ACT says
they will be releasing a RedHat 5.1 compatible public version of gnat in
the relatively near future.</FONT>
<P><FONT SIZE=-1>Once you have the binaries installed, the more adventuresome
can recompile gnat for their version gcc:</FONT>
<OL>
<LI>
<FONT SIZE=-1>You need a copy of the gcc sources in order to build a copy
of gcc that's compatible with gnat. These should be available with your
Linux distribution. The minimum version is 2.7.2.</FONT></LI>
<LI>
<FONT SIZE=-1>Download a copy of the gnat sources, which are available
for download from the gnat download site and its mirrors.</FONT></LI>
<LI>
<FONT SIZE=-1>Recompile gcc and gnat. Make sure you follow gcc's instructions
for activating Ada support.</FONT></LI>
</OL>
<FONT SIZE=-1> </FONT>
<H3>
<HR WIDTH="100%"><A NAME="Avail"></A><FONT SIZE=-1>Availability and Commercial
Support</FONT></H3>
<FONT SIZE=-1>The compiler sources and executable for the general public
are available for free from <A HREF="ftp://cs.nyu.edu/pub/gnat">ftp://cs.nyu.edu/pub/gnat</A>
and its mirrors.</FONT>
<P><FONT SIZE=-1>Similar to Samba, ACT can provide comprehensive commercial
support, but it costs several thousand dollars. The support includes priority
bug fixes and the latest version of gnat (compiled against whatever version
of gcc you are using). The commercial support is not strictly required
for serious projects for the same reason that Samba isn't. Technical assistance
is available on the Internet, and since the compiler adheres to the international
standard and has been well-tested, the public release is as well-built
and reliable as gcc itself. The commercial support is aimed at substantial
projects that need high level support, such as projects critical to the
success of a business or department.</FONT>
<P><FONT SIZE=-1>Gnat comes with extensive documentation in HTML format
that you can browse with lynx or Netscape. This includes complete coverage
of all of gnat's unique features and options. Unfortunately, no tutorial
for Ada is included.</FONT>
<BR>
<H3>
<HR WIDTH="100%"><A NAME="Java"></A><FONT SIZE=-1>Java Byte Code and Distributed
Processing</FONT></H3>
<FONT SIZE=-1>In the past year, ACT announced that their next release of
gnat would be able to produce not only executable programs but Java executables
(called "byte code") as well. A gnat program will be able
to run on any Java interpreter, such as web site applets running under
a Java-enabled browser. This gives Linux web programmers an alternative
to using the Java.</FONT>
<P><FONT SIZE=-1>ACT also provides a free gnat add-on called "Glade", which
enables Ada 95's built-in distributed processing support. Programs using
Glade can work with each other transparently over a network.</FONT>
<P><FONT SIZE=-1> </FONT>
<H3>
<HR WIDTH="100%"><A NAME="Gripes"></A><FONT SIZE=-1>Gripes</FONT></H3>
<FONT SIZE=-1>I came across a few problems while working with gnat.</FONT>
<P><FONT SIZE=-1>When testing gnat, I found a minor problem related to the
<I>normalize_scalers</I> pragma. This is a compiler directive
that helps to detect variables used before they are initialized. The directive
worked fine except in a package containing object definitions. All other
language features I tested appeared to work properly under Linux, including
multitasking.</FONT>
<P><FONT SIZE=-1>Gnat's executables can be several times the size of a
gcc executable. Gnat provides compiler directives to reduce a program's
size, but if a small footprint is an important issue, you may want to avoid
gnat.</FONT>
<P><FONT SIZE=-1>Gnat also lacks an IDE, but this is a common problem for
Linux languages.</FONT>
<P><FONT SIZE=-1>My biggest complaint isn't with the language: it's ACT's
uneven customer support. Although I've always received prompt replies from
ACT, they are not always courteous or helpful, and I've often been more
frustrated than enlightened.</FONT>
<P><FONT SIZE=-1>Once I went to my local photocopy shop to make copies
of the gnat manual, and they refused because the manuals contain a copyright
notice. I emailed ACT and they were quick to respond that the copyright
notice would be changed in the next edition. It's been over a year since
they updated their FTP site, and I'm still waiting to see this simple
change.</FONT>
<P><FONT SIZE=-1>On another occasion, my software company was investigating
gnat's suitability as a development platform for Linux. As far as we knew,
ACT could have been run out of Robert Dewar's basement. We wanted to know
that there would be future releases of gnat before we committed
ourselves to developing a software base and suffer the stigma of
programming in Ada. At first we were told we shouldn't consider developing
in gnat unless we had their commercial suppport. Then we were told that
they wouldn't provide commerical support for a fledgling company like
ourselves. If ACT would have given us a straight answer on the commercial
support, told us that we would still be supported on a non-priority
basis, and wished us luck on our future endevours, we would have been
more than happy. Instead, we felt that they had been dishonest with us and then
told that we were dirt when we had gone out on a limb to consider gnat
in the first place.</FONT>
<p><FONT SIZE=-1>No company should be rude or disrespectful to its clients.
They deserve straight-forward answers, timely fixes, and a "please" and
"thank you" now and then to show their interest is appreciated.</FONT>
<BR>
<H3>
<HR WIDTH="100%"><A NAME="Recommend"></A><FONT SIZE=-1>Recommendations</FONT></H3>
<FONT SIZE=-1>Without a doubt, gnat holds its own against other Linux development tools.
I would recommend gnat and Ada for the following:</FONT>
<UL>
<LI>
<FONT SIZE=-1>Any project requiring a team environment, multiple computer
languages or high accuracy. Ada excels over C++ and Java on these issues.</FONT></LI>
</UL>
<UL>
<LI>
<FONT SIZE=-1>It is a cost-effective alternative for universities and colleges.
Ada's strong structure, rich features and easy to read syntax make it ideal
for introductory courses in computer science.</FONT></LI>
</UL>
<UL>
<LI>
<FONT SIZE=-1>Anybody who's more comfortable using a Pascal-style language,
such as a Delphi or BASIC programmer new to the world of Linux.</FONT></LI>
</UL>
<FONT SIZE=-1>Also, anybody doing Java development for Linux should investigate
the next release of gnat.</FONT>
<P><FONT SIZE=-1>Robert Dewar, the head of ACT, assured
me that "ACT is committed to providing high quality Ada 95 products for
Linux. We have a number of serious Ada users using Linux today, and we
intend to continue to serve the Linux market for such users."</FONT>
<P><FONT SIZE=-1>When speaking of Linux's exponential growth over the last
two years, Mr. Dewar was quick to point out that the gnat Linux market
is currently small. ACT is not interested in promoting the Ada 95 standard.
They would rather spend their time improving their products and selling them
to the existing Ada markets. That the Linux
community has largely overlooked gnat is not surprising.</FONT>
<P><FONT SIZE=-1>The difference between a successful project and a failure can
often hinge upon choosing the right development tool for the job, and gnat
has a lot to offer. Gnat brings a versatile development environment to Linux,
an efficient compiler and a rich set of development tools, and that is
something the Linux community cannot ignore. Whether or not gnat has a
bright future in Linux is anybody's guess, but it would be a shame if a
high quality piece of free software should be overlooked. This is a lesson
that all Linux enthusiasts have learned very well.</FONT>
<BR>
<H3>
<HR WIDTH="100%"><A NAME="Resources"></A><B><FONT SIZE=-1>Resources</FONT></B></H3>
<U><FONT SIZE=-1>Web Sites</FONT></U>
<P><FONT SIZE=-1>Ada Core Technologies (ACT): <A HREF="http://www.gnat.com/">http://www.gnat.com</A></FONT>
<BR><FONT SIZE=-1>Ada Information Clearinghouse (AIC): <A HREF="http://sw-eng.falls-church.va.us/">http://sw-eng.falls-church.va.us/</A></FONT>
<BR><FONT SIZE=-1>Gnat FTP Site: <A HREF="ftp://cs.nyu.edu/pub/gnat">ftp://cs.nyu.edu/pub/gnat</A></FONT>
<BR><FONT SIZE=-1>Home of the Brave Ada Programmers (HBAP): <A HREF="http://www.adahome.com/">http://www.adahome.com</A></FONT>
<BR><FONT SIZE=-1>Public Ada Archive (PAL): <A HREF="http://www.wustl.edu/">http://www.wustl.edu</A></FONT>
<BR><FONT SIZE=-1>Samba: <A HREF="http://samba.anu.edu.au/samba/">http://samba.anu.edu.au/samba/</A></FONT>
<P><U><FONT SIZE=-1>Books</FONT></U>
<P><FONT SIZE=-1><U>Professional Java Fundamentals</U>. Cohen, Shy et al.
Wrox Press, 1996.</FONT>
<BR><FONT SIZE=-1><U>Programming in Ada 95</U>. Barnes, John. Addison Wesley,
1996.</FONT>
<BR><FONT SIZE=-1><U>C++ for Professional Programmers</U>. Blaha, Stephen.
Int'l Thomson Computer Press, 1995.</FONT>
<BR>
<H3>
<!--===================================================================-->
<P> <hr> <P>
<center><H5>Copyright © 1998, Ken O. Burtch <BR>
Published in Issue 33 of <i>Linux Gazette</i>, October 1998</H5></center>
<!--===================================================================-->
<P> <hr> <P>
<A HREF="./lg_toc33.html"><IMG ALIGN=BOTTOM SRC="../gx/indexnew.gif"
ALT="[ TABLE OF CONTENTS ]"></A>
<A HREF="../lg_frontpage.html"><IMG ALIGN=BOTTOM SRC="../gx/homenew.gif"
ALT="[ FRONT PAGE ]"></A>
<A HREF="./nelson.html"><IMG SRC="../gx/back2.gif"
ALT=" Back "></A>
<A HREF="./gm.html"><IMG SRC="../gx/fwd.gif" ALT=" Next "></A>
<P> <hr> <P>
<!--startcut ==========================================================-->
</BODY>
</HTML>
<!--endcut ============================================================-->
|