Hacker News new | ask | show | jobs
by orbital-decay 1092 days ago
I am both a "customer" and a developer (and a manager making pipeline decisions in a creative company, in the past). The problem with reverse engineering is that it's a minefield for the business entity, from all viewpoints - competition, legal, tech. And it's never complete. Large reverse engineering attempts usually end up in a disaster for a business, and suggesting everybody following another company by reverse engineering is just not going to work. There's an objective reason for the poor compatibility with Adobe products, that's not an excuse.

As I said, you're not wrong - you'll just get stuck with exploitation by Adobe as a result, and the reason is not laziness or excuses by the developers of other software. RAW edits in the sidecars in particular simply can't be made compatible between different software, because everybody has their own magic and these files only keep the configuration data for it. The best you can count on is compatibility between the different versions of the same software, if the vendor provides it, and you will lose your edits when Adobe goes out of business or decides to cut some backward compatibility.

1 comments

> And it's never complete.

Nothing ever is. But it doesn't need to be.

> The problem with reverse engineering is that it's a minefield for the business entity, from all viewpoints

I don't buy this; RE is a gross exaggeration of what's actually going on. They don't even need to go through the trouble of reverse-engineering for the most common XMP file functionalities people actually want. The XMP file is just a list of operations. It's right there in XML, already human-readable in English. The cases most people care about are astonishingly simple. Like "+25 contrast", "+2 exposure", "-50 highlights". Surely the app can at least alter brightness and contrast... just read the darn file and apply the straightforward stuff as if the user applied them manually! And if users re-adjust the settings, just update these back in the file like Photoshop would. If they see a random transformation they can't replicate adequately, they can just warn the user. It's not even hard to handle the easy pieces, let alone requiring reverse engineering! You won't get a bit-for-bit pixel-perfect repro, but who cares? It's not like they have to change the heart of that one random user who used XMP files to transform their penguin into a gorilla that they hashed on the blockchain to get the 90%+ of the other holdouts to jump ship!

Yes, it is a list of operations but making your photos look like they came out of Adobe Camera RAW or Lightroom with the same edits is nearly impossible.

>The cases most people care about are astonishingly simple. Like "+25 contrast", "+2 exposure", "-50 highlights".

There's an entire iceberg under these words alone. What definition of exposure are they using? Which kind of math and curves to separate the highlights from other tonal zones? What's the color science behind their stuff? How do they approach things like perceptual uniformity? (ACR's colorspace axis are notoriously different from their typical definitions in color science). I'm not even starting on things that are always applied without you noticing, like the input curve or highlight recovery (which is surprisingly complex). It's also the thought process that needs to be reverse engineered, not the code itself. Without all that, you won't get nearly the same look, let alone identical.

Try diving into the source code of something like RawTherapee or darktable (coincidentally, the thought process behind the latter is thoroughly documented) to understand how complex this magic actually is. And then there's the question of patents, competition (you are always behind), and adversarial actions by Adobe. It's simply a non-starter for a business.

Believe me, I do understand reproducing the curves and all is complicated, but the point I'm trying to get across is that that's not the goal for most people. Most people literally couldn't look at a photo and tell you if the picture came out of Lightroom or something else. When they do +2 exposure and -50 highlights, they're not thinking "will my cousin be able to tell that this didn't come out of Lightroom". They're thinking "will my cousin be even able to see me in the shadow and see the clouds in the blue sky". Heck, if the difference ends up being so awful and noticeable that you can't stand it, you can at least tweak the settings from there. But at least the software tried to do some of the work for you to get you around the right ballpark! If nothing else, at least you can see which settings needed to be adjusted so you don't have to spend time rediscovering that part for every photo! You don't have to force every single user to start from scratch for every single picture.