Comment by cosmic_cheese

5 days ago

I don’t agree with this at all. I’ll take AppKit (preferably with Swift, but Obj-C is fine too) over anything web. There’s a number of reasons, but the biggest is that AppKit has an expansive set of well implemented, accessible, flexible, efficient, and ready to use widgets that are all designed to work together, and the truth is that this isn’t something you can get on the web.

Even the most complete “UI frameworks” on the web are full of holes, leaving you to build a patchwork monster out of a laundry list of third party widgets (all of which themselves are full of shortcomings and concessions) or build your own.

As an aside, this gripe isn’t exclusive to the web. It’s a problem with many others such as Windows App SDK (aka WinUI) and Flutter, among others. At least for the things I build, they’re unsuitable at best.

There's one problem: If you're competent with non-web UI technologies, it's probably time to schedule your colonoscopy.

Late millennials and gen Z have been spoiled by declarative, reactive frameworks that work identically whether you're doing a local UI or the Web, and the tools (for example Figma) that have grown up around these frameworks. Using C++, Objective-C, or even Swift will be just fine for a personal project, but if you're talking something that needs to be maintained and refined over the long term by a team, you will have a much worse time finding people competent in those languages than in JavaScript+React+Electron.

This is also one of the reasons behind rewriting everything in Rust: C is so dangerous, people who don't already know it inside and out are unwilling to touch it. Virtually all of the younger system developers are already working in Rust, and would vastly prefer it over working in C given the choice, so keeping a C project maintained has gotten a whole lot harder.

  • > Virtually all of the younger system developers are already working in Rust

    I'd love to know where you get your statistics from.

    FYI, as an anecdote, I am 'younger', in the sense of 'only recently joined the workforce', and I write 100+ lines of C and C++ a day, both at work and in side projects. Haven't touched Rust once, although I would like to get into it.

    And funnily, the one UI framework I did use at work is Avalonia, which is strongly inspired by Windows Presentation Foundation.

  • I write plenty of declarative UI too in the form of SwiftUI (where it makes sense; often on Apple platforms the imperative frameworks are better suited) and Jetpack Compose.

    Declarative UI has its upsides, but it’s hardly a panacea. There are places where it’s a straightforward dramatic improvement and then others where it’s an awkward contortion at best. Reactivity can be great but works in imperative setups too.

    The explosion of popularity of front end web frameworks comes down almost entirely to two things: accessibility and commodity talent. It has a low bar to entry and JS+React is the closest the industry has come yet to achieving its undying dream of cheap, easily replaceable, interchangeable developers. In most other aspects it’s objectively worse than alternatives.