C and C++ give way to managed code
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.