4 ms·
Up until this moment I absolutely hated electron apps. Now I realize I hate the entire app ecosystem. Here’s why — to make an app that really feels like a deskt
by gaze 4y ago
Up until this moment I absolutely hated electron apps. Now I realize I hate the entire app ecosystem. Here’s why — to make an app that really feels like a desktop app, you have to build the whole thing from scratch. You have to pick a date picker from NPM or write one yourself. That date picker could be pulled. It’s probably maintained by some guy as his side project. More than likely you’ll do it yourself or extract it from an existing app. Suppose I want a sash — there’s probably 10 on NPM but are any really good? Are they as good as the one built into vscode? The vscode folks just built one themselves for some reason, I guess. What about the UI toolkit? Do I use bulma or bootstrap or something? I could — but the path of least resistance with those yields you something that looks like hypertext. Big airy spacing, big buttons, and something that is crucially designed to scroll! You have to really know what you’re doing to lay something out in a way that resizes and scrolls in a way that feels like an app. Having a layout engine it turns out is very nice. JavaScript imo isn’t good. Neither is typescript, but they’re good enough. They’re fine. I don’t abhor them. It’s this absolutely fractured ecosystem where everyone just builds what’s the most fun for them or what their company demands, in a way that’s specialized to THEIR application, rather than there being some grand unified way to just make something that feels like an app. I miss Delphi where I drop a control on the canvas and it feels like that control as situated in a desktop app, rather than starting a new react app and getting a white window with times new Roman and beating it into something that will almost but never quite feel like a desktop app, and never can because I’m just one person without the resources of a company to make an entire bloody custom application specific UI kit!
- paxhax 4y ago> I miss Delphi where I drop a control on the canvas and it feels like that control as situated in a desktop app... At the risk of sounding like yet another crusty old man here, I agree 100%. I cut my teeth on Delphi (among other things), and I took it for granted that whipping up an application with a decent looking and highly responsive GUI would always be that easy. (Because, why not?). I came back to programming after a 20 year hiatus, naively imagining that there would be something like Delphi for the web where you could design your UI visually, hook up some event handlers, and off you go. Couldn't have been more wrong. On the plus side, there are some things I never imagined being able to do back in those days, like use a good Smalltalk system and have it run blazingly fast on standard hardware. It's frustrating that some of the greatest ideas of the past (Lisp machines, Smalltalk machines), things that were so far ahead of their time and were unaffordable on the hardware of the day, are now so easily affordable, but hardly anyone knows they existed. Coming back and looking at what's available today, it feels like kludges piled upon kludges.
- sirwhinesalot 4y ago100% true, but unfortunately the native world just can't compete. It's true that if you want a datepicker or a docking panel or what have you, you probably need to sift through dozens of barely maintained NPM packages. But imagine you're writing a native mac app. Not even a cross platform one, a fully native AppKit app. For years, if you wanted window tabs like safari, you had to implement them yourself. Now you can but only if you use their whole windowing system wholesale. You still have to do everything yourself if you want tabs like Pages/Numbers. And that's the gold standard. Not to mention complex controls like code editors, there are like 3 amazing ones for the web, on desktop you have what Scintilla? Setting that up is a lot harder than downloading an NPM package. Same with node editors, nothing comes close to React-Flow except maybe QSchematic and that has like 0 documentation and is not available in Python. The situation is far worse on windows. WinForms and WPF apps need to be heavily styled to look even remotely decent (they don't look "native" by any measure, their menus and toolbars don't follow the native style), and both are pretty much deprecated now (they "maintain" them I guess but all the effort is going into WinUI 3) Qt consistently fails to look anywhere near native on macOS and is way more painful to set up and use them even the web mess. QtCreator sucks and MOC is an abomination. The only good "native" GUI framework I can think of these days is Avalonia if you can stomach XAML. All the good parts of WPF with less of the crap. They only need to have a good default style but at least now there's a fluent style you can get from a third party (there's the downloading random crap again)