In addition to an applications size and its development environment, other factors can also present a challenge when trying to create a UB version. Steve Gully, president of Atimi Software, described a few of them. His Vancouver, British Columbia, company contracts cross-platform development. "If a product was built in Cocoa on Xcode, its relatively trivial" to make a UB version, he said. "A lot of the work comes in moving the application from CodeWarrior or PowerPlant to Xcode." Even if that is the case, he said, a developer may not choose just to generate a UB version and ship it out the door.Other potential challenges arise, Gully said, from the architectural differences between PowerPC and Intel processors. For example, Gully said, the PowerPC chips in Macs have AltiVec (also called Velocity Engine). This consists of an instruction set and registers on the PowerPC G4 and G5 chips; though Intel has a similar SSE instruction set, the two are not directly compatible. Apple still falls short wooing a reluctant enterprise market. Click here to read more. "The AltiVec code will port, and Apple has done a really good job," Gully said, "but there may be speed improvements possible." He gave the example of a CAD application, where a screen redraw may refresh in a second and a half without the developer taking the time to optimize the code, versus a refresh in a second with optimizing. "For the applications where speed is a big deal, we do optimize," Gully said. "The solutions that Apple has provided do help," he said, "but optimizing takes more time." A bigger challenge, Gully said, is when the original developers use assembly code. This is used for applications that demand every speed benefit, such as games or professional graphics applications, such as Photoshop plug-ins. This code needs to be either abstracted and then ported, or translated directly. "This is exactly the kind of programming that just plain hurts peoples brains," said Brent Simmons, creator of Ranchero Softwares NetNewsWire. Simmons noted that such problems include endian issuesaccounting for the reverse way Intel and PowerPC chips store certain datawhich are manifold. "Take something like Microsoft Entourage, which stores e-mail in a database," he said. "If the database code doesnt take into account [endian issues], that could cause database corruption as bits are written to the wrong place." Adobes Photoshop could also have these issues, Simmons said. The application stores images as big sets of numbers, and then applies operations to those numbers. "The Photoshop folks have to go through and make sure theyve accounted for [endian issues] in every single place," he said. "Thats a big job," Simmons said. And this is the job facing all Mac developers as Apple moves toward an all-Intel product lineup. According to Gully, its not work that Mac developers are scoffing. "We are doing UB porting work for multiple clients." he said, "and work is picking up." Check out eWEEK.coms for the latest news, reviews and analysis on Apple in the enterprise.
"In general, a pure UB port is rare," Gully said. He noted that many of his companys clients see the move as an opportunity to fix bugs and add features. "With many of these applications, some of the code hasnt been touched in years," Gully said, "so the transition to UB can act as a catalyst."