Why Software Development Is Lagging Hardware

Why Software Development Is Lagging Hardware

Your new computer has a 64-bit processor, but your software probably is still 32-bit. Why haven't software developers done more about it?

Why are you using 32-bit software on your 64-bit computer? If you just bought a top-of-the-line Sony BRAVIA 52" 1080p 120Hz Flat-Panel LCD HDTV for $2,500, would you use a rabbit-ears antenna for your TV signal? I don't think so!

Even though 64-bit software for UNIX goes back decades, mass availability and adoption of 64-bit operating systems and applications been slow. In theory, if you run 64-bit software on a 64-bit CPU-powered PC, you should get better performance. In practice, it's not so clear cut. A 64-bit program that's not optimized for a 64-bit processor can actually run worse than its 32-bit twin working on either 32- or 64-bit Windows Vista.

To make use of 64-bit's performance and features, both the operating system and application must be optimized for the new processor. However, many developers see 32-bit software as being "good enough." They rely on the processor's improved speed to disguise the 32-bit code's inherent inefficiency on a 64-bit processor. That inefficiency may not be trivial, since every call to 32-bit code must be translated to 64-bit code before it can run. For example, on Windows Vista 64-bit, 32-bit applications must be " thunked" via the WoW64 (Windows on Windows) subsystem to run. Similar methods are used in other operating systems.

By avoiding this translation process, any well-written and optimized 64-bit program should run faster. In addition, any application that requires access to huge amounts of memory, such as a database or simulation, should run more efficiently in 64-bit environments.

Of course, developers may encounter roadblocks before they even need to worry about optimizing their own code for 64-bit architectures. Jerry Young, a .NET Developer at American Processing says, "There are some people stuck in 32-bit land." For example, says Young, Microsoft's IIS (Internet Information Server) Web server can have issues with Windows Server 2003 because IIS doesn't support mixed modes. "Specifically, I had a C# application installed on a 64-bit Windows 2003 installation and IIS was set up to run in 64-bit. The problem was: I had a legacy 32-bit C++ DLL, and it wouldn't work," he explains.

But integration issues aren't the only reasons why some developers aren't migrating their applications to 64-bit.

Karl Ginter, CEO at Cognition IP Solutions, observes that some developers don't care because their language or development environment (such as Java, Flash or Perl) deals with all the underlying issues (or fails to). Ginter says, "64-bit doesn't appear to help that much in these cases. [The code] runs a bit faster, but most machines aren't even close to CPU-bound." Ginter adds, "[That's] why virtualization has taken off."

Join the CIO Australia group on LinkedIn. The group is open to CIOs, IT Directors, COOs, CTOs and senior IT managers.

Join the newsletter!

Error: Please check your email address.

Tags software development

Show Comments