Software developers are often important augurs of IT technologies’ direction and rate of adoption. Managers who responded to trends among developers would have been the first to detect the growth of Linux and the open source movement, the emergence of Java as a significant platform for server-based computing, and the arrival of integration technologies such as XML and Web services.
In this spirit, our annual Programming Research Report surveys application development professionals from among InfoWorld’s core readership, in hopes of finding likely portents of the evolution of business computing technologies.
This year’s results, gathered from a sampling of nearly 300 respondents, indicate that many software development tools and technologies are in transition. Web services, SOA, and open source tools are definitely enjoying wider adoption and are steadily pushing into the business mainstream. Technologies likely to earn continued favor include Microsoft’s .Net development platform, dynamic scripting tools, and, of course, Java. Traditional development languages, such as C/C++ and other pure compiled languages will come under steady pressure.
Finally, features such as modeling that improve software quality are definitely seeing wider adoption than in previous years, although most of the basic tools that assure software quality are still far from universally deployed. But let’s start with fundamentals.
Platforms and languages
In last year’s survey, we concluded that developers remained conservative in their choice of deployment platforms. Having compared the number of this year’s respondents who indicated increased commitment to each platform, less the number who indicated decreased commitment, we see that this trend continues intact. Notable exceptions are Microsoft’s .Net environment and Mac OS X, which are gaining momentum. The loser this time around, however, seems to be Win32, which is finally showing its age as the only deployment platform with a shrinking user base.
Operating systems exhibit a slightly different profile. Linux and Windows continue to dominate. The Mac OS and a few handheld operating systems show some growth, while vendor-specific and legacy operating systems continue to drop.
Unix suffers particularly badly, with only Solaris able to tread water. It is clear that Linux is Click for larger view. swallowing up Unix implementations as well as mainframe deployments (the latter still being actively supported by IBM). As Linux fills out its enterprise credentials, it will likely supplant all versions of Unix and all mainframe operating systems. This transition is still a few years away, but the trend is in place. Linux has only to show it can deliver the goods for very large implementations to claim the crown it’s been driving toward.
The choice of programming language is still a passionate topic for many developers. However, managers and IT departments have clearly weighed in with their own preferences. Only six languages can expect a net increase in investment. The top two, HTML and scripting languages for Web sites, are a breed apart, because of their use in narrow contexts. They’re included in our data only because they are used so frequently in enterprise development projects.
In true application programming, notable declines occurred in C and C++. (See “C and C++ give way to managed code.”) Today, fortune smiles only on Java, C#, dynamic languages (such as Python, Ruby, and the like), and Visual Basic. What do all these languages have in common? They’re object-oriented, and they all execute within managed-code environments. In addition, they contain features purposely designed to reduce the complexity of application coding, such as automatic garbage collection.
To be sure, C and C++ are not on the verge of extinction. Older programming languages, such as Ada, Fortran, assembly language, and proprietary 4GLs (fourth-generation languages) declined even more, though these products’ market share has been in steady decline for years. More importantly, most respondents indicate that they will continue to invest in C/C++ at a similar level to this year’s. Still, the long-term trend is clear.
Readers who enjoy seeing a more frequently updated report card on the respective positions of programming languages can consult Tiobe Software’s Web site, which displays a monthly language index based on worldwide availability of skilled engineers, courses, and third-party, language-specific tools. As of November 2005, this index, too, showed C++ in a slow decline, with corresponding increases in Java and C#.
Getting applications right
Modeling has definitely emerged from the confines of academia and government projects into mainstream business development -- due in part, no doubt, to the complexity of today’s enterprise applications. Data modeling and process modeling are popular, with process modeling expecting a 14 percent jump at sites this year. Adoption of modeling tools increases steadily with the size of the company, measured by the number of employees at a site. The larger the company, the more likely it is to use modeling.
This trend derives directly from modeling’s principal benefit: It captures large systems, thereby diminishing the gap between user requirements and developer specifications. This gap was one of the two principal challenges developers complained about in our survey, with 40 percent of respondents reporting that it was a major problem at their site. The other top challenge was time pressure, which was cited by 46 percent of respondents.
Testing tools show a similar pattern of adoption. Almost 40 percent of all sites expect to increase investment in testing software this year and next, with larger sites disproportionately overrepresented. It’s clear, however, that the adoption of testing as a development practice has a lot farther to go. Forty-five percent of sites still do no automated unit testing at all (with small sites tipping in at 57 percent), while those that do rarely test more than 30 percent of their programs.
Code analysis, load testing, and performance tuning all showed similar numbers, which suggests that sites doing one form of testing tend to do several, and those doing none are wide open to all sorts of avoidable problems.
Vulnerability testing, unfortunately, showed even lower adoption rates. Nearly half the respondents’ sites do no vulnerability testing at all. Large businesses (those with more than $10 billion in revenue) had the best numbers, with more than 75 percent reporting some vulnerability testing.
But the grim news is actually worse than it appears. When asked what activities were performed by tools at their work site, only 68 percent reported that they used source control, whereas configuration and deployment management clocked in at only 50 percent, issue tracking at 47 percent, and logging and monitoring at 44 percent. Given that many of the necessary tools are available at no cost through open source, this situation results from lack of discipline rather than lack of wherewithal.
It’s clear that raising the quality of software without recourse to elaborate techniques or complex methodologies is still a needed and practical solution. Simple automation of the development, code management, and testing portions, it appears, would deliver tremendous benefits. Click for larger view.
Trends in vogue
The importance of open source development tools to the enterprise is no longer in doubt. On our list of vendors of actively used tools, Eclipse comes in third behind Microsoft and IBM/Rational. Other open source tools collectively garnered a 13 percent share.
Eclipse’s numbers are particularly impressive, as they derive from a single product: the Eclipse IDE. In view of the fact that 71 percent of sites use Java (up from 64 percent last year), however, Eclipse’s success does not support the common perception that Eclipse is steamrolling all the other Java IDEs. Rather, it appears to be the leader but not overwhelmingly so. Open source will likely continue to come up through the ranks, though, pushing past the lower-tier vendors.
Microsoft, however, is not at risk, given its commanding 64 percent presence at developer sites. These numbers represent the use of Visual Studio .Net with the slate of .Net languages, as well as for native C and C++ code. Many sites use Visual Studio .Net for development and testing, due to the quality of the IDE, then port the code to other platforms. This approach represents a significant turnaround from the days when Unix workstations were the preferred platforms for large-scale development.
Still, the Eclipse Foundation is actively expanding its IDE to cover C programming. If it does as good a job with C as it did with the Java IDE, its numbers are likely to improve to the detriment of Microsoft in coming years.
In addition to open source, this year’s survey looked at a few other trendy technologies and discovered that adoption rates among developers surveyed were far below what evangelists would have us believe. Only Web services show true adhesion, and it’s clear that adoption of this technology will grow significantly during the coming years. SOA is on a somewhat slower track, due no doubt to its more ambitious objective and to the fact that sites currently using Web services (41 percent) are the primary candidates for adopting it.
The same relationship that exists between Web services and SOA is mirrored in clusters and grids. Clusters are far more popular and likely to continue advancing, while grids are less favored and will grow more slowly. Like SOA, interest in grids is much higher in companies with more than 10,000 employees than at smaller sites.
The long view
Throughout the data points presented in this article, certain trends are unmistakable. Platform consolidation is occurring rapidly. The preferred deployment frameworks are managed environments, including Java, the .Net CLR (Common Language Runtime), or those associated with dynamic languages. These frameworks run on either Linux or Windows; all other platforms are either footnotes or else are in active decline.
Although development methodologies such as extreme programming and agile methods have inclined developers to reconsider how they design, program, and test software, it’s clear that a fundamental commitment to software quality remains elusive at many sites. These sites choose not to use the established building blocks, such as source code management and bug tracking, that enable a predictable development process and a Click for larger view. higher level of delivered quality. Nonetheless, among the sites that do use these technologies, modeling is rapidly becoming an important practice.
Many emerging technologies compete for managers’ attention, but this year’s survey indicates that Web services and allied technologies (portals, SOA) are gaining significant momentum and are likely to be a standard part of distributed software in the years to come. The tools that will make this all possible will come foremost from IBM, Microsoft, and the open source community. By this time next year, we’ll be in a good position to see how much SOA has changed the architecture of distributed computing and how the leading vendors integrate it into their product offerings.