All articles

Is Proprietary Software Over?

HugoHugo
··16 min read
Also available in:français

A few days ago, I came across this post:

Someone, Brandon Thomas, allegedly decompiled the entire Adobe suite, Photoshop, Premiere, Illustrator, Lightroom etc... In total, 7 software programs. All rewritten in Rust with AI, and published as open source.

Oh yes, and he did it again a few days later for the Office suite, same thing everything is open source and rewritten in Rust.

Did Brandon just sign the beginning of a movement that prefigures the end of software? Or is it the nth false start of fire from a SaaS Apocalypse that is slow to come?

Artcraft

I imagine you've already seen this story. It's not breaking news. Me, there are two questions that interest me: "How did he do it?" and "Is it legal?".

Let's look at that.

First, what is ArtCraft? It's a software suite for photo editing and video editing, among other things. Each software you can see on this page corresponds to a software at Adobe.

All have been rewritten in Rust. And each app can be controlled by an AI agent, via a command line or an MCP server.

But apparently, contrary to what the post we saw said, Brandon did not decompile Adobe. At least, I found no source that would allow me to affirm it.

Brandon talks about implementing in "clean room". And if you're not familiar with that term, basically it's mostly reverse engineering. In principle in a clean room implementation, there is a team that observes what the software does, reads the documentation, takes screenshots, and then provides all of that to another independent team that is responsible for implementing it but without having details about the original software. The concept of clean room is a metaphor for clean rooms where one tries to create a sterile, uncontaminated environment. Here, it's about being uncontaminated by the original software and its copyright.

In short, it's copying, yes. But copying by observation.

And it's not new at all.

In 2003, I was playing Lineage. I imagine you don't necessarily know Lineage. It was a popular MMORPG but which mainly took off in Korea. There was no server in Europe and I couldn't tell you why. But I played it. But not on the official server.

I typically played this kind of character:)
I typically played this kind of character:)

There was a small team that had set up the game, listened to all the network packets that were passing between their PC and the official servers and then mapped each network packet to a function in the game. A movement, a spell, triggering a dialogue, adding an item to inventory. Packet by packet. And then they wrote a server in Java that could talk to the game.

Which made possible... lots of things, like playing a custom version of the game, with different settings, new quests but also, of course, being able to play the game without going through the official server. And me in 2003 I was on the edge of depression in, no doubt, the worst job of my career in which I was sweating like never before, except maybe watching the Tour de France. So I joined a small team that managed a fork of L2jfree for a French server.

By saying that, I'm absolving myself a bit huh, I wasn't in the main team. It was just one of the multiple forks that were floating around the Internet.

Anyway. Reverse engineering has existed forever.

And to see things clearly, you need to distinguish three things that we tend to mix up.

One, decompilation. You start with the compiled program, and you reconstruct the source code with the objective that this source code can then be recompiled to give exactly the same binary byte-for-byte. In recent examples, there was Maurice Heumann who reconstructed Modern Warfare 2 with a swarm of AI agents, over about three months. So far he has managed to reproduce 99% of the game's functions reconstructed, and 83% identical byte-for-byte. So we can wonder what that's useful for? Well among possible uses, there is the second case: porting.

For porting, the objective is to make software run somewhere other than its original platform. The most well-known example is Doom whose source code is now public and which has been ported to pretty much every platform, so much so that it has become a meme. We find Doom on browsers, on smartwatches and even on pharmacy signs. Recently Kotaku talked about hundreds of ports in the browser, appearing in a few weeks. Halo, GTA Vice City, The Simpsons Hit and Run.

And finally there is, reimplementation. It's the example of ArtCraft. The code is not read but everything is observed to remake it identically. It's a copycat.

Note that from reports, ArtCraft is not quite there yet in terms of quality. But you have to understand that the first version is "just" 2 weeks old, already 190 contributors on github, and releases a version almost every day, so if these people stay motivated, which is not guaranteed, then maybe this software could become a real must-have.

Obviously unless Adobe sues them.

And indeed, is all this legal?

The short answer: it's complicated.

Okay, so that's not an answer.

There is a key precedent in Europe. In 2012, the Court of Justice of the European Union in the SAS Institute v. World Programming case.

World Programming had recreated SAS software, without the source code, from the manuals and by observing how the software worked. And for the courts, the features of a software, its language and its file formats are not protected by copyright.

And I want to say, that's kind of common sense. I can't imagine that we'd protect a concept, like photo editing, a window layout, or a set of features.

So making a photo editor that opens PSD files is not a problem. There are plenty of photo editors, and everyone lives very well.

On the other hand, there are two grey areas.

The first is appearance. When the interface is an almost copy-paste of Photoshop, we enter the territory of copyright on the interface, or even trademark law. Obviously I'm not talking to you about the logo, that's obvious.

The second is parasitism. In French law, it's when a company profits from the image or reputation of another to cause harmful competition.

You will note that on the ArtCraft page, Adobe is never mentioned. And that's no accident, because by using Adobe's image to harm them or steal their customers, that would be parasitism.

I have a little anecdote on this subject. When Malt was still called Hopwork, in 2015, two major competitors merged and renamed themselves with a name very similar to ours. This created major confusion in the European market. People typed the name wrong in search engines, or else Google directly proposed correcting it by putting the competitor's name. So we sued for parasitism. The case was settled through settlement and we took the name Malt, minus a substantial compensation that allowed us to not regret the old name too much.

Anyway, ArtCraft, which claims both the interface and the affiliation with Adobe even if it's not always stated clearly, could be sued on that. As such, it's not necessarily the copy that is attackable but rather the commercial harm that specifically targets a company.

Now I'm going back to something, I was telling you that it wasn't new. Sure, game clones, pirate ports, rewrites, software mods, all that's not new. The warez industry in the past was also based on recompiling existing binaries.

But now there's AI.

A Lower Barrier to Entry

Let me introduce you to REA, for "Reverse Engineer Anything". It's an open source tool, under MIT license.

The principle of REA is simple: give a code agent the means to inspect any software, whether it's web applications, native binaries or electron applications.

REA itself doesn't do much. It delegates all these actions to tools. For example decompilers like Ghidra or IDA. REA proposes an MCP, so a set of functions to be used by an AI. The idea being to simplify the observation of a software, for an AI, by using REA which itself uses tools capable for example of sniffing the network, decompiling a program, analyzing minified javascript code.

In itself, it's full of things we already knew how to do. Except that here it's possible to orchestrate it with an AI. So where before you needed experts, now a developer can do the same work in much less time.

Let's be clear. Reverse engineering did not become possible with AI. Just more accessible.

And if we already considered that code had lost a lot of value. What's left now?

Code is Worth Nothing Anymore

Financial markets have already decided. Since the beginning of the year, Adobe has lost more than 40% in stock.

And Adobe is not alone. In the spring, Salesforce, Workday, Microsoft, Shopify all crashed. We've been talking about SaaSpocalypse, the end of software, for a while now. I've talked about it myself several times.

Because the market anticipates the fact that these companies will be replaced by tons of competitors boosted by AI.

But in practice, Adobe's revenue increased 12% year-over-year. And its recurring revenue exceeds 27 billion dollars. I've experienced apocalypses that were harder to live through. Well, no, but you get the idea.

From constantly talking about saaspocalypse, wrongly and thoroughly, a lot of it, some people said that maybe there was actually a bit of exaggeration.

I don't think so. It's just that the second blade hasn't gone through yet.

I'll explain.

Recently, I built myself a piece of furniture. Before, I took measurements, I drew on paper, I made mistakes. When I changed a dimension, I had to recalculate everything.

And in the end, I needed a cutting plan. If you don't know, it's basically the list of boards, their dimensions, and how to cut them without wasting wood.

I had tried SketchUp. It was long, it was painful to install, and anyway, it didn't do the cutting plan I wanted.

So I made my own software. I describe the furniture, I give my measurements, and everything calculates. I have my cutting plan. If I change the thickness of a board, everything updates. I can test ten options without redrawing anything. I made an option to see the passage of electrical wires or the assembly instructions.

my software for making my furniture
my software for making my furniture

This software, I won't sell it, because it's probably useful only to me.

Second example. I redid my entire video creation process. I looked at each step, the time I was wasting doing boring things, and I gathered all the tools I had already made in python to download videos, images, make transcripts etc... I gathered all of that in an application and there you go. I made my own software.

Daryl - YouTube studio
Daryl - YouTube studio

I gathered everything in an application. My studio. Whereas tools like Submagic, precut, autotrim or others already exist, and do the job very well.

Before, I could pay for software, even when it wasn't quite right, because I didn't have the expertise to remake it and/or I didn't have the time.

Today, I can make my own custom tool without any worry. Code is literally worth nothing anymore. Well yes, the cost of my subscription.

And honestly… that's scary.

If code has no more value, my job, which partly consisted of writing code, doesn't either.

I console myself by saying that my job wasn't just that. And it's true that I still get a lot of pleasure from understanding a problem, designing a solution, seeing it realized, using it, getting feedback. But still, it's different. And for some of my former colleagues who were hugely attached to code, or older generations who are struggling with this change, it's painful to a degree that is difficult to assess.

Does that mean that really, software is dead?

No, Software Will Not Die

First, let's set the record straight, software will not die.

There are plenty of software that won't be touched because their value doesn't rest on code.

I can't remake Netflix, because I don't have access to its catalog. I could remake a messaging software like WhatsApp but that would be pointless if no one uses it except me. I could try to make myself a bank account aggregator but I'm going to quickly hit lots of regulatory problems, not to mention that I'm a bit afraid of messing up, anyway it's for sure I couldn't commercialize that.

There are plenty of barriers that make it still possible to sell software, because some monetize expertise, or industrial know-how, possess certifications, captive customers or are too embedded in an ecosystem.

On the other hand the boatload of software that comes out every day now by tens of thousands of developers who are playing the gold rush remake, that's going to be tough. I don't need any of your software. And it's really not the idea of the century to target other developers to sell a product.

And big companies will continue to buy known names, to benefit from the guarantee, or because the salesman invites your boss every month for a nice dinner. Agencies will continue to use Adobe for a good while, if only out of inertia.

Anyway, software is not over. On the other hand my job is more delicate. And that does hurt me a bit.

What It Changes for Us, Developers

When I say my job is changing, I'm not saying it's disappearing. We'll continue to make a lot of software, but not in the form we've known.

I won't hide that at one point I was a bit skeptical about the so-called rebound effect. You know it's the effect induced by productivity increases. When we know how to do more than before, we destroy jobs at first, and then there's a tipping point and we invent new uses. I had a hard time seeing the rebound effect with AI because I mostly saw that we were doing the same thing with less. I could see that we could do more, but more of what?

In most companies, there's no point in building more software if no one buys. For example I'm not going to take the train more because the SNCF travel application has hundreds more features. The race for features, if it doesn't bring anything, is pointless.

But I'm starting to see what the rebound effect could be. We could start a race to hyperpersonalization.

At the individual level of course, where everyone can make their own applications for their internal home automation, their accounting, their DVD management and I'm not sure what else.

And then at the company level it could be internal teams tasked with creating dozens of custom software, more suited than those on the market. And a lot of companies will do this by copying what exists. Apparently that's the big trend right now with US companies. Anthropic just recreated a new git for itself for example. Probably for bad reasons but, doesn't matter.

My job will no longer be to code, but to understand, to observe software that works, probably themselves made by AI, then to reproduce them, also with AI.

And frankly, I can understand that this might not be an enjoyable vision for everyone.

The intellectual challenge of understanding code, finding the little optimization that changes everything, debugging a complex problem, lots of little things that kept me in this job in my early years, is partly on the point of disappearing.

Of course I don't want to end on a pessimistic note. I really believe it's important to always see the positive.

So I want to say that, for my part, I admit that I still find it worthwhile, for now, because I was fed up with redoing the same bits of code for 25 years. Coding a form, data validation, a CRUD, a job that always does the same thing. Redoing a software factory, tests, explaining once again what it's for etc... I had done the tour of tech for tech's sake and I'm happy to make software, in the first sense of the term.

I'm happy to make my own tools super quickly, to have the almost instant satisfaction of materializing something I had in my head. Well, instant, on the scale of what I've known before anyway.

But I'm increasingly wondering what my added value is. What is it that makes what I do something only I can do? What good is my expertise/experience to me when now AI does everything.

I told you, I think that creating software will become increasingly difficult, in order to make software companies. You need a service on top that is really solid, that doesn't just rely on the fact of knowing how to stack lines of code. There will be a premium on tenacity on one hand, people who will be able to stay several months, or even years on the same topics without getting discouraged. There is also a premium on analytical spirit, the fact of really understanding the problems we want to solve, and what are the best ways to solve them.
That's going to be incredible challenges in big companies to rebuild coherent information systems, internal tool teams. Even though it will also create tons of conflicts over the meaning of the work, how we do it, how we redefine everyone's roles. And I'm very glad I'm not a CTO right now...

Anyway, there are plenty of new things to do, a whole industry to redesign. It's underway. I don't know if the result will be pretty but what's for sure is that my job has changed. Not because of Brandon, because he's just a guy who managed to highlight a phenomenon. We are all frogs, and the pot has been heating up since 2022.

On that note, you can get back to normal activity.

Bye.

Stay in the loop

Get new articles delivered directly to your inbox. No spam, unsubscribe anytime.

0 Comments

No comments yet. Be the first to comment!