The Tower of Techno-Babel: What Languages Do Devs Love Now?
What languages are enterprise IT developers falling in and out of love with? Your answer depends on whom you ask and whose figures they're looking at. Business needs, the rise of Web 2.0 and even economic factors can all impact the popularity of one language over another.
IT developers are moving toward higher-level languages that make their work simpler in order to keep up with business needs.
However, even those languages are sometimes not simple enough for the Web 2.0 world, spurring developers to also turn to dynamic languages such as PHP and Ruby, which can provide a faster return on development efforts.
Keep It Simple
Simplicity equals speed in application development, and that speed is being driven by the move to Web 2.0.
"There's a desire to build applications fast because of the speed of Internet time," IDC analyst Al Hilwa told TechNewsWorld. "People have moved to rapid development because no one knows how long new applications will survive."
"When times are high, languages get more complex, and when there's a recession ... jobs are cut and everybody goes for simpler languages," he told TechNewsWorld.
Who's on First?
Depending on the source, Java is either the No. 1 or No. 2 programming language in terms of popularity among IT developers.
IDC surveys show Java is the most widely used language, according to Hilwa. "Java is a nose ahead of .Net from a lot of the surveys we see," he said.
However, Dutch firm Tiobe, which puts out a monthly index ranking programming languages by their popularity, ranked Java and C Nos. 1 and 2, respectively, in March. Tiobe searches the Web for its data. It calculates the popularity of a language by the number of lines of code developers write.
Another site that rates programming languages, LangPop, ranks C as the clear leader over Java for the top slot. This ranking comes from its normalized search results, obtained by using various search engines and examining various Web sites.
On Tiobe and LangPop
Tiobe bases its ratings on three factors: the number of skilled engineers worldwide; the number of courses run in the various programming languages; and the number of third-party vendors working in those languages.
Both Tiobe and Lang Pop search the Web to get their results.
LangPop counts the number of people developing code in a particular language rather than lines of code, because languages like C have more lines of code than shell scripts.
One should take these figures with a grain of salt, however. Tiobe's methodology is faulty, if you ask Tim Bunce, who wrote and maintains the PERL DBI module, the standard database interface for PERL. Meanwhile, LangPop says its own methodology is not scientific.
The Power of Microsoft
Microsoft's programming languages are deeply entrenched in the enterprise.
"Yes, Java is the developers' tool of choice, and the majority of new programs are now written in Java, but there's a massive set of Microsoft Windows developers," Wayne Kernochan, president of analyst firm Infostructure Associates, told TechNewsWorld.
The power of the installed base of Microsoft developers can be seen in the March index of programming language popularity from Tiobe. C++ comes in third, PHP fourth, Visual Basic fifth, Python sixth and C# seventh.
Meanwhile, .Net is gaining ground on Java as Microsoft continues its drive to penetrate the higher levels of the enterprise. "In very large firms, it's not unusual to find both .Net and Java development shops side by side," IDC's Hilwa said.
Java and .Net are both frameworks with a set of libraries, routines, and runtime code that gets compiled, Hilwa said.
Java's Slow Slide Downward
Microsoft's strength in the enterprise may keep .Net around for a while, but Java's position may be challenged by its own complexity.
"Java and its variants like Perl, Ajax, Python and Ruby, which effectively generate Java code, are unnecessarily low-level languages," Infostructure Associates' Kernochan said. "Adopting Java was, until recently, a step back in programmer productivity." [*Editor's note]
That has led to programmers adopting drag-and-drop tools that hide Java's complexity and let developers do rapid prototyping, Kernochan added.
"Programmers want to write browser applications and Internet architecture applications, and for that, the .Net framework per se has not so much to offer," noted IDC's Hilwa. "Java is also being ... displaced slowly, because the browser side of things is becoming more popular and the browser is now becoming the application."
IBM, for example, has a project codenamed "Opus Una," which is built around the browser as an application platform.
The increasing need for simplicity and even faster application development to keep up with the move to Web 2.0 has led to the rise of dynamic languages such as Ruby, Groovy, Python and PHP.
These dynamic languages make programming more flexible and let developers abstract and write even higher-level code so that they do not have to worry about memory management and other low-level issues, Hilwa said.
However, dynamic languages are not a panacea. "They could create code that's difficult to read, that's not so structured and that's difficult to maintain," Hilwa said. "But they tend to be more productive, so you end up with a lot less code and write code more quickly."
PHP is the most widely used dynamic language because it is simple and can keep up with the demands of Web application development, Hilwa added.
Ruby is also widely used, especially on the Rails framework.
"My indications are that there is a significant trend towards Ruby on Rails from vanilla Java, Perl and SmallTalk, and, possibly from Python," Infostructure Associates' Kernochan said.
*ECT News Network editor's note: In email correspondence elaborating on his comments for this article, Wayne Kernochan told TechNewsWorld, "Ajax (although strictly speaking this isn't a programming language), Perl, Python and Ruby (the main names mentioned by Java developers) should be viewed as part of the overall Java movement -- that is, the code written is different but the code generated is effectively Java. They are in reaction to many of the obvious shortcomings of Java as a programming language, and so developers will move back and forth between these and 'vanilla' Java development tools as appropriate."