Though as someone who shipped commercial software on Linux, it wasn't that bad, you just had to ship everything other than the kernel.
Well, with RAM being so cheap, why bother trying to trying to be memory efficient? It's not like OpenAI has an infinite pool of "AI" software engineers to work on this...
Oh wait...
- Apple: SwiftUI/AppKit
- Android: Jetpack
- Windows + Linux: Avalonia (C#)
Avalonia seems good so far. I couldn't do Qt because I can't deal with that qBittorrent look. GTK is aesthetically pleasing for me, but it only runs on Linux. Avalonia lets me target both of these UI-toolkit-less platforms with something native-ish. Flutter is probably good too, but I am using uniffi-rs and that doesn't generate Dart bindings AFAIK.
Would love to hear other options.
Download Edge for Linux and use the PWA. It's still crap but at least it kind of works mostly.
Don't they have agent swarms with infinite tokens?
That was after I asked it to only touch 3 text files in its working directory, after which it sparked macOS permission prompts to access my Desktop, Documents, Downloads, and other apps' data. Thank god for the web platform and web apps.
They can be amazing. But you can write shitty code in them like anywhere else.
AIUI the reason is, "we", collectively even though we don't all work on them, optimize browsers for speed above almost all else. Then, when all the advertising websites on the internet consume all that speed, we can't go back and have to optimized for speed even harder. All that optimizing for speed ends up consuming lots of RAM, from all the images, the speed-optimize DOM with lots of cross-linking, the JIT and its generation of native code paths, the endless layers of caches, etc. etc. at every point where a browser can choose between RAM and speed it will choose speed unless it's just impossible to choose it for some reason.
So even if you write good code in Electron, it still tends to eat resources like candy.
On the plus side, if you write good code, you will pick up all those optimizations too, which is not necessarily all bad. Running something like VSCode at all is a powerful testament to the browser ecosystem now. IDEs do a lot of very heavy duty lifting and need a lot of performance to do all their work. But you can imagine that when the same text rendering system that enables all that fancy & fast syntax highlighting and all the other decorations and features in the editor window is used to display a preview of a markdown file that said preview is probably going to eat way more RAM than your instincts may have guessed.
Not even a $1T dollar company wants to maintain a native Swift Mac app even though they have AI models to build native apps for every platform.
Maybe they thought Electron would save them tokens to build the feature once and it works everywhere rather than spending more tokens on building the same feature on 3 platforms.
What better way to showcase their tools capabilities than to deliver apps that are native, efficient, and integrate well with the host system? By compromising with Electron and making mediocre, bloated software they are signaling that they just aren't there yet.
It would be like Ford buying Hondas for their company cars. It might save them money but it sends the wrong message.
It definitely is a fraction of the work these days to maintain three different desktop apps + two different mobile apps + a web app. But it's still a lot more work than an Electron app that is merely tweaked between platforms.
Product releases at large companies are slowed dow by coordination and resources more than actual development. (I'm an Electron maintainer who is currently working on better Linux support in the framework, and also a developer/PM for a commercial app that supports Linux.)
It's very likely that the Codex Electron app already "worked" on Linux back in February, as in someone internally could build and run it from source and start a chat session. That fact would have made it possible for a small team to make a business case and start getting support from ops, QA, CS, marketing, legal, etc. The engineers would spend their unlimited tokens on Linux-specific build, packaging, and platform integrations (remember this is a computer use agent) to take the app from a prototype to something a company could actually launch and support for millions of users.
Apps are also a moving target. The entire time building up to release, the Linux desktop app would have been getting feature and design updates for free from the updates going out on Mac/Windows/web. None of those other teams working on those features have have had the time (or the mandate) to coordinate with Linux engineers if they were building a separate app from scratch, and I suspect such a proposal would never have gotten off the ground.
I think you've summarised it really well, & it shows:
- the revolutionary promises of AI-driven rapid delivery is nonsense when the delivery bottleneck was always elsewhere - AI is speeding up the part that was never slow
- the fact that - as you point out - it was likely working in Feb but needed a business case gives a good impression of the leadership's approach to Linux support: it's likely such internal case-making will continue to be a factor in future Linux build maintained
But I wouldn't know first-hand.
1. generally done well by many different UI frameworks
2. generally done better by most popular native UI frameworks than what Electron provides
BUT - those UI frameworks are typically not (very) cross-platform. In that context, Electron provides one of the best unified text-rendering stories of cross-platform options. But definitely far from the best overall.
It is a marketing expense. We are talking about it. Surely the token cost was worthwhile on that basis alone. Students will likely get some usage out of it, too. But paying a human to do this port would have been an insane thing to do two years ago. I’d be surprised if they have more than 1000 MAUs for this client by the end of the year.