I think Adobe made that on purpose to some extent. The less other programs are able to handle a full-featured psd, the more consumers will likely buy the full version of photoshop (ok, some might be getting it through other sources, but at least most businesses would choose the real Photoshop over other programs). Consider Open Office: As it handles only 99% of doc-files correctly, I found myself quickly buying the f…
"PSD is not my favorite file format"
11–20 of 34 posts
Re: "PSD is not my favorite file format"
#12However, one thing which is good about PSD is that they've put a lot of attention into making it very backwards compatible, to the extent of including the same data twice and useful bitmap renderings. This is very handy, because you don't have to support _everything_ to get an accurate import.
Re: "PSD is not my favorite file format"
#13This somehow reminds me of a joke called BOOL TrackPopupMenu(...); in Windows that as per documentation returns an integer.
BOOL GetMessage(LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax);
returns:> If the function retrieves a message other than WM_QUIT, the return value is nonzero.
> If the function retrieves the WM_QUIT message, the return value is zero.
> If there is an error, the return value is -1. For example, the function fails if hWnd is an invalid window handle or lpMsg is an invalid pointer. To get extended error information, call GetLastError.
Re: "PSD is not my favorite file format"
#14TIFF was designed to be extensible with custom data chunks and it predates PSD, so it probably would have been the best choice all along. I'd guess Adobe decided against it for "NIH" reasons: TIFF was originally created by Aldus, a competitor in the desktop publishing market... But Adobe ended up acquiring Aldus in the mid-'90s so that reason vanished, leaving PSD and the billions of images saved in that format as a depressing monument of obsolete corporate politics. (Of course the harm done is very limited, since those affected by PSD's problems are just developers -- users don't care as long as their files are saved and opened reliably and quickly.)
Re: "PSD is not my favorite file format"
#15Sounds to me like the product of many years of evolution with many developers working on it, and all that at a large company. Working at a large company myself, I see how these messed up pieces of code / specifications come into being every day.
Exactly. What version of Photoshop dear HN reader was your first? Think about all the features that have been added since then and how hard it must be to maintain even a modicum of backwards compatibility.
I've seen this behavior in the file format of an extremely popular application. IIRC, in one section, there were magic bytes that told you the alignment of other blocks that told you how to look up the version of the algorithms that you were supposed to use to unpack the binary data blobs that held resource data. By jiggling around the various forms of indirection, it was possible to make the file formats nigh indecipherable from version to version, while still maintaining backwards compatibility.
Naturally, the parsing code was a total nightmare.
Re: "PSD is not my favorite file format"
#16Working in an environment where many people (often including the target of the rant) will see my code I find myself having to go through it before check-in to source control and remove many of these rants. Oh to be in a position where only I and my closest allies will see my frustrations!
Re: "PSD is not my favorite file format"
#17This somehow reminds me of a joke called BOOL TrackPopupMenu(...); in Windows that as per documentation returns an integer.
Win32 is full of such inconsistencies, for example: BOOL GetMessage(LPMSG lpMsg, HWND hWnd, UINT wMsgFilterMin, UINT wMsgFilterMax); returns: > If the function retrieves a message other than WM_QUIT, the return value is nonzero. > If the function retrieves the WM_QUIT message, the return value is zero. > If there is an error, the return value is -1. For example, the function fails if hWnd is an invalid window handle…
In the book Showstopper!, which documents the creation of Windows NT (a rather fascinating read), there's a revealing passage about how Microsoft got this Windows backwards compatibility religion. Windows had been intended to be a transitional DOS-based system on the way to OS/2, but then Windows 3.0 became an enormous success almost overnight, and Microsoft decided to break up with IBM over OS/2 development.
NT had been intended to have "multiple personalities" in the form of multiple user-level APIs, with OS/2 as the primary one. The breakup had left them without a 32-bit API. With the success of Windows 3 depending to such a large degree on backwards compatibility with DOS, it made sense that the new API should match the existing Windows API as closely as possible. Besides, there was no time to spend on redesigning anything -- they couldn't afford to let IBM's 32-bit OS/2 to steal the market before NT.
To ensure that the new "Win32" matched the old "Win16" as closely as possible, it's mentioned in the book that any API changes had to be presented for approval by Ballmer himself...! Perhaps the group in charge of the GetMessage() function figured that they could manage just fine with the existing BOOL return type (which is just a typedef for int), rather than risk Ballmer's wrath over the cosmetic API change.
Re: "PSD is not my favorite file format"
#18Re: "PSD is not my favorite file format"
#19// No, PSD is an abysmal format. Having worked on this code for several weeks now, my hate for PSD has grown to a raging fire that burns with the fierce passion of a million suns. // Trying to get data out of a PSD file is like trying to find something in the attic of your eccentric old uncle who died in a freak freshwater shark attack on his 58th birthday... I am spending a lot of time imagining amusing fates for th…
Re: "PSD is not my favorite file format"
#20IIRC, Photoshop has defaulted to saving as TIFF since version 7.0 (introduced over seven years ago). I guess they realized long ago that PSD had become an unmaintainable mess. TIFF was designed to be extensible with custom data chunks and it predates PSD, so it probably would have been the best choice all along. I'd guess Adobe decided against it for "NIH" reasons: TIFF was originally created by Aldus, a competitor i…
Is it using tiff internal and still using the PSD extension?