April 02, 2008
Photoshop, Lightroom, and Adobe’s 64-bit roadmap
As you’ve probably seen, among the great features in the Lightroom 2.0 beta is its ability to run 64-bit-native on Mac (Intel, 10.5.x) and Windows (Vista 64). If you think it feels great to beat Aperture to the punch here, you’re right. :-)
What does 64-bit computing mean, practically speaking? In a nutshell, it lets an application address very large amounts of memory–specifically, more than 4 gigabytes. This is great for pro photographers with large collections of high-res images: Lightroom being able to address more RAM means less time swapping images into and out of memory
during image processing-intensive operations.
It’s also important to say what 64-bit doesn’t mean. It doesn’t make applications somehow run twice as fast. As Photoshop architect Scott Byer writes, “64-bit applications don’t magically get faster access to memory, or any of the other key things that would help most applications perform better.” In our testing, when an app isn’t using a large data set (one that would otherwise require memory swapping), the speedup due to running in 64-bit mode is around 8-12%.
Therefore 64-bit is a good thing for Lightroom now, and as the amount of data photographers handle inexorably grows, it’ll become a bigger win.
The Lightroom news naturally raises the question: What’s Adobe doing with Photoshop? In the interest of giving customers guidance as early as possible, we have some news to share on this point: in addition to offering 32-bit-native versions for Mac OS X and 32-bit Windows, just as we do today, we plan to ship the next version of Photoshop as 64-bit-native for Windows 64-bit OSes only.
The development is frankly bittersweet for us: On the one hand we’re delighted to be breaking new ground with Photoshop, and when processing very large files on a suitably equipped machine, Photoshop x64 realizes some big performance gains. (For example, opening a 3.75 gigapixel image on a 4-core machine with 32GB RAM is about 10x faster.) On the other hand, we work very hard at maintaining parity across platforms, and it’s a drag that the Mac x64 revision will take longer to deliver. We will get there, but not in CS4. (Our goal is to ship a 64-bit Mac version with Photoshop CS5, but we’ll be better able to assess that goal as we get farther along in the development process.)
I imagine some Mac users are starting to flip out (breathe, guys, stick with me!), so let me explain how we got here & nip a few concerns in the bud.
As we wrapped up Photoshop CS3, our plan was to ship 64-bit versions of the next version of Photoshop for both Mac and Windows. On the Mac Photoshop (like the rest of the Creative Suite, not to mention applications like Apple’s Final Cut Pro and iTunes) relies on Apple’s Carbon technology. Apple’s OS team was busy enabling a 64-bit version of Carbon, a prerequisite for letting Carbon-based apps run 64-bit-native.
At the WWDC show last June, however, Adobe & other developers learned that Apple had decided to stop their Carbon 64 efforts. This means that 64-bit Mac apps need to be written to use Cocoa (as Lightroom is) instead of Carbon. This means that we’ll need to rewrite large
parts of Photoshop and its plug-ins (potentially affecting over a million
lines of code) to move it from Carbon to Cocoa.
Now let me be very clear about something: It’s entirely Apple’s call about what’s best for the Mac OS and how to spend their engineering cycles. Like any development team, they have finite resources & need to spend them judiciously. They’ve decided that Carbon 64 doesn’t belong on their roadmap, and we respect their decision. It’s up to Adobe to adapt to the new plan.
As soon as we got the news in June, we began adjusting our product development plans. No one has ever ported an application the size of Photoshop from Carbon to Cocoa (as I mentioned earlier, after 9 years as an Apple product Final Cut Pro remains Carbon-based), so we’re dealing with unknown territory. We began training our engineers to rewrite code in Objective C (instead of C++), and they began prototyping select areas to get a better view of the overall effort.
In short, Adobe has been taking prompt, pragmatic steps to enable 64-bit Photoshop as quickly as possible on both Mac and Windows. It’s a great feature, not a magic bullet, and we’re delivering the functionality as quickly as each platform permits.
Now, as I mentioned, I want to nip some concerns in the bud. You might think I’m a little paranoid, but I’ve been a passionate Mac user for more than 20 years, and I’ve seen more than a few controversies come and go. If any of the following come to pass, it’ll really be annoying:
1) Writers gin up controversy about Apple vs. Adobe, portraying this as a case of some tit-for-tat (“This one time, Steve wouldn’t play golf with Shantanu, so Adobe is sulking!”). Oh, come on. This is why Lightroom x64 is a such a nice counterpoint: Adobe’s decisions are pragmatic, not ideological. Look, Apple and Adobe share the goal of maximizing Photoshop performance on Mac hardware, and we’re working together on all aspects of that story–64-bit included.
“If it bleeds, it leads,” however, and writers looking to drive ad impressions will try to fabricate a grudge match. Please don’t let them.
2) Adobe gets castigated for “dragging its feet” on Cocoa/x64. This charge will be inevitable, I suppose, but I want you to know that we started work on the problem immediately after WWDC ’07. We started peeling senior engineers off the CS4 effort, and we’ll keep pouring on the muscle in the next cycle. This work comes at the expense of other priorities, but so be it.
3) We start hearing all about “Cocoa Über Alles”–about how Adobe should have known that Cocoa is the One True Way™ and should have started the move years ago. Most Mac users don’t know Cocoa from Ovaltine, and nor should they: it’s just an implementation detail, not a measure of quality. I think Brent Simmons, creator of wonderful Cocoa apps like NetNewsWire, put it most elegantly: “Finder + Cocoa = Finder.” That is, rewriting one’s app in Cocoa doesn’t somehow automatically improve its speed, usability, or feature set.
I’ll also note that Apple’s Carbon Web site says, “Carbon is a set of APIs for developing full-featured, high-performance, and reliable applications for Mac OS X… The Carbon APIs are also well-suited to cross-platform development.” I don’t mention it to detract from Cocoa; I mention it to point out that each approach has its pros and cons, and in hopes that we don’t hear all about how Cocoa is clearly the only way to write “real” Mac software.
So, the summary is this: 64-bit computing is an important part of the Photoshop and Lightroom story going forward, but it’s not a magic bullet and we’re not going to oversell it as one. We’re delighted to be offering a 64-bit-native Lightroom on both Mac and Windows now, and to deliver a 64-bit-native Photoshop on Windows as part of the next release. As for Mac x64, we’ll continue working closely with Apple (just as we’ve been doing) to make the transition as quickly and efficiently as possible.
PS: I know
that users of other Adobe applications will want info on those apps’ plans for 64-bit transition, and we’ll work on sharing more info. Broadly speaking, we’ll be applying similar criteria to what we followed in our digital imaging products to determine our 64-bit roadmap for the rest of Adobe’s applications. We’ll be prioritizing our 64-bit work based on the potential user benefits and the complexity of the code transition.
If you’re a plug-in developer, you’ll want to start reworking your code to run 64-bit native. Note that there’s an upcoming Creative Suite Developer Summit, and contact Bryan O’Neil Hughes if you need documentation on making the transition with Photoshop plug-ins.
[Update: The official FAQ on this subject is live on Adobe.com.]