Control the Complexity

Opinion: Developers have access to more resources and information than ever; now the challenge is finding focus.

Now that youve got it, what are you going to do with it? Thats the question I find myself wanting to ask any number of groups of technology users and providers as our smoothly polished fantasies of the 80s and 90s turn into the roughly hewn realities of the 00s.

In application development, developers have finally gotten the richly connected access to all of an applications resources that toolmakers have long promised. During this year, Visual Studio, Eclipse and NetBeans have each been outstanding in various ways: Microsofts Visual Studio in its ease of customization and its built-in tailoring to the different task types of developers using different .Net languages, Eclipse in the breadth and discipline of its community-based improvement process, and NetBeans in its prompt access to the latest improvements in Java Enterprise Edition 5.

/zimages/5/28571.gifDevelopers will have to play by Windows Vistas rules. Click here to read more.

These tools and many others collectively proclaim the good news that weve gotten over the hump of transition from using objects as syntactic sugar (for example, in C++) to actually thinking and working in terms of objects—primarily in Java and C#, with use of Visual Basic apparently falling by one-third between spring and fall of 2006. Tools are consequently able to exploit deep-dyed object semantics to show developers what they have and how its all connected.

The bad news is that developers are being informed to death. Now that developers know whats available to them, its essential that tools help them focus on whats relevant to the task at hand—and also help them communicate with stakeholders who have neither the aptitude nor the desire to understand all the low-level details of implementing business processes as running code.

Tools must therefore continue to move upward and outward. By "upward," I mean using higher-level notations and views, such as the excellent BPEL (Business Process Execution Language) views in NetBeans and the Windows Workflow Foundation tools now coming forth from Microsoft to complement Visual Studio. By "outward," I mean getting away from overwhelming flat hierarchies, with huge numbers of object and interface definitions at any level, to much more task-oriented views—for example, those offered by the Mylar task-focused user interface project for Eclipse, whose 1.0 release became generally available on Dec. 11.

Other key goals for developers relate to business intelligence and concurrent computing. On the BI side, developers again have gotten what they always wanted and must now figure out what to do with it. They finally have the bandwidth and the always-on connectivity whose lack has previously made it difficult to keep users informed of rapidly changing business information, but those gifts came wrapped in the barbed-wire ribbons of device diversity.

Content must be delivered to devices that range from Wi-Fi laptops to small-screen smart phones, with bandwidth as well as on-screen real estate varying considerably. Developing and maintaining parallel code bases for delivery to different devices in different environments is absolutely the wrong response to that challenge. Whats needed instead is the kind of pragmatism demonstrated by Information Builders with its Dec. 7 update of its WebFocus Active Report technology to support any device that can run the Opera Mobile browser.

/zimages/5/28571.gifGuru Jakob Nielsen offers advice on designing applications for usability. Click here to watch the video.

During a recent conversation with me, Information Builders Director of Strategic Product Management Rado Kotorov said its unrealistic to expect that users will download special client software or to ask enterprise developers to write code for a particular device. Since users want access to standard Web content from every kind of device, the task of delivering that universal access is already top of stack for every browser provider. Enterprise developers should therefore simply take advantage of that behavior.

Finally, future performance improvements will be achieved much more by growing concurrency than by turning up CPU clock rates.

Developers are getting the benefit of improved abstraction from tools such as Intels Threading Building Blocks library, released at the end of August, but theyll do well to re-examine their application architectures with the search for concurrency opportunities (and evasion of parallel pitfalls) in mind.

Technology Editor Peter Coffee can be reached at

/zimages/5/28571.gifCheck out eWEEK.coms for the latest news, reviews and analysis in programming environments and developer tools.