I took a look at Adobe AIR after being impressed against my will using Twhirl. Not that I have anything against Adobe. I just think their flagship products are over-priced or out of the reach for hobbyists. That doesn’t mean that the company doesn’t have some serious talent. It got me thinking about the big app/big company paradox.
It seems the bigger an organization gets and the larger the code base of a given product gets, the more skilled the developers get while inversely losing the freedom to realize their full potential. As long as they continue developing existing products that may span decades and millions of lines of code, the less developers are able to apply all the things they’ve learned to really improve their products. Instead, they use their creativity and mental resources to navigate tangled code and devise workarounds.
The Cocoa Rewrite
The big deal is CS5, the next-next version of Photoshop. The only supported 64-bit APIs on Mac OS X are Cocoa, and Adobe wants Photoshop to run in 64-bit mode on the Mac, so they’re rewriting the app in Cocoa. That’s huge. Nack writes:
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.
I don’t think that’s an exaggeration. I don’t think Adobe can flat-out promise that CS5 is going to be Cocoa (or 64-bit) because they don’t know how long it’s going to take. The cross-platform angle is also interesting. Microsoft, for example, develops the Mac versions of its Office apps from an entirely separate application code base than the Windows ones. They ship on different schedules, have entirely separate engineering teams, and have very different UIs. Adobe, on the other hand, develops its Creative Suite apps from a shared code base. New versions ship simultaneously for both Mac and Windows, and they have very similar, if not nearly identical, UIs (for better or for worse).
I think this is why Adobe is releasing some really brilliant new products while stumbling around a bit with their breadwinners. I think this is also why you see so many developers leave large established tech firms to create some brilliant startups. One day, the founder is just another unremarkable employee, the next moment unleashed from all constraints.
If Adobe, Microsoft or any other large software house released their developers from existing projects and told them to build something great out of the remains, they could probably create a couple new products that’ll change the game.