As the Software World Turns, Part 2: Tools and Technology
New pressures have forced application developers to constantly be on the lookout for ways they can deliver applications faster, leading to new methods of development. The pressure to produce quickly and under budget has also led to a fundamental shift in power -- software developers are bringing new technologies to enterprise applications, and inexpensive or free open source tools are at the front line.
There are two main camps of software developers that dominate the world today: those that work primarily in a Microsoft .Net framework and those that work primarily in a J2EE (aka "Java EE") framework.
However, even this one-two punch of heavy-hitting frameworks comes with a caveat:
"One of the things that has become more important is an individual's ability to work in multiple languages or development environments," Jeffrey Hammond, an application development analyst for Forrester Research, told TechNewsWorld.
In Part 1 of this two-part series, we looked at the changing role of the software developer in the workplace. Part 2 looks at the changing tools at their disposal.
Erik Miller, a programmer for Intermountain Gas, primarily works with .Net, but he's also had to learn some Java, Oracle applications, Microsoft Office SharePoint Server (MOSS), and SQL, as well as the Compact Framework for handheld device development -- all just to complete various applications.
"Sometimes when a project comes up, you'll run into guys who say, 'No, I'm the .Net,' or 'I'm the SQL guy and I don't work with anything else,'" he said. "And I try to say, 'Sure, I don't know it now, but I can learn it. I can figure it out.' I think the developers who are willing to put themselves in constant states of learning will always be valuable to the businesses they work for."
RIAs Bring More Tools
"In terms of hot technologies, Ajax is the hottest. That's something you can use in all J2EE, .Net, Ruby, Python -- it covers all of them, so that's a very hot area," Jason Brooks, a software engineer for Blackfin, told TechNewsWorld. "A lot of software development is Web-based now instead of operating system-based, and Ajax really helps with that."
There are other languages, of course, that are used all over the world and represent millions of lines of legacy code, like COBOL, running on massive servers or mainframes, but few professional software developers would say they're "hot." IBM's Lotus Notes on Domino, for instance, which is widely used in enterprises for e-mail and collaborative applications, is becoming increasingly aligned with Java and the latest version is based on the Eclipse framework. Eclipse is also a Java-based integrated development environment (IDE) that's capable of integrating with proprietary plug-ins that extend its basic toolset.
There is a sizable C and C++ crowd of developers that is quietly ignored, perhaps because C and C++ are often used in developing underlying system software for servers and devices. While you can do just about anything with C, it just doesn't get the mind share of some of the newer tools being used these days.
Pressure Is the Common Denominator
Large organizations tend to be skewed more heavily toward Java and J2EE frameworks, which also tend to use large and robust application servers like Oracle Application Server 10g, SAP NetWeaver Application Server, Sun JavaSystem Application Server, BEA Systems WebLogic, and IBM WebSphere Application Server. Many of these organizations use open source NetBeans or Eclipse-based IDEs, most of which have proprietary third-party development extensions built into them for specific tasks.
Even though large organizations also use .Net, the presence of Microsoft's .Net framework is more widely used in smaller organizations than J2EE.
"Today's IT organizations are essentially walking a tightrope -- they're trying to balance the need for delivering quality applications against what's often a reduced or accelerated time frame," David A. Kelly, president of Upside Research, told TechNewsWorld. "Most IT organizations do not have the luxury of having extended development periods for new or modified applications. The business typically needs IT or application support for new initiatives in a fixed time frame -- or in many cases, they want it yesterday."
In addition, there's real pressure coming from IT budget constraints, Kelly noted.
The new pressures have forced application developers to constantly be on the lookout for ways they can deliver applications faster, leading to new methods of development -- for instance, the Agile methodology. Agile works on the idea of pushing out incremental changes to users quickly, letting organizations fix, change or fine-tune applications during the overall development phase.
Shift in Power
The pressure to produce quickly and under budget has also led to a fundamental shift in power -- software developers are bringing new technologies to enterprise applications, and inexpensive or free open source tools are at the front line.
"Now we have very capable IDEs in the open source world like Eclipse and NetBeans that are essentially free, and it's not so much the free part that remakes the way developers do things as it is the ability to get updates whenever they want," Hammond explained.
"They can mix and match emerging capabilities to see if it helps them get their job done," he said. "It has altered the power structure when it comes to technology selection -- developers have a much larger say in the types of technologies that at least get prototyped and potentially introduced into the organization because of open source."
Breaking Through Boundaries
There are two new kinds of developers gaining prominence, and it's due to a combination in the rise of service-oriented architecture (SOA) and the desire to deliver RIAs: the Web service creation crowd and the RIA development crowd.
"The first is trying to create these services, and they are working on the server, doing a lot of integration, and they get to the point where they export WSDL (Web services description language) files," Hammond explained. "The other is on the client side. They are working with Adobe Flex and Flash, with Ajax, and they may also be working with the Microsoft Silverlight technologies. Those guys are working much more closely with designers and Web shops.
"To some extent, I see those divisions, the service creation and interface creation crowd, changing the traditional divisions we had between the .Net crowd and the J2EE crowd," he said. "Because once you wrap that .Net or J2EE service in a WSDL file, to the RIA or UI crowd, it all looks the same."