Its fitting that the Jolt deliberations took place this year during the Academy Awards, since for many corporate developers our highly-coveted Jolt Award ranks right up there with the Oscars and the Golden Globes.
The competing love and war themes in the Oscar nominations this year between the popular romantic comedy Shakespeare in Love and the more serious war dramas paralleled a similar split in this years Jolt nominations. Repelled no doubt by browser wars and the war room marketshare mentality of many development tool vendors, our judges were in the mood to tell the industry to lighten up; that there is a more natural, open, fun, and productive way to develop software, typified by the open source software movement.
Several tools that garnered Jolt Awards this year adhered to the open source software principle of posting source codethe nuts and bolts of most software programson the Internet, so that anyone could freely study, tinker with, and improve it. Red Hat Software, a Productivity Award winner last year, took home the Jolt this year for its distribution of Red Hat Linux, an open source, UNIX-like operating system. Corels WordPerfect for Linux, a primary business application for the Linux platform, made the short list of Jolt finalists. The release of the Communicator/Mozilla browser source code from Netscape Communications earned a Productivity Award this year for giving the open source movement a huge dose of credibility. (To get a real feel for open source software, read Eric Raymonds manifesto The Cathedral and the Bazaar at www.tuxedo.org/~esr/writings/cathedral-bazaar).
Although naysayers accuse open source software of being an anarchic process that can result in millions of copies of dubious-quality software, this years Utility and Deployment Tools Jolt Award indicates how focused and consistent the judges felt an open source development process could be. In an unusual tie, the judges gave one of two Jolt Awards in this category to the Apache Web Server from the Apache Group, currently used by more than 50% of web servers. The fact that Apache ended up with the same number of votes as one of the judges perennial favorites, Compuware NuMegas DevPartner Studio, is high praise indeed.
|The Jolt Categories|
Vendors, judges, and readers nominated a record 308 products for Jolts this year. From this group, the judges selected 40 finalists in all product categories and evaluated these products to select our winners. The Jolt Award-winning products all made the difficult task of developing corporate software easier, faster, more efficient, or more precise. As such, they jolted the industry with their significance and brought a jolt of productivity to software development managers and their teams.
Software Development honors products in six categories: languages and development environments; design and management tools; utilities and deployment tools; books and computer-based training; libraries, frameworks, and components; and special/other (for products that defy the preceding categories). One product in each category receives the Jolt Award, while the three runners up receive the Software Development Productivity Award.
The Software Development Jolt and Productivity Awards wouldnt take place each year without our well-respected panel of judges, drawn from the contributors of Software Development magazine. In alphabetical order, the 1999 judges were:
|The Jolt Hall of Fame|
Products that consistently show serious content improvement, release after release, are contenders for our Jolt Hall of Fame Award. Unlike the other award categories, the Jolt Hall of Fame Award is reserved for products that have received Jolts so many times in the past that we feel special recognition is due. Unlike last year when Microsofts Visual Basic was inducted after a long and furious debate, the judges chose this years Hall of Fame Award winner, Visio from Visio Corp., much more easily. In recognizing both the importance of a design tool like Visio and the open source software movement, its conceivable our 10th Annual Jolt Awards next spring may need a new category for open design software. Stay tuned.
|Languages and Development Enviornments||Utilities and Deployment Tools|
|Books and Computer-Based Training||Design and Management Tools|
|Libraries, Frameworks, and Components||Special|
|Hall of Fame|
Java 2 (JDK 1.2)
Java has continued to jolt our industry since its public debut in May 1995. Java proponents have made some incredibly large claims, and for the most part, Java has delivered on them. Impressive at first, Javas initial support for cross-platform portability and secure applets that you could download across the Internet was more than enough to justify adopting it, but with Java 2 (née JDK 1.2) the environment has become even more impressive.
One of Javas biggest weaknesses from the start was its approach to user interface development. The abstract windowing toolkit (AWT), although designed to support cross-platform portability, was minimal at best and clunky at worst. But with the new Java Foundation Classes (JFC), also known as Swing, Java 2 is truly a platform you can use to develop robust application software. Java 2s continued support for Java Beans provides developers with a standard approach for developing plug-and-play software components that they can reuse in many applications.
Java 2 isnt about bashing Microsoft (thats just gravy), it isnt about bashing C++ (more gravy), and it isnt about replacing legacy technology that has outlasted its usefulness (Sun really should have called the language Gravy). Java 2 is a proven development language that lets you build software with all the qualities your organization demands: software that is easy to maintain and enhance; that is robust and easy to use; that you can operate on a variety of platforms; that you can easily port to new platforms as they evolve and change over time; and most important, software that stands the test of time. Java 2 is more than just a programming language, it is a key enabler for software engineering. Scott Ambler
Inprises recent tool releases made a solid commitment to the CORBA standard, and the latest JBuilder release is a prime example. Besides strong CORBA support, this RAD Java development environment also sports a GUI that feels a lot like a browser and provides outstanding functionality for creating user interfaces and components, editing and debugging source code, running applications, and reading online help. It includes many useful beans including JFC/Swing and dbSwing JavaBean components that let you be productive right away. JBuilder is an excellent choice for creating pure Java applications. Andy Barnhart
VisualAge for Java
IBMs VisualAge for Java is the leader in the new breed of sophisticated, team-oriented Java IDEs aimed at enterprise development. On large Java projects, using just one of the many great visual Java environments, such as Visual Café, to quickly drag and drop Java components into working applets, is not enough. VisualAge for Java provides the highly visual, component-based development environment and easy enterprise data access that Java developers expect, along with team development features such as a repository and a project management interface. The hardware requirements are steep, but this product isnt designed for the weekend hackerVisualAge for Java is the tool for teams that are serious about server- and client-side Java development. Chris Minnick
Visual Café has always been my first choice as a Java development environment, and the latest version continues to impress me. The code generation wizards save even seasoned veterans substantial time, while providing an excellent way for new developers to quickly create functionality and learn the language. The development environment makes Windows developers feel right at home with outstanding database support and a first-rate selection of components. This is an excellent RAD tool for building applets and applications, with support for Wintel binaries as well as Java classes for deployment. Andy Barnhart
Apache Web Server
The Apache Group
By taking on Microsofts Internet Information Server and Netscapes Enterprise Serverand, actually winningthe Apache Project demonstrated that billion-dollar software giants cant necessarily develop a better product than a small number of enthusiastic programmers. And by being an extensible, yet very stable HTTP server, Apache has inspired additional products, ranging from the commercially available Red Hats Secure Web Server, a supported version of Apache with built-in encryption, to any number of customized versions and add-ins developed for in-house usage.
In other words, Apache has become more than just a server applicationits become a platform. Think of itApache, an open source platform, running on Linux, an open source operating system, running on standard high-volume (for example, Intel x86-based) hardware. Cant get much more open than that!
Where it countsrunning HTTP pages for weeks on end, without a hiccupApache has what it takes to compete with the biggest commercial packages. And if that hasnt jolted the industry, nothing can. Alan Zeichick
DevPartner Studio can help you produce better application code without requiring you to change the way you work (much). You just add a step or two that pays off in more time saved than spent. DevPartner helps you locate and eliminate problems in your codeit checks Visual Basic code for Year 2000 problems, version specific bugs or behaviors, potential performance problems, or standard compliance. It can also find run-time errorspassing BoundsChecker testing has long been a standard of quality that all Windows C++ applications should pass before release. More recent, SmartCheck has provided the same functionality for Visual Basic.
DevPartner Studio includes about a dozen applications. Beyond what I have mentioned here, it also includes one of the best low-level debuggers for Windows. I consider DevPartner Studio a must have if you want to produce high-quality Windows applications. Andy Barnhart
InstallShield makes preparing for deployment of a Windows application easy. You merely need to specify the requirements for a successful installation as granular as you like: baseline software requirements, preferred directories, dependencies, optional components, and InstallShield generates the installation scripts and provides a GUI. It even contains tools for deinstallation, including run-time change logging and the deinstallation interface. InstallShield doesnt take all the work out of deploymentyou still have to script and test. But, the products price more than offsets the time and expertise needed to develop a bulletproof deployment process. Alan Zeichick
Communicator/Mozilla Open Source Code
By releasing the source code for much of its browser technology, Netscape became the largest and most visible company to embrace the open source philosophy. Sure, it didnt invent the concept, but by ostensibly giving away one of its crown jewels, it did more than resuscitate the browser wars. It provided a way for outside developers to feel like part of the Netscape teamsomething closed source code can never do. Further, it provided an invaluable learning tool for many programmers, who could now examine the Mozilla source to learn how a browsers myriad components function. For the educational aspects, if for nothing else, Netscape aided the productivity for the software development community.Alan Zeichick
Component SoftwareBeyond Object-Oriented Programming
by Clemens Szyperski
published by Addison Wesley
Objects are tired, components are wired. Whether we like it or not, in most situations object-oriented programming has not succeeded in fostering code reuse, except in the most limited way. The trend toward reusable software components tries to address that problem, by defining functional interfaces between objects that make sure that a component will be reused than would, say, an object class.
But as with all new buzzwords, components represent a steep learning curve. The quickest and most painless way to climb Component Hill is by reading Clemens Szyperskis Component Software: Beyond Object-Oriented Programming. The book is very readable, yet leaves no stones unturned as Szyperski presents a thorough view of why component-based development is the best hope for handling increasingly complex development projects.
Component Software provides a solid theoretical underpinning and then becomes quite practical, discussing the current instantiations of the Object Management Groups CORBA and OMA, Microsofts DCOM, OLE, and ActiveX, and Suns Java, and JavaBeans approaches to component technology.
Ten years from now, Component Software will be considered the essential encapsulation of the field. Although no new ground was broken, Szyperski pulled component concepts together and packaged them in a digestible format thatll give programmers and development managers an introduction to the topic, as well as a standard vocabulary for discussing the component revolution. If youre looking for one definitive resource to get up to speed quickly on component technologies, this is it.Alan Zeichick
AntiPatterns: Refactoring Software, Architectures, and Projects in Crisis
by William Brown, Raphael Malveau, Hays McCormick, and Thomas Mowbray
published by John Wiley and Sons
Do you learn more from studying successes or failures? The theory behind antipatterns is that the patterns of failure are as clearly definable and repeatable as patterns of success. Once you can identify the antipatterns in your software development project, you can use well-understood best practices to prevent them. Theres no doubt that AntiPatterns is worth reading and discussing by all development team members. Alan Zeichick
Software Architecture in Practice
by Len Bass, Paul Clements, Rick Kazman, and Ken Bass
published by Addison Wesley Longman
There are people who say theyve done software architecture and there are the people who actually have, and these authors definitely are successful software architects. The authors real-world experience comes through in this well-written text, and although it is 452 pages, I can safely say that once you pick it up youll have difficulty putting it down. The book promotes several key philosophies that lead to success: software architecture should be guided by your organizations needs; software architecture is key to your organizations success; and software architecture is both a project-level and a cross-project concern. If you are serious about software development, then this book is a must read.Scott Ambler
Thinking in Java
by Bruce Eckel
published by Prentice Hall
Bruce Eckel does it again! Three years ago his Thinking in C++ won the Jolt Award in the book category. Now, applying the same exciting expository methods and skills to Java, Eckel richly deserves a Jolt Productivity Award in a highly contested category. Of the billions of Java texts now available, this is my choice for the Thinker, and a welcome blow to those annoying Dummies titles. Seeking one phrase to sum up the many merits of Eckels style: a patient, honest, reader-respecting optimism.Stan Kelly-Bootle
Together/J is an excellent modeling CASE tool for Java developers. Its written in Javaa key factor behind its ability to support the needs of real-world Java developers. The fact that Peter Coad, an object guru, has driven Together/Js development explains why it also meets the needs of real-world object modelers. Its support for language-specific features, such as inner classes and Java Beans, puts it miles ahead of other CASE tools that merely support the Java-language syntax.
One of Together/Js strengths is its support for round-trip engineeringto both generate and reverse-engineer Java code. Many other CASE tools claim to do this, but Together/J shows them how its really done. While you model your classes, you can watch Together/J write the source code for you, creating fields and operations on the fly and inserting appropriate Javadoc comments that promote the reverse-engineering of code later. The comments are straightforwardunlike the secret codes favored by other toolswhich you can even write yourself. Further, its easy to import existing Java source code into your Together/J models. In short, round-trip engineering actually works.
Together/J 3.0s support for key UML 1.3 diagrams (class, use case, sequence, collaboration, state, component, deployment, and business process), patterns, and Java-specific language features make it a valuable addition to your Java development toolset. In fact, for those of you still trying to convince senior managers that you can use Java to develop mission-critical applications, you should show them Together/J as an example of a complex application written in Java. The proof is in the pudding.Scott Ambler
Technology Builders Inc.
Complex projects demand sophisticated requirements management, and Caliber-RM is there to help. It leads commercial requirements management tools in usability, using an Explorer-like display to access a hierarchical requirements tree. Caliber-RM lets you define a variety of attributes about each requirement, define and manage traceability links among requirements and other system elements, and manage versions and changes to requirements. Access control mechanisms, threaded discussions, and e-mails of requirements changes keep your team members communicating about requirements issues. An extensible architecture that connects Caliber-RM to other development tools gives it a solid future growth path.Karl Wiegers
Software Productivity Centre
Estimate Professional brings data-based project estimation into a price range thats accessible to all software developers. Use a wizard to define some of your projects characteristics, and Estimate Professional will display a range of planning options and an optimum balance of effort and schedule. What-if scenarios let you adjust the estimated size or other parameters to see a new range of planning options. Estimate Professional combines algorithms derived from many different projects with statistical simulation to generate a range of estimates with different probabilities for a project. Use these estimated outcomes to stay out of the impossible region and plan your project for success. Karl Wiegers
As the pace of development accelerates, Rational Rose (the industry standard modeling tool from the inventors of the Unified Modeling Language) is improving communication and streamlining design decisions by giving analysts, architects, and software engineering teams a new, visual vocabulary. Depending on your background, the UML blueprint language may not be the easiest language to learn, but it offers a great improvement in mapping business processes to a more understandable software architecture. For developers working in heterogeneous environments, the newest version of Rose offers better support for the CORBA object bus, including an improved Interface Definition Language (IDL) and UML mapping that simplifies reverse-engineering of IDL. Roger Smith
Voyager Core Technology
Voyager is a distributed programming mechanisms library for Java that you should be using to develop distributed applications. If you are not currently using Java, Voyager might convince you to switch languages. Its also a good tool to learn distributed programming without getting into the gritty details of communication programming. You will learn not just object-oriented but distributed object-oriented programming. It currently supports CORBA communication, including an Object Request Broker, and Javas Remote Method Invocation (RMI). ObjectSpace promises to support DCOM, Enterprise Java Beans, and Jini soon.
Voyager takes care of your programs communications by letting you quickly convert an existing Java program into a distributed program. First, set up a virtual machine on each machine you want to use by executing a single command on each machines command line, then change your Java new statements to Voyager Factory.create() statements that specify which virtual machine to run on. Now run your program and watch Voyager take care of all the communications.
Voyager really shines when it comes to sophisticated distributed applications that need to grow, shrink, and evolve over time, with little or no downtime. Voyager supplies multicasting and publish/subscribe mechanisms for communicating with an objects group, whose membership is ever-changing. Voyagers mobile agent and dynamic aggregation mechanisms are invaluable for performance tuning and for modifying an objects behavior during run time. Together all these mechanisms make it possible for you to spend more time designing and tuning your application and less time debugging those low-level, difficult communication bugs.
Voyager has spread quickly and is now being used by thousands of developers for both Internet and intranet applications. You can download the freeware version from www.objectspace.com or purchase a fully supported commercial version. It will change the way you think about distributed programming!
Business mappingdisplaying, querying, and analyzing business data dynamically using geographic information system (GIS) toolsis powerful technology that can help business analysts understand the underlying patterns, trends, and geographic correlation in apparently unconnected data. Unlike other GIS solutions that you may have difficulty justifying from a price and performance standpoint, MapX lets you quickly and easily embed mapping power into software applications using standard programming languages. Once you customize the MapInfo MapX object, you can reuse and deploy the code across multiple applications, including Microsoft Excel. MapInfo is the developer of the Microsoft Map in Excel, which also uses MapInfos map file type.Roger Smith
Objective Toolkit Pro
The Microsoft Foundation Classes (MFC) provide a nice framework for creating C++ applications for Windows, but a number of advanced features lack support. Stingray Softwares Objective Toolkit helps to address many of these deficiencies. It sits atop MFC and extends it to allow interfaces, such as docking and floating windows (similar to Visual Studios look and feel), and toolbars that users can customize. The classes are easy to add to existing applications, and easy to support in new ones. Full source code and comprehensive help are provided. Andy Barnhart
Sax Basic Engine
Adding Visual Basic for Applications (VBA) support to your application can be difficult and expensive. ActiveScripting is free and easier, but provides much less functionality. SaxBasic fills the void between these two extremes by providing a Visual Basic development and deployment environment that is syntactically compatible with VBA, provides an excellent editor, debugger, and object browser, yet is inexpensive and relatively simple to use. Support is provided through an ActiveX control or directly from the DLL (an MFC wrapper is also included). You can provide your users with an IDE for development, or simply use the engine to deploy extensions. The thorough documentation, samples for most supported tools, and a great support forum guide you as you implement scripting in your application. Andy Barnhart
Red Hat Linux
Red Hat Software
If Linux is to make serious inroads into the business community, two major issues must be addressed: installation and support. Red Hat seems to be on a mission to resolve these to the corporate worlds satisfaction.
Installing Red Hat Linux on a PC is rather straightforward; it includes a CD and a diskette as an alternative to the CD. You then proceed through a series of text-based windows, selecting options and answering questions, and Linux is soon installed. This is still not for everyone; some of the installation questions are quite technical, and operations such as disk partitioning shouldnt be performed by all users. But Red Hat also provides support for automated installations, so technical staff can install for multiple users quickly on several similar machines.
The installation story doesnt stop here. Most Linux software is distributed in TAR format (often also compressed with GZ). For many system or product installations, several complex command lines have to be entered in an exact sequence, which can be daunting. For these installations, Red Hat created the Red Hat Package Manager and its RPM file format where all necessary files and information can be put in a single package that you can install or uninstall with a simple point-and-click.
Red Hat is committed to getting you up and running with e-mail or fax support for the first 30 days. After that, answers are easy to come by through Red Hats web site or various newsgroups. Corporate accounts can purchase additional support on a time or incident basis. Red Hat continually strives to support more hardware options and makes new drivers and updates available to users via download. By any standard, Red Hats Linux installation and support are ready for the corporate mainstream. Andy Barnhart
Microsoft Developer Network (MSDN)
Unless youre living in a bubble on the moonor in a 100% pure UNIX, Macintosh, OS/2, or Amiga shopMicrosoft plays a central role in your life. The Microsoft Developer Network, or MSDN, provides key advantages to anyone developing software for a Microsoft platform or using Microsoft tools. The CD-ROMs include domestic and internal versions of operating systems, applications, tools, patches, and updates; for that alone MSDN is worth the subscription price. But when you add the msdn.microsoft.com and www.microsoft.com/sitebuilder web sites, the conferences, printed and e-mail newsletters, user groups, and documentation, MSDN is one of two subscriptions (the other is Software Development, of course) that a development teams library must maintain to keep up-to-date.Alan Zeichick
Sun Developer Essentials
Sun Microsystems Inc.
At last, Solaris and Java developers have the same kind of subscription service Microsoft Developers have enjoyed for years. Suns Developers Essentials, hailed as Suns answer to the ever-popular MSDN subscription, provides Java and Solaris developers with the tools, APIs, software, and quarterly upgrades they need to develop applications with Sun and Java technologies. Developers have three subscription options to choose from: the Foundation Edition for beginning Java developers; the Professional Edition for Solaris and Wintel developers working in client/server environments; and the Enterprise Edition for developers creating large-scale, cross-platform enterprise applications. If you and your team want to be productive in Java, this is the essential subscription for you. Barbara Hanscome
Dragon NaturallySpeaking Mobile
Dragon Systems Inc.
Speech recognition and dictation technology is finally moving past the wow, this actually works stage into the this is actually useful stage. The limiting factors have always been the awkward headset microphone and unreliable software that forced you to talk unnaturally. Dragon NaturallySpeaking removed the requirement to talk slowly and in monotone, and in 1998, Dragon Systems released Dragon NaturallySpeaking Mobile, which includes a nifty Tricorder-like digital recorder that can record up to 40 minutes of speech. Anyone who isnt always sitting in front of a computer will instantly see the benefit of recording ideas, memos, and code documentation for transcription by your computer later.Chris Minnick
I cant remember the last time I walked into an organization that wasnt using Visio to model one or more key aspects of their business. Visio is a diagramming tool that lets you draw simple to complex diagrams, and model everything from a business process to the network configuration depicting your organizations computer hardware topology. Visio is based on a stencil paradigm (remember the plastic stencils you used as a child to trace common shapes into your drawings?) that lets it support a wide range of common diagrams such as business process, network, software, and organization charts.
Software developers have typically used Visio to cover for the missing diagrams that their CASE tools didnt support. In its capacity as a good, all-around IT tool for network design and software engineering, Visio has previously won both Jolt and Productivity Awards. In its most recent release, Visio 5.0 now comes with pre-built features that effectively make Visio a CASE tool in its own right. In addition to adding features to its product that help developers (UML, standard flowcharts, database, and other diagrams), Visio also boasts a developer area on its web site with information on building solutions with Visio and buying custom third-party solutions. Visio now integrates with both Microsoft Repository and Visual Studio to reverse-engineer existing code, providing better support for the diagrams of the Unified Modeling Language (UML) than many CASE modeling tools costing 10 times as much. With its wide range of diagrams and customizable shapes, you will find that Visio quickly will become one of your organizations key applications. Scott Ambler