Software Development Tools

Software Development Tools<@VM>Programming environments nurture custom applications<@VM>One of these 10 Ada compilers can help customize on most platforms, even Linux

The right programming environment gives you power to create custom applications

By Martin Heller

Special to GCN

Federal agencies are constantly finding ways to make commercial software work for them, but that hasn't eliminated the need to create applications from scratch.

In government, custom applications abound because agencies often have unique or specialized missions and requirements. A program to model the infrared signature emitted by a re-entry vehicle, for instance, is critical to the Pentagon's Ballistic Missile Defense Organization but is hardly the sort of thing that would be needed anywhere else.

When off-the-shelf software isn't sufficient, an agency can either hire a contractor or assign agency staff to develop a custom application. If you choose the latter, where do you start?

This Buyers Guide focuses on full-fledged programming environments and major compilers. Choosing these is usually the first step in a software development effort, once the target platform has been defined. After an agency has settled on a programming language and environment, it can identify third-party design tools, libraries, repositories, configuration management and version control systems, debugging tools, testing aids, and deployment systems.

Programming environments and other software development tools help programmers design, build, test, debug and deploy custom applications. Evaluating them is sometimes complicated, sometimes not.

Keep it simple

The simplest possible evaluation process, appropriate for experienced development shops doing small projects without critical requirements, is to use whatever the programmers have, like and can use productively.

The most complicated evaluations for large projects with critical needs require painstaking analysis of how each product does or does not meet each project requirement. They also require a careful forecast of the training, development and long-term costs associated with each toolset, made according to the skills of the project staff. In addition, it can be useful to build small prototypes with each tool under evaluation to understand some of the benefits and drawbacks of each system.

The choice of an appropriate language often is critical to a custom development project. The 1996 Aerospace Industry Association Position Statement on Ada, the high-level programming language developed by the Defense Department, recommended that each project staff conduct a language selection trade study to consider lifecycle costs, interoperability, and the critical needs of safety or flight systems and large-scale systems.

A language and environment designed for rapid development, such as Visual Basic, can be extremely productive for building small to midsized desktop PC and database applications for Windows platforms. At the same time, Visual Basic is not portable, not particularly object-oriented and lacks the robustness of Ada or even C++.

Borland Delphi, which has some of the same strengths and weaknesses as Visual Basic, uses a more object-oriented language'Object Pascal'and tends to work better in large projects.

Ada, the required language for most DOD projects from 1991 through 1993, is still strongly recommended for embedded systems and other defense work. The Information Technology Standards Guidance V3.1, which is still in effect, deprecates the use of C: 'The intrinsically low-level nature of C and lack of direct support for modern software engineering approaches and discipline make it an undesirable language for the development of large, general-purpose DOD software applications,' the guidance states.

The same document recommends against C++, stating: 'Because the mechanics of the C language are embedded in C++, it is susceptible to many of the above noted difficulties with C, despite the introduction of object-oriented programming software engineering into the language. ' Use of C++ for the development of critical systems applications is not recommended.'

Go for the Joe

Java would be a strong candidate for a development language when portability is key and the highest possible performance is not. Java programs are normally compiled into portable byte code, which is then either interpreted or compiled to native code by the Java Virtual Machine running on the client machine.

The performance of JVMs is improving, although their memory requirements tend to be on the high side. Work is progressing on embedded and real-time Java, but it has a long way to go before Java can replace Ada in safety and flight-critical systems.

When an application requires a central database or distributed functionality, the choice of language can be less of a factor in the total cost and development time than the choice of programming environment.

Environments that make it easy to access databases with Structured Query Language (SQL) query builders, database designers, and data-aware controls can cut the cost of some projects significantly, more than justifying the premium price attached to client-server and enterprise software tools.

Recently, enterprise Java development environments have become strong on database access. Other candidates for quickly building database applications include Delphi and C++ Builder, Visual Basic and Visual FoxPro, and Sybase PowerBuilder.

Distributed applications built primarily for Windows platforms often interact using the Component Object Model architecture and its distributed extension, Distributed Component Object Model. With Unix platforms, Common Object Request Broker Architecture with Internet Inter-ORB Protocol is often the distributed programming mechanism of choice. Java distributed applications sometimes rely on Sun Microsystems' Remote Machine Interface.

Distributed programming and distributed debugging are more difficult than single-machine programming and debugging. An environment that supports the distributed programming mechanism in use with automatic interface generation, component deployment, and end-to-end debugging will simplify a distributed application developer's job and reduce the cost of developing a distributed application.

Tips for buyers

  • Choose a programming language that is appropriate for the application. A flight-critical embedded system might need to be written in Ada; a desktop PC application for a query to a department's database might be developed at much less expense in Visual Basic.

  • Play to your strengths. If the environment you pick for developing an application is already familiar to your staff, the project will get off the ground much more quickly than if they have to retool and retrain.

  • Use best-of-breed systems. A new project may be just the thing to justify jettisoning an outmoded programming toolset and adopting the best tools now available.

  • Look at the big picture. A project with a 20-year lifecycle will have costs that are dominated overall by maintenance. A project with a one-year mission needs to be developed once, in a short period.

  • Mix and match. It isn't necessary to buy into one-vendor programming suites, although they can sometimes be economically attractive. Consider acquiring third-party tools that work well with your core programming environment.

Web applications often are built using a combination of technologies that fall outside the scope of this guide.

The chart above notes tools that have explicit support for building Web applications, but it does not list all the tools useful for building Web sites.

In many cases, the availability of third-party tools and components tips the scales when comparing programming environments. For instance, there are hundreds of third-party ActiveX controls that work as components with Visual Basic and Delphi, as well as with several other environments.

More and more of a software developer's job can now be done visually. Visual object-oriented design tools let architects decompose applications into compound components, components, classes, methods and properties, and generate code frameworks that correspond exactly to their design.

SQL free

Graphical user interface developers can draw dialogs, menus and forms on-screen, without having to write code. Database developers can design databases and create queries interactively using diagrams, without having to write SQL directly. Once a query works or a table exists, the design tools can generate whole data-aware forms automatically from the query.

Distributed applications, once too difficult for mere mortals, are becoming tractable, if not yet easy to develop. Programming environments now support browsing distributed resources on the network, importing interfaces, and automatically generating client and server proxy classes that let the programmer use the distributed resources by calling methods.

Some environments can also support end-to-end debugging of distributed applications from a single workstation, even on heterogeneous systems that are widely separated.

Programmers have become able to do more in less time, development projects have gotten bigger and more complex, and project development times have been compressed from two- or three-year cycles to six- to nine-month cycles. Any development shop working without power tools won't be able to compete in this kind of environment.

Martin Heller is a software development consultant and writer in Andover, Mass.

VendorProductLanguagesPlatformsDatabase supportDistributed supportTeam supportDescriptionPrice per seat
Franz Inc.
Berkeley, Calif.
Allegro CL Common Lisp with CLOS Win9x, NT, Unix, Linux ODBC, AllegroStore CORBA, COM N/A Cross-platform Common Lisp development environment Personal $595, Windows Enterprise $6,000, Unix Enterprise $8,000, Unix server $16,000, site license $50,000
GNU Compiler Collection C, C++, Fortran, Java, Objective C, Chill Unix and variants N/A N/A SCCS in OS High-quality, open-source compilers; no IDE Free
IBM Corp.
Armonk, N.Y.
Visual Age for Java Java NT, AIX, OS/2 Warp DB2, JDBC, Data Access Builder CORBA, RMI Team repository Visual application generator, incremental compiler Entry Edition free, Professional $79, Enterprise $2,745
Visual Age C++ Professional C, C++ NT, AIX, OS/2 Warp Data Access Builder N/A N/A Visual application generator, incremental compiler NT or OS/2 $899, AIX $2,499
Inprise Corp.
Scotts Valley, Calif.
Borland C++ Builder C, C++ Win9x, NT MIDAS, BDE, ODBC, SQL Builder, InterBase CORBA, COM, Web PVCS RAD environment for C++ Professional $799, Enterprise $2,499
Borland Delphi Object Pascal Win9x, NT MIDAS, BDE, ODBC, SQL Builder, InterBase, ADO, OLE DB CORBA, COM, Web TeamSource Object-oriented RAD tool Professional $799, Enterprise $2,499, Standard $99
Borland JBuilder Java Win9x, NT, Solaris InterBase, Data Modeler, SQL Builder, JDBC CORBA, RMI, EJB PVCS Java 2 RAD tool Professional $799, Enterprise $2,499, Standard $99
Metrowerks Inc.
Austin, Texas
CodeWarrior C, C++, Java Win9x, NT, Mac OS, Linux N/A N/A N/A Cross-platform C, C++, Java IDE Windows or Macintosh $449, Linux $99
Microsoft Corp.
Redmond, Wash.
Visual Basic Basic Win9x, NT SQL Server, ODBC, ADO, OLE DB, RDO, DAO; database, query and report designers COM, Web Visual SourceSafe, SCC interface Easy-to-use RAD tool Standard $109, Professional $549, Enterprise $1,299
Visual C++ C, C++ Win9x, NT SQL Server, ODBC, ADO, OLE DB COM Visual SourceSafe, SCC interface Hard-core C and C++ environment Standard $109, Professional $549, Enterprise $1,299
Visual InterDev VBScript, JavaScript Win9x, NT ADO, query designers COM Visual SourceSafe, SCC interface Web site scripting tool Professional $549
Visual J++ Java Win9x, NT ADO, WFC, query designers, form wizards COM, Web Visual SourceSafe, SCC interface Easy-to-use Java, sacrifices portability for ease and performance Standard $109, Professional $549
Visual FoxPro FoxPro (dBASE derivative) Win9x, NT FoxPro database format; database, query and report designers COM, Web Visual SourceSafe, SCC interface Database-oriented application design environment Professional $549
Visual Studio All of the above Win9x, NT SQL Server, ODBC, ADO, OLE DB; database and query designers COM Visual SourceSafe, SCC interface Cross-language bundle Professional $1,079, Enterprise $1,619
Sun Microsystems Inc.
Palo Alto, Calif.
Visual Workshop C++ Performance Workshop C, C++ Fortran Solaris Solaris N/A N/A N/A N/A TeamWare TeamWare High-performance C and C++ High-performance Fortran Single RTU $1,995, Floating $3,495 Single RTU $1,995, Floating $3,495
Sybase Inc.
PowerBuilder PowerBuilder Win9x, NT, Unix DataWindow, OLE DB, ODBC, Sybase Adaptive Server COM, EAServer, IIOP, Web SCC interface Database-oriented RAD tool Enterprise Windows $2,995, Unix $4,995, Desktop $295, Professional $1,295
PowerJ Java Win9x, NT JDBC, Sybase Adaptive Server, DataWindow RMI, EAServer, CORBA SCC interface Database-oriented Java environment Windows $595
Enterprise Application Studio PowerBuilder, Java Win9x, NT, Solaris DataWindow, OLE DB, ODBC, Sybase Adaptive Server, JDBC COM, EAServer, IIOP, RMI, Web, CORBA SCC interface Bundle with server license Windows $3,445
Symantec Corp.
Cupertino, Calif.
Visual Caf' Java Win9x, NT Oracle Lite, JDBC, dbAnywhere CORBA, RMI, EJB Two version control interfaces: plug-in and SCC Java 1.1 and Java 2 RAD environment Database $799, Enterprise $2,795, Professional $299, Standard $99

VendorProductLanguagesPlatformsDescriptionPrice per seat
Ada Core Technologies Inc.
New York
GNAT Ada 95 Unix, Linux, Windows, Real-time, Mac OS Ada compiler, integrates with GCC Product free, paid support
San Diego
ObjectAda Ada 95 Unix, Windows, Real-time Ada compiler and cross-compiler system $595 for Professional, bundles to $6,850
Burlington, Mass.
AdaMagic Ada 95 Unix, Real-time Ada compiler and cross-compiler system $5,000 up for native, $15,000 up for embedded and Unix-embedded
Concurrent Computer Corp.
Fort Lauderdale, Fla.
MAXAda Ada 95 Real-time Ada compiler and cross-compiler system with integrated development tools $8,500 for single user, $7,000 for each additional user
Green Hills Software Inc.
Palm Harbor, Fla.
Green Hills Optimizing Ada 95 Ada 95 Real-time, Unix, NT Ada compiler and cross-compiler system $2,900
Irvine Compiler Corp.
Irvine, Calif.
ICC Ada Ada 95 Unix, Real-time, VMS, Linux Ada compiler and cross-compiler system $5,000 for native, $25,000 for Unix-embedded, $100,000 for multiuser embedded
OC Systems Inc.
Fairfax, Va.
PowerAda Aprobe Ada 95 Ada 83, 95, C++, Fortran AIX, Unix, Real-time AIX, NT, Solaris Ada compiler Integrated developer environment $6,000, $1,200 for maintenance $36,975 up for project license
R.R. Software Inc.
Madison, Wis.
Janus/Ada 95 Ada 95 32-bit DOS extender, Win9x, NT, Unix Ada compiler $495 for Professional
Rational Software Corp.
Cupertino, Calif.
Apex/Ada Ada 95 NT, Unix, Real-time Integrated Ada development environment with modeling and testing tools $5,000 for native, $22,000 for Unix-embedded with embedded run-time system


  • Records management: Look beyond the NARA mandates

    Pandemic tests electronic records management

    Between the rush enable more virtual collaboration, stalled digitization of archived records and managing records that reside in datasets, records management executives are sorting through new challenges.

  • boy learning at home (Travelpixs/

    Tucson’s community wireless bridges the digital divide

    The city built cell sites at government-owned facilities such as fire departments and libraries that were already connected to Tucson’s existing fiber backbone.

Stay Connected