I/S languages: Melting pot or cup of Java?

If press coverage was the major barometer of language preference, Java would clearly be the language-of-choice in application development organizations across the industry. Miles of columns have (rightfully) extolled the virtues of this wonder language. It is object/component-based and a natural fit for a Net-enabled environment. Java also has mounting momentum in terms of major vendor and third-party backing, addresses many of the problematic evils in C++ (such as memory management and garbage collection), and offers the promise of universal develop-once-run-anywhere deployment.

However, corporate I/S development groups are unlike columnists who can start each project with a clean sheet of paper. The stability of the new technology, training, internal standards, availability of interfaces to other critical software, even the existing portfolio and backlog of applications -- these are only a few of the issues that affect the speed at which new technology can be internalized to the point where it becomes part of an organization's mainstream arsenal. Even when a new technology -- like Java -- has such early and obvious acceptance, the adoption rate is gradual and typically moves from an evaluation phase to a pilot project and finally to production-level systems.

It is a multilingual world

The reality is that the world of I/S development is multilingual, and despite the Java juggernaut, will likely remain so for the foreseeable future. Consider the responses from application development managers in Software Productivity Group's annual research on IT trends. (See Fig. 1.)

Languages used for client/server apps

The above graph represents the response to the following SPG Analyst Services survey question: Which language do you currently use to develop your client/server applications?

Fig. 1

Source: Software Productivity Group Analyst Services

Heading the leader board is SQL with 59.1% of respondents. BASIC/VB lays claim to second place with 56.1%, followed closely by C++ with 53.6% and the 4GLs with 51.9%. Trailing the 50+% leaders by a significant margin is C with 34.6%. Finally, we see the appearance of Java with 22.8%, followed closely by Other with 19.4%. Smalltalk closes out the field with 10.1%.

While the survey provides a wealth of data, there are several quantifiable trends that appear. The first is the total of the response percentages. (Respondents were asked to mark all applicable languages, and hence, the total exceeds 100%.) The sum of the percentages yields 307.6% -- a raw average of slightly over three languages per respondent. And this is strictly for client/server development. It says nothing about languages that, for example, might be used for an organization's mainframe-centric applications. Second is the 19 point spread between C++ and C. This differential (along with other trend data) clearly indicates that C++ has taken the lead as the technical developers' language-of-choice. The third and final point is the use of Java. Slightly more than 20% of respondents indicated their organizations are currently using Java. Perhaps more interesting is the split by company size. Respondents from large companies (over $500 million in revenues) are utilizing Java in roughly the same percentages as the small companies (under $100 million).

Languages: Ebb and flow

In the SPG survey, the small company segment encompasses a large number of software development companies, ISVs and VARs. These smaller organizations are the classical pioneers -- the first to adopt a new technology. Yet with Java, the large companies -- usually much more conservative in their approach -- are as aggressive as their smaller counterparts in the use of this relatively new language.

The only constant is change, and the language preferences of the respondents follow that axiom. An additional facet of the language utilization issue is the anticipated growth (or decline, in some instances) over the course of the next two years. (See Table 1.)

Survey information:
Projected language use in the next two years

Language Current
Anticipated use
within two years
Delta (1) % Change (2)
SQL 59.1% 63.3% 4.2% 7.1%
C++ 53.6% 58.6% 5.0% 9.3%
4GLs 51.9% 57.4% 5.5% 10.6%
Basic/VB 56.1% 54.9% -1.2% -2.1%
Java 22.8% 51.9% 29.1% 127.6%
C 34.6% 27.8% -6.8% -19.7%
Other 19.4% 21.1% 1.7% 8.8%
Smalltalk 10.1% 12.2% 2.1% 20.8%
(1) Delta = Anticipated use minus current use
(2) % Change = Delta divided by current use

Table 1

Source: Software Productivity Group's Analyst Services

SQL continues to lead in popularity with 63.3% of respondents citing its use. Granted, SQL is most generally thought of as a special-purpose language associated with database access. However, in addition, there are implementations (Oracle and USoft) that also use SQL as the basis of their development language. With a second place finish at 58.6%, C++ offers a natural migration path for users coming out of a C environment and/or moving into an OO paradigm. The productivity - oriented 4GLs are in third place with 57.4% and trail C++ by a mere 1.2%. BASIC/VB moves to fourth place with 54.9%. The fast-closing Java passes the 50% mark and advances to fifth place with 51.9%. It additionally registers both the largest increase (DELTA) and the highest rate of growth (% CHANGE) -- by a significant margin.

While SPG is typically skeptical of responses showing such huge increases, the intense focus on Java (and the Internet) provide an environment where such growth is indeed feasible. The once-prevalent C continues to decline, although it will still be used by over a quarter of survey respondents. Other increases by only 1.7%. And Smalltalk continues to hold its appeal with a small and marginally growing audience.

Additive technology

In the two-year timeframe, the total of the respondent percentages reaches 347.2% -- up from the current total of 307.6% and accounted for, in great part, by the anticipated increase in Java. The Java increase reflects both the maturing of the technology and the tendency of new technology to be additive in nature. In much the same way that Internet enablement is additive to the client/server model, Java is an additional and important development language that is being rolled into the language portfolios of an increasing number of organizations.

If history repeats itself, the growing wave of Java will impact not the current 3GL leader (C++), but the previous leader (C). Organizations follow a trend of updating their technology when it falls two generations behind the leader. This will also be seen in the upcoming 64-bit architectures being developed. The 64-bit machines will do little harm to 32-bit sales, but they will help drive the nail in the coffin at more than a few 16-bit installations.

The other axiom, and the bane of I/S maintenance groups, is that technology and the systems using that technology never seem to completely go away. Surely the developers of the Cobol programs (now the focus of intense year 2000 efforts) never, not for a moment, thought their programs would survive until the turn of the century. But these programs are alive today, and in fact, support many an organization's core business functions. Now, in case the non-mainframers feel immune to this syndrome, one has only to look at DOS. While projected use is on the decline, DOS is still alive and well on a significant number of desktops.

The lead for this column -- the persisting need to develop and/or enhance applications written in multiple languages -- is only one aspect of today's I/S challenges. Yet it is a major undertaking in and of itself, involving personnel issues, technology issues, and in some cases, internal political issues. Technologists and domain experts have argued and will continue to argue the merits and drawbacks of the various languages.

With 3GLs, the developers have precise and near absolute control over the environment. True, say the domain experts. But developing fast changing business rules in a 3GL is a far too time-intensive process, and the process is best accomplished in a higher level language. Consider, also, the rise in process modeling. Here are the proponents of, for example, the now-emerging Unified Modeling Language (UML), who would argue that an even higher level of abstraction is mandated by the fast pace of today's business environment.

As responses to the Analyst Services survey prove, not one language has gained acceptance as the panacea to the myriad of application development issues. As I/S groups continue to wrestle with this multifaceted topic, one thing is certain -- one of the interview questions for prospective application developers will be "Sprechen sie Java?"