Web applications rule the enterprise. That's the indisputable conclusion to be drawn from this year's InfoWorld Programming Survey. Despite imperitives from Microsoft Corp. and others that developers abandon server-based HTML apps for fat desktop clients, the ease of "zero deployment" through the browser continues to win the day.
To build those Web apps, significant numbers of programmers favor such humble scripting languages as VBScript and Perl. Contrary to the hype that says Microsoft .Net and the Java elite have a lock on the programming world, many developers have settled on cheaper (and often faster) ways to build the Web applications they need to build.
Responses gathered in August come from a group of 804 programmers and their managers. Our survey mirrors trends identified by such research companies as IDC, Gartner, and Forrester: Slightly over half of those who responded say that they or their employees use Visual Basic, with Java doing a bit better at 57 percent. And even though no major software company promotes C or C++ anymore, plain old C garners 37.5 percent and C++ still came close to matching Visual Basic's numbers (see details of survey results).
Our respondents aren't afraid of new technology, either. A robust 51 percent say that Web services are part of their server development and 52 percent are employing XML or object-oriented databases. At a solid 40 percent, the uptake on .Net should warm Microsoft's heart, considering that the .Net Framework officially launched only 18 months ago. Adoption of Microsoft's Java-like C# was somewhat less impressive at 22 percent, though still respectable for a new programming language.
But if there's a central theme to our survey report, it's that Web applications have become the industry standard. An overwhelming 80 percent of respondents say such apps are part of their server development, with 53 percent saying they prefer to give their applications a Web-style user interface (as opposed to 33 percent who prefer fat-client GUIs). The lasting effects of the Internet boom can be debated ad nauseum, but there's little question of its impact on enterprise development.
The Right Tools for the Job
Applications can be loosely divided between those that are mission critical and those that aren't. Mission-critical enterprise applications, which typically take months or years to complete, require full IT control to ensure transactional integrity and scalability and often involve the development of industrial-strength EJB components. Developers with the skills to build these systems are an elite group. Whether the user interface to access such applications is an HTML page or a fat-client GUI is almost irrelevant, since the bulk of the development involves building complex business logic and security on the server side.
Some IT shops insist on applying the same tools, languages, and methodology that govern mission-critical applications to departmental apps whose main intent is to boost productivity and answer immediate business needs. But as our survey indicates, others are willing to relinquish some control and allow tools and approaches more appropriate for the job. Developers from a variety of skill levels gave a clear endorsement to such languages as Perl, Python, and VB Script, with 82 percent deeming them acceptable for user-facing Web applications. And a whopping 95 percent thinks they are acceptable for automating application build and test procedures.
While some who use scripting languages are amateur programmers, others are pros with sound arguments for avoiding Java and Microsoft solutions. Katie Barnes, an experienced independent developer in Oakland, Calif., extols the virtues of the open source scripting language PHP (for "PHP: Hypertext Processor," jokingly referred to as a "recursive acronym" by fans). "If you want to get interactive Web pages up and running fast," Barnes says, "you want to do it with PHP."
Speed refers not only to development time, Barnes says, but also to performance, because PHP apps are so lightweight in comparison to lumbering EJB or .Net apps. She also rolls her eyes at the high licensing and maintenance costs of such application server offerings as BEA Systems Inc.'s WebLogic. Mission-critical apps may demand such an investment, but the vast majority of Web applications can be built with far less hassle and expense, Barnes says.
"A scripting language generating dynamic Web pages is actually so much faster to develop in," agrees Ted Shelton, vice president of business development at Borland Software Corp., which produces a range of tools for .Net, Java, and Delphi (Borland's own programming language). "There's literally no comparison."
For departmental or small business applications, Shelton says, scripting provides a way for users to get the applications they need without jumping through IT's hoops. "Users are revolting and saying: 'God damn it, I can go create my scheduling app myself if I have to, if you're not going to give it to me.'"
The counterargument is that such ad-hoc adventures in programming can cause headaches later on. One San Francisco consultant who represents the IT view (but prefers to remain anonymous) puts it this way: "People build applications using scripting tools because the tools are so easy to get going and because they deliver functionality to business users so fast. The downside is that they do not require the process and discipline of the more robust applications, so maintenance tends to be very difficult if not impossible."
Giving Code a Second Life
The war between guerilla and IT-sanctioned technology has persisted since the first PC slipped in the back door of a big corporation. But there's one thing nearly everyone can agree on: Nobody wants to write it twice if they don't have to. In our survey, when asked what the biggest obstacle to reusing software is, only 10 percent say programmer disinclination. The top obstacles are lack of awareness of software available for reuse and the level of effort required to design software for reuse (see details of survey results).
Satisfaction with current reusage levels is almost evenly divided: 44 percent of respondents say they are satisfied and 41 percent say they aren't. But exactly what kind of reusability are they talking about? Interestingly, 69 percent say "shared libraries" (.dll, .so, Java classes, and .Net libraries) have high reusability benefit, whereas only 42 percent say "components" (COM objects, JavaBeans, and so on), this despite the fact that virtually all software companies now tout component-based development as the Holy Grail of reusability.
Reusability is not a concept normally associated with scripting languages, but 21 percent believe dynamic language (for example, Python, Perl, and so on) modules have high reusability benefit, with 46 percent saying they have some benefit. Those in the know aren't surprised by the relatively strong response. According to Barnes, one of the key benefits of PHP is "lots of existing source code" posted on the Internet -- so you can download, say, code for a shopping cart license free and pop it into your e-commerce application.
What Developers Really Want
No matter what languages or tools they use, developers of all stripes are feeling the heat from the business side to respond quickly to business needs. At the high end of application development, Web services and the movement toward SOA (service-oriented architecture) promise to deliver application components that can be recombined ad infinitum with minimal development time. But analysts agree that enterprise adoption of SOA will take many years. Meanwhile, programmers are finding their own way, often using simple scripting tools, to develop the Web applications they need fast.
Such development efforts may not always follow the rules. But as Borland's Shelton says, simply getting the job done using rapid development tools -- sometimes over the objections of IT -- can be viewed as a healthy trend. "It creates a competitive pressure in the IT environment," he says. "It forces IT to remember that it's in the customer service business."