Software Development Tools

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.

By Martin HellerSpecial to GCNFederal 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.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.'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.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.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.XXXSPLITXXX-XXXSPLITXXX-
The right programming environment gives you power to create custom applications


















Keep it simple

















Go for the Joe





















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.











SQL free











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

























































































































































































































VendorProductLanguagesPlatformsDatabase supportDistributed supportTeam supportDescriptionPrice per seat
Franz Inc.
Berkeley, Calif.
510-548-3600
www.franz.com
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
GCC/EGCS
egcs.cygnus.com
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.
888-411-1932
www.software.ibm.com/
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.
831-431-1000
www.borland.com
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
800-377-5416
www.metrowerks.com
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.
800-621-7930
www.microsoft.com
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.
800-555-9786
www.sun.com
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.
Emeryville,Calif.
800-879-2273
www.sybase.com
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.
800-441-7234
www.symantec.com
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
212-620-7300
www.gnat.com
GNAT Ada 95 Unix, Linux, Windows, Real-time, Mac OS Ada compiler, integrates with GCC Product free, paid support
Aonix
San Diego
619-457-2700
www.aonix.com
ObjectAda Ada 95 Unix, Windows, Real-time Ada compiler and cross-compiler system $595 for Professional, bundles to $6,850
AverStar
Burlington, Mass.
617-221-6990
www.averstar.com
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.
954-973-5427
www.ccur.com
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.
813-781-4909
www.ghs.com
Green Hills Optimizing Ada 95 Ada 95 Real-time, Unix, NT Ada compiler and cross-compiler system $2,900
Irvine Compiler Corp.
Irvine, Calif.
949-250-1366
www.irvine.com
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.
703-359-8160
www.ocsystems.com
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.
608-245-0375
www.rrsoftware.com
Janus/Ada 95 Ada 95 32-bit DOS extender, Win9x, NT, Unix Ada compiler $495 for Professional
Rational Software Corp.
Cupertino, Calif.
408-863-9900
www.rational.com
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

X
This website uses cookies to enhance user experience and to analyze performance and traffic on our website. We also share information about your use of our site with our social media, advertising and analytics partners. Learn More / Do Not Sell My Personal Information
Accept Cookies
X
Cookie Preferences Cookie List

Do Not Sell My Personal Information

When you visit our website, we store cookies on your browser to collect information. The information collected might relate to you, your preferences or your device, and is mostly used to make the site work as you expect it to and to provide a more personalized web experience. However, you can choose not to allow certain types of cookies, which may impact your experience of the site and the services we are able to offer. Click on the different category headings to find out more and change our default settings according to your preference. You cannot opt-out of our First Party Strictly Necessary Cookies as they are deployed in order to ensure the proper functioning of our website (such as prompting the cookie banner and remembering your settings, to log into your account, to redirect you when you log out, etc.). For more information about the First and Third Party Cookies used please follow this link.

Allow All Cookies

Manage Consent Preferences

Strictly Necessary Cookies - Always Active

We do not allow you to opt-out of our certain cookies, as they are necessary to ensure the proper functioning of our website (such as prompting our cookie banner and remembering your privacy choices) and/or to monitor site performance. These cookies are not used in a way that constitutes a “sale” of your data under the CCPA. You can set your browser to block or alert you about these cookies, but some parts of the site will not work as intended if you do so. You can usually find these settings in the Options or Preferences menu of your browser. Visit www.allaboutcookies.org to learn more.

Sale of Personal Data, Targeting & Social Media Cookies

Under the California Consumer Privacy Act, you have the right to opt-out of the sale of your personal information to third parties. These cookies collect information for analytics and to personalize your experience with targeted ads. You may exercise your right to opt out of the sale of personal information by using this toggle switch. If you opt out we will not be able to offer you personalised ads and will not hand over your personal information to any third parties. Additionally, you may contact our legal department for further clarification about your rights as a California consumer by using this Exercise My Rights link

If you have enabled privacy controls on your browser (such as a plugin), we have to take that as a valid request to opt-out. Therefore we would not be able to track your activity through the web. This may affect our ability to personalize ads according to your preferences.

Targeting cookies may be set through our site by our advertising partners. They may be used by those companies to build a profile of your interests and show you relevant adverts on other sites. They do not store directly personal information, but are based on uniquely identifying your browser and internet device. If you do not allow these cookies, you will experience less targeted advertising.

Social media cookies are set by a range of social media services that we have added to the site to enable you to share our content with your friends and networks. They are capable of tracking your browser across other sites and building up a profile of your interests. This may impact the content and messages you see on other websites you visit. If you do not allow these cookies you may not be able to use or see these sharing tools.

If you want to opt out of all of our lead reports and lists, please submit a privacy request at our Do Not Sell page.

Save Settings
Cookie Preferences Cookie List

Cookie List

A cookie is a small piece of data (text file) that a website – when visited by a user – asks your browser to store on your device in order to remember information about you, such as your language preference or login information. Those cookies are set by us and called first-party cookies. We also use third-party cookies – which are cookies from a domain different than the domain of the website you are visiting – for our advertising and marketing efforts. More specifically, we use cookies and other tracking technologies for the following purposes:

Strictly Necessary Cookies

We do not allow you to opt-out of our certain cookies, as they are necessary to ensure the proper functioning of our website (such as prompting our cookie banner and remembering your privacy choices) and/or to monitor site performance. These cookies are not used in a way that constitutes a “sale” of your data under the CCPA. You can set your browser to block or alert you about these cookies, but some parts of the site will not work as intended if you do so. You can usually find these settings in the Options or Preferences menu of your browser. Visit www.allaboutcookies.org to learn more.

Functional Cookies

We do not allow you to opt-out of our certain cookies, as they are necessary to ensure the proper functioning of our website (such as prompting our cookie banner and remembering your privacy choices) and/or to monitor site performance. These cookies are not used in a way that constitutes a “sale” of your data under the CCPA. You can set your browser to block or alert you about these cookies, but some parts of the site will not work as intended if you do so. You can usually find these settings in the Options or Preferences menu of your browser. Visit www.allaboutcookies.org to learn more.

Performance Cookies

We do not allow you to opt-out of our certain cookies, as they are necessary to ensure the proper functioning of our website (such as prompting our cookie banner and remembering your privacy choices) and/or to monitor site performance. These cookies are not used in a way that constitutes a “sale” of your data under the CCPA. You can set your browser to block or alert you about these cookies, but some parts of the site will not work as intended if you do so. You can usually find these settings in the Options or Preferences menu of your browser. Visit www.allaboutcookies.org to learn more.

Sale of Personal Data

We also use cookies to personalize your experience on our websites, including by determining the most relevant content and advertisements to show you, and to monitor site traffic and performance, so that we may improve our websites and your experience. You may opt out of our use of such cookies (and the associated “sale” of your Personal Information) by using this toggle switch. You will still see some advertising, regardless of your selection. Because we do not track you across different devices, browsers and GEMG properties, your selection will take effect only on this browser, this device and this website.

Social Media Cookies

We also use cookies to personalize your experience on our websites, including by determining the most relevant content and advertisements to show you, and to monitor site traffic and performance, so that we may improve our websites and your experience. You may opt out of our use of such cookies (and the associated “sale” of your Personal Information) by using this toggle switch. You will still see some advertising, regardless of your selection. Because we do not track you across different devices, browsers and GEMG properties, your selection will take effect only on this browser, this device and this website.

Targeting Cookies

We also use cookies to personalize your experience on our websites, including by determining the most relevant content and advertisements to show you, and to monitor site traffic and performance, so that we may improve our websites and your experience. You may opt out of our use of such cookies (and the associated “sale” of your Personal Information) by using this toggle switch. You will still see some advertising, regardless of your selection. Because we do not track you across different devices, browsers and GEMG properties, your selection will take effect only on this browser, this device and this website.