14 ms·
Claude is an Electron App because we've lost native
- deleted 8mo ago[deleted]
- ttd 8mo agoSome random thoughts, since I've had a similar train of thought for a while now. On one hand I also lament the amount of hardware-potential wastage that occurs with deep stacks of abstractions. On the other hand, I've evolved my perspective into feeling that the medium doesn't really matter as much as the result... and most software is about achieving a result. I still take personal joy in writing what I think is well-crafted code, and I also accept that that may become more niche as time goes on. To me this shift from software-as-craft to software-as-bulk-product has some similarities to the "pets vs cattle" mindset change when thinking about server / process orchestration and provisioning. Then also on the dismay of JS becoming even more entrenched as the lingua franca. There's every possibility that in a software-as-bulk-product world, LLM-driven development could land on a safer language due to efficiency gains from e.g. static type checking. Economically I wonder if an adoption of a different lingua franca could manifest by way of increasing LLM development speed / throughput.
- usrnm 8mo ago> LLM-driven development could land on a safer language Why does an LLM need to produce human readable code at all? Especially in a language optimized around preventing humans from making human mistakes. For now, sure, we're in the transitional period, but in the long run? Why?
- zadikian 8mo agoLLMs are better at dealing with human-readable code on their own too
- IncreasePosts 8mo agoFor one thing, because it would be trained on human readable code.
- mandevil 8mo agoI can't even imagine what "next token prediction" would look like generating x86 asm. Feels like 300 buffer overflows wearing a trench-coat, honestly.
- zadikian 8mo agoIt'd just run out of tokens
- jerf 8mo agoFrom my post at https://jerf.org/iri/post/2026/what_value_code_in_ai_era/ https://jerf.org/iri/post/2026/what_value_code_in_ai_era/ , in a footnote: "It has been lost in AI money-grabbing frenzy but a few years ago we were talking a lot about AIs being “legible”, that they could explain their actions in human-comprehensible terms. “Running code we can examine” is the highest grade of legibility any AI system has produced to date. We should not give that away. "We will, of course. The Number Must Go Up. We aren’t very good at this sort of thinking. "But we shouldn’t."
- brewtide 8mo agoOnce again, communication remains key.
- recursive 8mo agoSo humans can verify that the code is behaving in the interests of humanity.
- mjr00 8mo agoBecause the traits that make code easy for LLMs to work on are the same that make it ideal for humans: predictable patterns, clearly named functions and variables, one canonical way to accomplish a task, logical separation of concerns, clear separation of layers of abstraction, etc. Ultimately human readability costs very little.
- davorak 8mo ago> For now, sure, we're in the transitional period, but in the long run? Why? Assuming that after the transitional period it will still be humans working with ai tools to build things where humans actually add value to the process. Will the human+ai where the ai can explain what the ai built in detail and the human leverages that to build something better, be more productive that the human+ai where the human does not leverage those details? That 'explanation' will be/can act as the human readable code or the equivalent. It does not need to be any coding language we know today however. The languages we have today are already abstractions and generalizations over architectures, OSs, etc and that 'explanation' will be different but in the same vein.
- Copyrightest 8mo ago[dead]
- ttd 8mo agoWell, IMO there's not much reason for an LLM to be trained to produce machine language, nor a functional binary blob appearing fully-formed from its head. If you take your question and look into the future, you might consider the existence of an LLM specifically trained to take high-level language inputs and produce machine code. Well, we already have that technology: we call it a compiler. Compilers exist, are (frequently) deterministic, and are generally exceedingly good at their job. Leaving this behind in favor of a complete English -> binary blob black box doesn't make much sense to me, logically or economically. I also think there is utility in humans being able to read the generated output. At the end of the day, we're the conscious ones here, we're the ones operating in meatspace, and we're driving the goals, outputs, etc. Reading and understanding the building blocks of what's driving our lives feels like a good thing to me. (I don't have many well-articulated thoughts about the concept of singularity, so I leave that to others to contemplate.)
- ianbicking 8mo agoIn a sense they do use their own language; they program in tokenized source, not ASCII source. And maybe that's just a form of syntactic sugar, like replacing >= with ≥ but x100. Or... maybe it's more than that? The tokenization and the models coevolve, from my understanding. If we do enough passes of synthetic or goal-based training of source code generation, where the models are trained to successfully implement things instead of imitating success, then we may see new programming paradigms emerge that were not present in any training data. The "new language" would probably not be a programming language (because we train on generating source FOR a language, not giving it the freedom to generate languages), but could be new patterns within languages.
- mushufasa 8mo agoPerhaps a hot take, but I'm glad for electron apps because that also means they will be well supported on linux, which is almost never the target of native development.
- tuetuopay 8mo agoConversely, an app using native toolkits (at least the Windows ones) will have better chances of running fine under Wine. I've recently had the (dis)pleasure of trying to run some .Net monstruosity with Wine, and oh my got did it not work for obscure reasons. But overall yeah, from a compatibility perspective, nothing beats Electron. I'm not sure we'd ever get an official Discord client on Linux otherwise.
- lostmsu 8mo agoNow if only Wine would work natively on Android
- drcongo 8mo agoI really hate Electron, but something is so rotten under macOS that even some of Apple's own native apps are appalling. The Settings and Passwords apps are so bad as to be almost unusable, I'd love to know how and why they're that bad - are they catalyst, or just badly made?
- nullbyte 8mo agoThey did something to Settings after MacOS Monterey that made it very slow. I miss the snappiness of the old app!
- dilap 8mo agoI don't know for a fact, but I'd bet a few digits of cold hard cash it's a SwiftUI rewrite that is to blame. (Any1 in the know want to chime in?) And yeah, it's terrible. Apple doesn't make good apps anymore. (This is part of why I think electron does so well -- it's not as good as a really good native app [e.g. Sublime Text], but it's way better than the sort of default whatever you'll get doing native. You get a lot of niceness that's built into the web stack.)
- poszlem 8mo agoWell, perhaps it has something to do with the fact that they started using webviews for stuff like system UI: https://blog.jim-nielsen.com/2022/inspecting-web-views-in-macos/ https://blog.jim-nielsen.com/2022/inspecting-web-views-in-ma...
- jen20 8mo agoWhile there are missing features (e.g. ability to merge records), I have to say that Passwords.app is worlds ahead of 1Password since their electron rewrite. System Settings is not the best (mostly because the search is broken), but Passwords is sufficiently good that I haven't bothered looking what it's written using, whereas I can immediately tell with Electron.
- drcongo 8mo agoHard agree on 1Password. After Slack it's probably the worst Electron app on my Mac.
- reconnecting 8mo ago10 days ago: https://news.ycombinator.com/item?id=47104973 https://news.ycombinator.com/item?id=47104973
- goda90 8mo agoMaybe the hardware supply crisis caused by demand for AI data centers will lead to a push for more efficient and backwards compatible client software.
- RobRivera 8mo agoHa Hahaha Hahahahaha
- pjmlp 8mo agoNah, some developers are lazy, that is all, lets not dance around the bush with that one. Most of those Electron folks would not manage to even write C applications on an Amiga, use Delphi, VB, or whatever. Educated on node and do not know anything else. Even doing a TUI seems like a revelation to current generations, something quite mudane and quite common on 1980's text based computing of Turbo Vision, Clipper and curses.
- reactordev 8mo agoThey wrote a React TUI renderer, that’s what they did. Shame… I understand why, but there is such beauty in the simplicity of ansi.
- pjmlp 8mo agoThe company that supposedly is selling that AI can do everything to replace us.
- esafak 8mo agoI see no contradiction. You could get replaced by an agent that spews out React TUIs; as if corporate buyers are going to care about the difference!
- reactordev 8mo agoThat’s the hard swallow. End users only care about the UX and it working. They don’t care how succinct your code is. They indirectly care about its performance.
- fragmede 8mo agoEven then, the people paying for the product aren't even the users. See also: Microsoft Teams.
- zadikian 8mo ago
- lapcat 8mo agoIt's weird for the author to mention Mac window buttons and corner radius as reasons to use Electron, because while the main content of Electron app windows is HTML, the Electron windows themselves and the window chrome are native, with the same buttons and corner radius as other apps on the system. Electron is a native wrapper for web content. The wrapper is still native. > Native APIs are terrible to use, and OS vendors use everything in their power to make you not want to develop native apps for their platform. I'm honestly not quite sure what the author means here. Web APIs are equally “terrible” in my opinion. In any case, you have to release an Electron app on Mac the same way you release any native app on Mac. The benefit of using web APIs is not that they are non-terrible but that you can share the same code as your website. And of course you can more easily find web developers than native developers. But that has nothing to do with whether or not the API is terrible. It’s just supply and demand. I’ll take AppKit and autolayout any day over CSS, ugh. CSS is the worst.
- lxgr 8mo ago> with the same buttons and corner radius as other apps on the system I just checked: No, the corner radius is different. I'm personally not very bothered by that, but it's just empirically true. > Electron is a native wrapper for web content. The wrapper is still native. In my view, the problem isn't that it's a wrapper, but rather that it's that it's a bad wrapper of a bad runtime (i.e. the incredibly bloated JS/web stack).
- zadikian 8mo agoUIKit etc never made sense to me after years, CSS also didn't make sense, but right out of the box I understood React. And with hooks, it's way less boilerplate than the UIKit ways. Separate from that, Apple doesn't seem to mind breaking native macOS apps, to the point where most devs treat native code like a liability on Mac but ok on Windows.
- rapnie 8mo agoBesides going full native, a Tauri [0] app might have been another good alternative given they already use Rust. There are pros and cons to that choice, of course, and perhaps Tauri was considered and not chosen. Tauri plus Extism [1] would have been interesting, enabling polyglot plugin development via wasm. For Extism see also the list of known implementations [2]. [0] https://tauri.app/ https://tauri.app/ [1] https://extism.org/ https://extism.org/ [2] https://github.com/extism/extism/discussions/684 https://github.com/extism/extism/discussions/684
- headcanon 8mo ago+1 for Tauri, I've been using it for my recent vibe-coded experimental apps. Making rust the "center of gravity" for the app lets me use the best of all worlds: - declarative-ish UI in typescript with react - rust backend for performance-sensitive operations - I can run a python sidecar, bundled with the app, that lets me use python libraries if I need it If I can and it makes sense to, I'll pull functionality into rust progressively, but this give me a ton of flexibility and lets me use the best parts of each language/platform. Its fast too and doesn't use a ton of memory like electron apps do.
- EduardoBautista 8mo agoAlso, Rust's strong and strict type system keeps Claude honest. It seems as if the big LLM models have trained on a lot of poorly written TypeScript because they tend to use type assertions such as `as any` and eslint disable comments. I had to add strict ESLint and TypeScript rules to keep guardrails on the coding agents.
- rapnie 8mo agoI added a list of known Extism implementers to my comment above, to take inspiration from should Extism be attractive to consider for you.
- oooyay 8mo agoI use something similar to Tauri called Wails: https://wails.io/ https://wails.io/ that's Go-based.
- nitwit005 8mo agoEven if web rendering is the best technology possible, there's still plenty you could hypothetically optimize, like replacing the Javascript with native code, or cutting out unused features to get a smaller download. Ultimately, Claude having limitations is an issue. They can't just point it at the code base and ask it to make it faster.
- written-beyond 8mo agoYou've basically described Flutter and Jetpack compose(for desktop). The problem really does turn into effort to pay off, even if we stayed with JS and the rendering engine, figured out a way to compile JS into native code and completely stripping all of the unused functionality and doing the same thing with the rendering engine. All of that would need to be made, it's not like electron apps literally crash you machine. You have metrics, hundreds of millions of devices running electron apps at a daily basis. Unless you make your own company, I don't think anyone can convince their leadership to take such a decision.
- nitwit005 8mo agoI'm not arguing for actually doing this, I'm just suggesting Claude's limitations are actually an issue (contrary to what the article asserts).
- zitterbewegung 8mo agoX foundational model Apps UIs are electron apps because all of them are web first and App second and the easiest way to do this is being an Electron app.
- zadikian 8mo agoWhat's the advantage of their Electron apps vs using the web? I get that in theory you can use native-only pieces that a browser doesn't support, but in practice a lot of Electron apps are literally the website.
- daxfohl 8mo agoI imagine the first step would be for them to make a cross platform UI framework that's better than any existing options, and then port claude to it. Making five different apps just to claim "native" doesn't seem like a great choice, and obviously for now, delivering new claude features takes priority over a native graphics framework, so electron makes sense. But that doesn't mean it'll be on electron forever.
- ToucanLoucan 8mo agoRespectfully: skill issue. My employer ships software native for Windows, Mac, iOS and Android. Different codebases for all (though they share a lot of common stuff), all maintained by a shockingly small team. It’s absolutely achievable if you give a shit about your products and I’m long over hearing the bevy of usual fucking excuses from software houses often magnitudes larger than us who struggle to even keep their electron shit working correctly.
- jen20 8mo agoNative is shorthand for "integrated into the platform". Lowest-common-denominator stuff that Electron gives feels correct nowhere (looking at you, Slack). The very best cross-platform applications implement their UI using the native platform idioms on the native platform technologies, and share the core of their logic. The current best example I have is Ghostty which feels perfectly at home on either macOS or Linux.
- jxdxbx 8mo agoWhen I complain about a lack of “native” software I pretty much always mean the platform-provided defaults. Not some cross-plaform UI toolkit that happens to be “native” code. Most apps that I see using QT on Mac or whatever would provably be better as Tauri apps.
- array_key_first 8mo agoQt is straight up much faster than Tauri, and Qt at least looks native-ish, whereas React is the wild wild West.
- 8mo ago
- asah 8mo agogreat post - let me add that native was forced into some of this by the web: 1. locked up files ==> that's for security, which wasn't an issue in the 1990s. 2. inconsistent look ==> people are embedding browsers inside apps for all sorts of reasons, ruining the "native" UI/UX even if the OS "look" were stable. It took a while, but once again open source and the web kinda won, though if you like consistency, then I agree it's a pyrrhic victory...
- rvz 8mo agoMore like a skill issue, than 'losing native'.
- fHr 8mo agoCodex cli rust /thread
- strongpigeon 8mo agoBut the Codex app is Electron based...
- baggachipz 8mo agoClicks link, goes to blog site My eyes! The goggles, they do nothing!
- 1970-01-01 8mo agoIsn't native just the CLI?
- giancarlostoro 8mo agoI have been using Claude Code ironically enough to build native apps via Qt and Rust, the output is impressive. Might give writing an IRC client a shot and put it in GitHub.
- andyjohnson0 8mo agoI felt that this article didn't provide strong justifications for some of its assertions. > Native APIs are terrible to use, and OS vendors use everything in their power to make you not want to develop native apps for their platform. Disagree. I'm most familiar with Windows and Android - but native apps on those platforms, snd also on Mac, look pretty good when using the default tools and libraries. Yes, its possible to use (say) material design and other ux-overkill approaches on native, but thats a choice just like it us for web apps. And OS vendors are very much incentivised to make natuve development as easy and painless as possible - because lock-in. > That explains the rise of Electron before LLM times, Disagree. The "rise of Electron" is due to the economics of skill-set convergence on JS, the ubiquity of the JS/HTML/CSS/Node stack platform, and many junior developers knowing little or nothing else. As for the rest: minor variations in traffic light positioning and corner radii are topical but hardly indicators of decaying platorms.
- bdangubic 8mo ago> Disagree. The "rise of Electron" is due to the ubiquity of the JS/HTML/CSS/Node stack, and many junior developers knowing nothing else. with all due respect - hard disagree. in what place on Earth to Junior Devs make these types of decisions?? Or decision makers going “we got these Juniors that know JS so it is what is…”
- nitwit005 8mo agoI don't believe they were implying they would make the decision. It's expensive to have your team learn new skills from scratch, and management won't want to pay for that if they don't have to.
- bdangubic 8mo agoI have been coding for 30 years now and I have never encountered a technical decision like choosing technology (e.g. Electron) for anything important to the company being made with "oh, we must use X because so and so knows X" Maybe if there was a toss-up between X and Y or something like that but to flat-out pick Electron because you have people that knows JS is madness
- d0m 8mo agoApple/Google could easily make web apps native if they wanted
- etothet 8mo ago"The real reason is: native has nothing to offer." I get it, but this is a bit dramatic. One of the biggest challenges I've found with using non-native tools (and specifically the various frameworks that let you write JavaScript that compile to Native code) is that there is much less of a guarantee that the 3rd party solution will continue support for new OS versions. There's much less of a risk with that with 1st party solutions. Additionally, those 3rd parties are always chasing the 1st part vendor for features. Being far behind the regular cadence of releases can be quite inconvenient, despite any advantages initially gained.
- odiroot 8mo agoI'd still take native KDE/Plasma apps over Electron any day. Just the performance and memory usage alone is worth it. Sublime Text feels so much snappier than VSCode, for another example. And I can leave it running for weeks without it leaking memory.
- eikenberry 8mo agoThis wouldn't be an issue if they allowed 3rd party apps or priced their API competitively with their subscriptions. Free software normally fixes these types of problems but is prevented in this case.
- rapnie 8mo agoWith regards to "we've lost native" isn't local-first the opportunity to bring it back in a paradigm shift that deals a blow to both the browser and cloud vendor hegemonies? https://lofi.so/ https://lofi.so/
- il-b 8mo agoSomehow, a CAD program, a 3D editor, a video editor, broadcasting software, a circuit simulation package, etc are all native applications with thousands of features each - yet native development has nothing to offer?
- alentred 8mo agoHaving said (read) that, I am surprised there is still no official Claude Desktop app for Linux. :'(
- dankwizard 8mo agoWith today's processors and speeds, there really is no difference in performance of these Electron apps vs Native and anyone disagreeing just dislikes the JS ecosystem
- amelius 8mo agoHow about power, and battery capacity?
- felixgallo 8mo agoalso memory footprint, jank, and the pitch-black dependency forest.
- bdangubic 8mo agoCannot agree more. Whenever I am making a decision like picking tech at work I always assume everyone who will use it has new $5k MBPs. all the kids in schools with their chromebooks and whatnots? - oh well, they can tell their parents to get you an MBP :)
- weakfish 8mo agohard disagree, Zed, for example, feels miles better than VS Code
- msy 8mo agoThe thing people miss is isn't not that there aren't downsides (power, memory, disk size, dependency ecosystem size etc etc) it's that they're still completely outweighed by the upsides of write-once-ship-all for authors.
- nfcampos 8mo agoBut on the other hand the claude app is garbage… https://github.com/anthropics/claude-code/issues/22543 https://github.com/anthropics/claude-code/issues/22543 obviously native apps can be garbage too, but I must say electron apps have a surprisingly high incidence of terrible performance issues, unsure if it’s a correlation or causation issue
- dtagames 8mo agoThis is a good thing. Native was always a place where gatekeeping and proprietary crap sprout and thrive. It can't die soon enough. Doesn't all have to be Electron, but web tech for the win and force everything to the browser unless you'd like to write it twice.
- HoldOnAMinute 8mo agoUse Claude to create native apps. Done. It can even create a beautiful Java Swing apps.
- rmonvfer 8mo agoI love Claude but both the desktop and the web apps are incredibly janky when compared with their OpenAI counterparts (I won’t even comment on Gemini’s because it’s also incredibly broken and unreliable). Start times are atrocious, long conversations literally break rendering (and I’m using the desktop app on a MacBook Pro with an M3 Pro CPU and 36 GB of RAM so an electron app shouldn’t feel so janky so frequently, right?). IMHO they just don’t care right now (and I get it from their perspective) but I’m pretty sure there’s a lot of low hanging fruit they could fix to make the experience 5x or even 10x smoother. Claude Code (TUI) is also another memory hog and I’ve even had Ghostty literally crash with enough open sessions. Fortunately Anthropic models are also incredibly so at least I’ve been able to speedrun my own desktop client using Tauri and fix many of the issues I encounter every day. I might release it at some point.
- titanomachy 8mo agoI’ve only built some basic CRUD-type apps in SwiftUI, but I thought it was pretty nice. The APIs seem well thought-out, I needed less code than I would have to do the same thing in React, and the default styling looked quite professional. Of course, the React ecosystem and community is enormous. I bet if I was building something complex, I would have gotten frustrated building it all from scratch in SwiftUI when I could just reach for a React component library.
- cladopa 8mo agoI would say that the real reason is because "it works". As simple as that. The first thing you need when you make something new is making it work, it is much better that it works badly than having something not working at all. Take for example the Newcomen engine, with an abysmal efficiency of half a percent. You needed 90 times more fuel than an engine today, so it could only be used in the mines were the fuel was. It worked badly, but it worked. Later came efficiency. The same happened with locomotives. So bad efficiency at first, but it changed the world. The first thing AI people had to do is making it work in all OSes. Yeah, it works badly but it works. We downloaded some Clojure editor made in java to test if we were going to deploy it in our company. It gave us some obscure java error in different OSes like linux or Mac configurations. We discarded it. It did not work. We have engineers and we can fix those issues but it is not worth it. The people that made this software do not understand basic things. We have Claude working in hundreds of computers with different OSes. It just works.
- observationist 8mo agoThey could have done better. They chose the path of least resistance, putting in the least amount of effort, spending the least amount of resources into accomplishing a task. There's nothing "good" about electron. Hell, there are even easier ways of getting high performance cross platform software out there. Electron was used because it's a default, defacto choice that nobody bothered with even researching or testing if it was the right choice, or even a good choice. "It just works". A rabid raccoon mashing its face on a keyboard could plausibly produce a shippable electron app. Vibe-bandit development. (This is not a selling point.) People claiming to be software developers should aim to do better.
- Gooblebrai 8mo ago> They could have done better. They chose the path of least resistance, putting in the least amount of effort, spending the least amount of resources into accomplishing a task You might as well tell reality to do better: The reality of physics (water flows downhill, electricity moves through the best conductor, systems settle where the least energy is required) and the reality of business (companies naturally move toward solutions that cost less time, less money, and less effort) I personally think that some battles require playing within the rules of the game. Not to wish for new rules. Make something that requires less effort and resources than Electron but is good enough, and people will be more likely to use it.
- avbanks 8mo agoNo it's because LLMs aren't that good yet.
- labrador 8mo agoI'm reposting this I saved from Hacker News user gjsman-1000 because it's so good and so true. https://news.ycombinator.com/item?id=36060678 https://news.ycombinator.com/item?id=36060678 I really doubt that at this point. Developers have learned that everything Microsoft says to do for Windows, since 2012, will be garbage within a few years. Guaranteed. Learned Silverlight for Windows Phone development? Too bad, it's UWP now. And the XAML is incompatible. Learned WinRT for Windows 8/8.1 app development? Too bad, it's UWP now. And the XAML is incompatible. Packaged your App for APPX? Too bad, it's MSIX now. You learned how to develop UWP apps? Too bad, the User Interface layer has been ripped out of UWP, it's now called WinUI 3, and it doesn't even run on UWP. Better port your UWP app back to Win32 now, I guess. Why did you even learn UWP again? You went and learned WinUI 3 like we recommended? Well, unlike WinUI 2, it doesn't have a visual designer, and it doesn't have input validation, or a bunch of other WinUI 2 features. So, depending on what your app needs, you might have a mix of UWP and Win32, because WinUI 2 is UWP-exclusive and WinUI 3 is Win32-exclusive and neither has all the features of the other. Progress! You built your Windows 8 app with WinJS? Well, sucks to be you, rewrite it in entirety, WinJS was scrapped. You ported your app from iOS with Project Islandwood? Well, again, that sucks. It was brilliant, it made pulling apps over from iOS much easier, but it's dead. Rewrite! You decided to hang it all, develop for good old WPF, but wanted to use the Ink Controls from UWP? Great, we developed a scheme for that called XAML Islands which made so you could have some of the best UWP controls in your old app. Then we released WinUI 3, completely broke it, and made it so complicated nobody can figure it out. So broken; even the Windows Team doesn't use it and is writing the modern Windows components for File Explorer with the old version. But of course, that would require WinUI 2, for UWP, inside Win32 which is the main feature of the broken WinUI 3; which means that the Windows Team has a bastardized version of XAML Islands for their own use that nobody else has (literally), to modernize the taskbar and File Explorer and built-in apps like Paint, that nobody who wants to emulate them can borrow. Their apps don't look modern and their users complain? Suckers, go learn WinUI 3, even though our own teams couldn't figure it out. You wanted your app on the Microsoft Store? Well, good news, package it together with this obtuse script that requires 30 command-line arguments, perfect file path formats, and a Windows 10 Pro License! Oh, you didn't do that? Do it 5 years later with MSIX and a GUI this time! Oh, you didn't do that? Forget the packaging, just submit a URL to your file download location. Anyone who bothered with the packaging wasted hours for no real purpose. Did I mention Xamarin? A XAML dialect of its own, that supports all platforms. But it runs on Mono instead of the authentic .NET, so you'd better... work around the quirks. Also it's called MAUI now, and runs on .NET now. But that might break a few things so hang around for over a year's worth of delays. We'll get it running for sure! Oh, and don't forget about ARM! The first attempt to get everyone to support ARM was in 2012 with a Windows version called... No, no, no. Go past this. Pass this part. In fact, never play this again. (If you want to imagine pain, imagine running Windows and Microsoft Office on a ARM CPU that came three generations before the Tegra X1 in the Nintendo Switch. Surface RT ended with a $900M write-off.) And so on... Or, you could just ignore everything, create a Windows Forms (22 years strong) or WPF app (17 years strong), and continue business like usual. Add in DevExpress or Telerik controls and you are developing at the speed of light. And if you need a fancier UI, use Avalonia, Electron, React, or Flutter.
- cdrnsf 8mo agoOn iOS there isn't always a choice to not build something native. For example, I can't install Navidrome as a PWA because Apple doesn't properly support audio playback for PWAs. I ended up writing a client that suited my listening habits. To read ePubs, however, I was able to write a PWA leveraging epub.js because no native APIs were required.
- AnonHP 8mo ago> On iOS there isn't always a choice to not build something native. Tangentially, even native can be badly designed and developed, performance wise. Even Apple hasn’t been able to do a good job with the Reminders app (one of the several apps ported to Mac with the same level of negligence that Electron brings in). I use a lot of Reminders and lists in Reminders. It’s janky and poorly coded.
- cdrnsf 8mo agoOh absolutely. I hadn’t touched native development in perhaps a decade (and that was Xamarin before Microsoft acquired them). My initial iterations were rough, but I’m happy with where the app is. Choosing an audio app to try native again likely wasn’t the best choice on my part either.
- h4ch1 8mo agoI've been evaluating truly native x-platform GUI frameworks for a while and GPUI[0] from the zed team along with longbridge/gpui-component[1] looks the most promising. Though I haven't tested it too much other than building small personal tools like a work habit tracker, it's very well documented and looks great. Gave me a good excuse to try the language again as well. [0]: https://www.gpui.rs/ https://www.gpui.rs/ [1]: https://longbridge.github.io/gpui-component/ https://longbridge.github.io/gpui-component/
- eviks 8mo agoGPUI is also abandoned as a separate non-Zed project, so unfortunately not that promising
- duxup 8mo agoI actually like how many things are cross platform now compared to the past.
- p0u4a 8mo agoFor desktop specifically, native is just not worth it anymore. For example setting up permissions for every OS is a pain in native, but you get that for free on the web. You can basically do everything native could offer now, even notifications. The only issue is the fat address bar at the top that kind of kills the immersion.
- hresvelgr 8mo agoSomething that isn't touched on as much is that in the time between old-school native apps and Electron apps is design systems and brand language have become much more prevalent, and implementing native UI often results in compromising design, and brand elements. Most applications used to look more or less the same, nowadays two apps on the same computer can look completely different. No one wants to compromise on design. This mentality creates a worse experience for end users because all applications have their own conventions and no one wants to be dictated to what good UX is. The best UX in every single instance I've encountered is consistency. Sure, some old UIs were obtuse (90% weren't) but they were obtuse in predictable ways that someone could reasonably navigate. The argument here is between platform consistency and application consistency. Should all apps on the platform look the same, or should the app look the same on all platforms? edit: grammar
- pavlov 8mo agoIf I look at the Notion and Linear desktop apps, they’re essentially identical in styling and design. They’re often considered the best of today’s web/Electron productivity apps, and they have converged on a style that’s basically what Apple had five years ago. IMO that’s a fairly strong argument that the branding was always unnecessary, and apps would have been better off built from a common set of UI components following uniform human interface guidelines.
- lelandfe 8mo agoI do notice those things occupying your "essentially," and your "basically." The success of worse designed stuff is a hard thing to argue against, though.
- rixed 8mo ago> No one wants to compromise on design. I, the user, would totally want that.
- copperx 8mo agoThe user is at the bottom of the stakeholder list.
- weare138 8mo agoYou can still style native apps.
- Art9681 8mo agoShould've used Go.
- llbbdd 8mo agoEvery thread on here that goes over some threshold of Electron complaints should require commentors to include their machine specs with their post, and it should play an extremely loud incorrect buzzer if it's 8 GB memory or less.
- adithyassekhar 8mo agoMay I ask how old you are? If you are not just naive, this should never be the attitude of someone building software. It's almost a cursed take. Throughout history we've only gotten more efficient with our technology and it's resources. Software might be the only field where it went the opposite. Now we are insulting users on low end hardware? The same thing I did well on a 2GB ram windows 7 machine is a latency nightmare on a 16GB windows 11. The same exact task with the same results. Don't want to completely hate electron. VS Code proved it can be done in a good way, teams showed us the opposite. Like the author said you can build slop in any stack: JS or native it doesn't matter. What matters is care. This entire industry is cursed with people who don't give a shit, in it for a quick buck, are entitled and lazy. Maybe AI should destroy everything anyway. We had better software when we gatekept who can build it.
- llbbdd 8mo agoYou may ask, but given latest advancements in identifying people from trivial information, I'll be a bit cagey about it. I'll say I'm not 20 anymore. :) I'm certainly not trying to be insulting, but these threads do get more than a bit tiresome. There's very little curiosity in them towards understanding why Electron is so popular; maybe a tendency lately of HN to assume that popular things are bad, or that large companies do things exclusively for the wrong reasons. Efficiency is coming up a lot in this thread, and almost universally without definition, because the people making claims about it are implied to be measuring the efficiency of the same thing: how fast your software can run on the least possible hardware. But efficiency can also describe how you use time, which as they say is the one thing you can't ever have more of. Or money, which is also rarely infinite. In this thread I see takes like: - "They're a huge company, they can afford to do it native!" (or they can write it once across 3 OS and the browser, and spend the time on other things) - "Electron has bad performance!" (non-native performance isn't the same thing as bad performance, using more RAM than you think it should consume isn't automatically bad performance) - "The UI is inconsistent with native apps!" (take it up with product and design, remember Skype? Or AIM) Electron isn't going to take over the bare-metal powerhouse app space anytime soon, but that's not why anyone builds anything with it. It saves dev time, it makes the economics of bothering to support Linux desktop users make sense, most actual customers have more RAM than they need anyway, and you can still call out to native code for the perf sensitive parts. Like you and the article said it's about caring. There are definitely bad Electron apps. There are bad programmers at every level between the user and the metal. But the scapegoating on here is so predictable I could have predicted half the responses in this thread with my eyes closed given only the title of the article and some of them are borderline against the guidelines in how little they further discussion. I at least hoped my comment was funny, even if it didn't add much either.
- YmiYugy 8mo agoThis might be a "the grass is greener on the other side" situation because I do a lot more web than native dev, but in my experience native while just as quirky as web will usually give you low level APIs to work around design flaws. On web it too often feels like you can either accept a slightly janky result or throw everything away and use canvas or webgl. Here are some recent examples I stumbled across: - try putting a semi transparent element on part of an image with rounded corners and you will observe unfixable anti-alias issues in those corners - try animating together an input with the on screen keyboard - try doing a JS driven animation in a real app (never the main thread feels hopeless and houdini animation worklets never materialized) I don't think it's that native has nothing to offer. I think that developing (in case of desktop) for 3 different platforms all with own complication of what is native UI is a nightmare. macos has swiftui (incomplete), uikit and appkit, linux in practice gtk/qt, windows winui 3 (fundamentally broken) with WPF and WinForms still hanging around .
- rayiner 8mo ago> I think that developing (in case of desktop) for 3 different platforms all with own complication of what is native UI is a nightmare. macos has swiftui (incomplete), uikit and appkit, linux in practice gtk/qt, windows winui 3 (fundamentally broken) with WPF and WinForms still hanging around . Wouldn’t it be a good use of AI to port the same app to several native platforms?
- YmiYugy 8mo agoyes it would, but depending on the app it could put you in a ton of hurt. - AI has gotten a lot better on less popular tech, but there is still a big capability gap between native frameworks an the blessed react + tailwind stack. - You will get something that is likely in the right shape but littered with a million subtle bugs and fixing them without having intimate knowledge of the plat form is really hard.
- zipping1549 8mo agoJust saying that Electron is easier to maintain and stuff is pretty much self sufficient. You can't say that native brings nothing to the table. I'd prefer native app over Electron any day.
- eviks 8mo ago> Some time ago, maybe in the late 90s and 2000s, native was ahead. It used to look good, it was consistent, and it all actually worked That's just mythical past, in reality you had the full variety of garbage with basic things broken (hello, blurry native text if poor users decide to adjust screen resolution to match his vision, and text is the most basic of the basics of UI). Only today many of those issues are wrapped in a browsers, so many times more inefficient (though, to be fair, making it harder to mess some of the basics through a concentration of dev efforts on one platform) > the more apps used native look and feel, the better user experience was across apps This is especially atrociously deep one, that default look of Windows was ugly and the feel - unergonomic, and user experience doesn't magically become better if you stick to the ugliness. And for important productivity apps it also doesn't become better if you stick to the unergonomic - as, you know, there are two sides in a coin, and "familiarity" isn't the only nor even the most important factor. > The real reason is: native has nothing to offer. It offers the same things it always has - the potential to be performant and integrated (with better baseline), just as OS god intended (but OS devil intervened) And the counter here is too shallow > There’s no technical reason why There is, bad abstractions that make it harder to be performant is a technical reason for poor performance. > Web apps can be faster, too, but in practice, nobody cares. Is just very shallow. "Can" is useless alone, you need to engage with all the other major factors that affect reality, not ignore everything at the level of a theoretical "can" > What makes you think it’ll be different once the company decides to move to native? Well, reality? There are literally the same companies with the same apps that were different before switching!
- petre 8mo agoI'm using it in the browser anyway so why should I care? It's not as if it works offline.
- camkego 8mo agoWhen an article states “ OS vendors use everything in their power to make you not want to develop native apps for their platform “, it’s really hard to take the rest seriously. Sure, native applications can be hard and slow to develop for a number of reasons, but OS vendors are seriously incentivized to have developers build on their platform.
- sirwhinesalot 8mo agoThen why are the APIs they provide such turds? Cocoa is excellent but who knows when Apple will deprecate it for SwiftUI (which is not very good yet, if it ever will be)? Windows is a disaster of half-finished APIs. Win32 doesn't even support dark mode. Windows Forms was on life support for ages and only now is getting some love, but it doesn't have a native look despite being built on Win32. WPF is stuck on DirectX 9 and was also on life support for a long time. UWP is dead, effectively. WinUI3 requires bundling 38MB worth of DLLs (many DLLs), is a pain to install and setup a project with and somehow performs worse than electron apps (don't look at the callstack when you click a button, it is scarier than RE9). And Linux... well there's Qt which really wants you to drop QtWidgets and use QtQuick instead that nobody likes, and GTK is actively developer hostile with a severe disdain for backwards compatibility.
- 999900000999 8mo agoFlutter and Koltin probably would both perform significantly better. But who cares ? Electron Apps are cute. A really really ugly looking native application won't have all that nice CSS. Cross platform development is significantly faster with Electron. The only ones complaining have the know how to use cli Claude code so, side from a few bloggers no has an issue with this.
- nsonha 8mo agoCan we please not equate "performant apps with good user experience" with "native apps". One is (user-centric) goals, the other one is just a dogma, propaganda sold by a certain type of consultant.
- hvs 8mo agoBecause Worse is Better. /s It's the incentives and everything is a trade off. Time to market, performance, features: none of these choices are made in a vacuum. Oh, and people like to go home and see their families once in a while. As a developer of over 35 years, I feel like I hear the same arguments over and over again. "Programmers used to care about performance!" No they didn't, they just had no choice because computers sucked and you had to work on performance or your application would barely run. "Progammers used to care about the quality of their code!" Really. You apparently never worked on legacy systems with years of hacks and spaghetti code that took an afternoon to trace through just to figure out what it was doing. People haven't changed. Kids aren't lazier these days. The incentives are always just to ship as fast as possible. Performance will be dealt with when and if it is so bad that the customer complains and not a moment sooner. When I was much younger I fancied myself a "craftsman" of software. But any "craft" I was able to bestow on my software was in spite of the surrounding incentives not because of them. Software is closer to assembly line work than craftsmanship and LLMs are just driving that point home faster and harder than ever. I still love software development after all these years but it's entirely because I love solving problems and computers still fascinate me the same as they did when I got my first TRS-80 Color Computer at age seven. Nobody that's not a programmer cares as long as the software does what they need it to and does fast enough that they don't start wonder why they have to use this piece of crap software in the first place.
- deleted 8mo ago[deleted]
- deafpolygon 8mo agoelectron=js/node it’s about cost. develop once, deploy everywhere. web solved that. web devs are a dime-a-dozen (i’m not saying web dev is bad… just that it’s a saturated market) so the cost is already scraping the bottom of the barrel. now, compare this to deploying native apps, we need: - a macOS dev/team - a windows dev/team - a linux dev/team - a web dev/team - testers for each of those platforms - coordination between the teams so the UI looks consistent that’s a 4-5x larger staff AI is a force multiplier, sure.. but it’s not a 10x force multiplier. it’s 2x at best, but probably 1.5x in practice (and averaged across the board).
- ahartmetz 8mo agoQt is a cross-platform native toolkit. It is native on Linux, looks more native than whatever the current UI clusterfuck is on Windows, and Mac users will complain a bit (at which point you can point out that at least it's not Electron). You can also compile it for Wasm but yeah, probably more of a last resort.
- vintagedave 8mo ago> OS vendors use everything in their power to make you not want to develop native apps for their platform I'm not sure this is true. Cocoa remains one of the most amazing libraries ever. Delphi's VCL is the same (Win32, ugh, but the VCL is native, and it's wonderful.) The difference perhaps is that you need to re-implement. And there is a very good question: if AI boosts productivity so much, why is this not now being done even by AI companies? I suspect the reason is not that it's not possible, but that native user experience is not a value. Since circa 2012 (the loss of Aqua, Windows 8) native UI as a driving force in user experience by OS vendors lost value; the web replaced it with different UIs per site/app; and the OS experience of generic, boring UI meant that the OS receded into the background. It's only folks who experienced what good OS-driven UI was that value it, and I worry that they don't have a voice. But Anthropic could, if they chose, demonstrate the value of their AI productivity extremely effectively by building a native version of Claude Desktop for Win/Mac/Linux. And they might do some good for design/engineering trends around UX at the same time as well.
- 0xCE0 8mo agoElectron is business-friendly choice, because users do not refuse using it. It is users' fault. Users support and accept it by using it. Nagging doesn't change anything. As with every bad business, it is users who buy/use and therefore supports continuing its existence.
- amoursy 8mo agoClaude's desktop app will be the end of me. It's so slow and buggy, and I'm not overly anal about these types of things, but it's just awful.
- fennecfoxy 8mo agoThat's because "native" is still a fucking pain in the ass with few benefits. Electron can be pretty performant if written well. The difference between Electron and native is that Electron you can write sloppily (more common) or performant, whereas it's in the nature of native to force you down the performant path (which expends a lot more time). People used to joke about new Javascript frameworks, now with AI things are changing even faster and you really think it's worth investing time into a native app for something whose features are rapidly expanding and changing? That's bad software management. If they're doing stupid things in terms of performance then by all means they should fix that but Electron isn't inherently bad.
- iamsaitam 8mo agoThe meaning of native in these discussions is "no web technologies", because Qt gets thrown around and that's as native as to macOS as Electron, just in a different manner.
- zozbot234 8mo agoThat's the exact same way AAA games are native, which well, they are. As the article itself makes clear, the OS-default toolkit doesn't really have a privileged status on macOS today, any more than it does on Windows or many Linux distros.
- michelb 8mo agoSimply scrolling through (or at least trying to) a large conversation in any of the Electron LLM apps would show many opportunities for performance that native can bring.
- sloth77 8mo ago"There’s no technical reason why Slack needs to load 80 MiB just to show 10 channel names and 3 messages on a screen. The web is not the problem here! It’s a choice to be bad. What makes you think it’ll be different once the company decides to move to native?" Are you having a laugh? Every electron app I have ever used uses at least half a dozen heavy weight processes, each using 100MB+, typically totalling multi-GB for a single app - regardless of complexity. Native apps are more work and I agree that OS vendors can't seem to decide on visuals these days, but they are still are far superior option for performance and efficiency. And with RAM prices through the roof, the last thing I want is another bloated Electron app....
- manofmanysmiles 8mo agoHot take: It's time for something like Java/Web Aassembly to come back, built into the OS. JIT and AoT translation like Rosetta can make it almost native. Trimming out the middle of the stack will make it in practice be faster than almost anything out there today. I think this might be wildly incompatible with the business models of most big corporations, because if this is done well, there can be true portable apps. The core operating system can dissolve into something even less exciting then the BIOS. Or perhaps there can be genuince technical innovation in the OS space, supporting a universal new canvas. I've also been playing with a "bare metal" "gui toolkit/compositor", and wow is it fast, buttery smooth, and uses almost no resources. I don't know that even with LLMs I'll be able to pull it off myself in any meaningful way, but if I'm doing it, maybe some other people are too.
- waffletower 8mo agoIt might simply be a matter of time. Claude Code recently transitioned to a native executable rather seamlessly -- eschewing its npm and Javascript dependencies. I imagine the Desktop may migrate similarly. One motivation might be a somewhat more effective protection against code analysis -- though LLM control of tools like Ghidra might make that point somewhat moot as well.
- phendrenad2 8mo agoElectron exists because two of the three major Operating Systems that developers user make it hard to ship an application. Windows makes it easy (well, if you ignore the problems around getting your app whitelisted so it doesn't show a "this program isn't commonly used" warning). Mac requires you to use XCode which is universally reviled by experienced Mac/iOS devs and newbies alike. Linux... Linux just doesn't work due to fragmentation. So, naturally, the ecosystem adapted, shifting all of these inconveniences into a lower layer and calling it Electron. Pragmatically, they latched onto whatever was available that just worked, and since Google spends billions making sure that Chromium remains dominant, so their upsells on YouTube and Gmail remain dominant, so their ad platform remains dominant, they just used that.
- lunias 7mo ago> Finally, the last hope of people longing for native is performance. They feel that native apps will be faster. Well, they can, but it doesn’t mean they will. I guess we just shouldn't even try. Obviously the web is a good platform for some apps and a terrible one for others.