One important trend highlighted by this year's research is the ongoing transition away from C and C++ -- the two languages that have been programmers' mainstays for many years -- in favor of Java, and, more recently, C#. This shift might seem peculiar to some. After all, C remains the implementation language of choice for Linux, the Apache Web server, the MySQL database, and other key open source projects, which points out the fundamental position of C: It's a terrific language for systems programming and infrastructure-level software, but it's less suited to the needs of straightforward applications.
C++, which has an established object model and an expansive and portable library of data structures, seems like a good applications-oriented alternative to C. And, in fact, it has been the preferred language of ISVs for writing performance-critical software. C++, however, never delivered the benefit it most loudly touted: widespread object reusability. Without the bolt-and-go application components, C++ remains too low-level for application work, especially given the modern alternative of Java.
Java, which borrows much of its syntax from C and C++, offers capabilities crucial to business developers. First and foremost, it offers an active and wide-ranging ecosystem, an increasing amount of which is derived from work of the open source community. Hundreds of Java libraries and components are available today at little or no cost.
Secondly, for better or for worse, Java has an accepted deployment model for scalable server applications in the form of J2EE. As a result, developers can write enterprise applications with full knowledge of what services will be supplied by the environment, regardless of deployment platform.
Finally, Java has better development tools. InfoWorld's review of Java IDEs in March examined the top Java environments and found many features that have no counterpart in the C/C++ community (). Given the intense rivalry between these products, the leading Java development tools are likely to continue to advance in capabilities.
These reasons for Java's success in business applications all have direct counterparts in C#, the flagship language of Microsoft's Java-like .Net programming environment. And, as our survey results show, C# is also enjoying increasing popularity when compared with C and C++. As enterprise application environments grow increasingly complex, these modern languages will continue to displace C and C++ as the enterprise developer's tools of choice.