Hacker News new | ask | show | jobs
by jacobolus 4185 days ago
The rant in the Xee source is IMO ignorant and not very useful. The Photoshop format has some warts, but for what it is, it’s documented well enough (better than many similar app-specific serialization formats), and most of the complexity is necessary to deal with various Photoshop features.

The origin of PSD’s complexity is the low-level organization of Photoshop’s abstractions, which dates from the late 1980s and has become more and more unwieldy as Photoshop has gradually accreted features over its 25-year history.

Complaints about PSD in this style basically amount to complaints that Adobe hasn’t ever tossed out backwards compatibility and done a rewrite from scratch on a cleaner set of abstractions. But there are obvious business reasons for them not to do that.

I’ve had some experience parsing and working with the data inside the PSD format, and honestly, it’s not nearly so bad as this rant makes it sound. (Disclaimer: that’s coming from a baseline of 15 years of heavy experience as a Photoshop user.)

1 comments

As a heavy Photoshop user you should know that the Photoshop format has seen several backwards incompatible upgrades over the years. And Adobe probably had good business reasons for doing that. Since they were doing that anyway, they might as well have improved the format in the process, I have no idea why they did not do that.
Old PSD files open with all later versions of Photoshop in every example I’ve seen. Newer PSD files include features that aren’t available in old versions of Photoshop, so for obvious reasons those newer files aren’t completely compatible with old Photoshop versions.

But overall, I think you’re misunderstanding what I’m saying. In order to fundamentally change what needs to be stored in a PSD file – which is basically a serialization of the Photoshop document that lives in memory while you work with Photoshop – you would need to fundamentally re-think the very low level abstractions that Photoshop is built in, which would mean completely changing the Photoshop user interface and every level of the technical stack, basically rewrite it all from scratch.

Given the features Photoshop supports, and the way they are built, the technical details of the PSD format are actually pretty straightforward and reasonable. If you spent a few months learning how all the Photoshop features interact and getting a loose sense of how they’re implemented, and then you read the spec for the PSD format, I suspect that you would find the file format to mostly make good sense.

The reason that PSD is complex and hard to implement for third parties (especially for someone not intimately familiar with Photoshop’s UI or structure) is that Photoshop is a very complex piece of software with many moving parts, worked on by hundreds of people over 25 years, not that Adobe’s engineers are incompetent or made the format needlessly arcane just to be jerks.