Comment by Johanx64

5 days ago

>OS manufacturer can’t be bothered to interact with their own UI libraries to build native UIs something has gone horribly wrong.

I honestly think that has way less to do with Microsoft, more of a representation of "software engineering" practices these days.

For example, Gnome shell has bunch of javascript in it, GTK has layout and styling defined in some flavour of CSS, etc.

I'm of opinion if you start writing OS userland in either javascript or python (or both), you should be fired on the spot, but I don't make the shots.

Most technical decisions aren't really driven by what makes a better end-user experience or a better product, it's mostly defined by convenience and familiarity of substandard software developers - with mostly and primarily web-slop background.

Cosmic (from the PopOS folks) is getting rid of the crappy javascript from GNOME Shell. And the CSS in GTK+ themes is just for the sake of syntactic convenience.

  • Cosmic is quite nice. There's some polishing left to do, but it's already pretty solid. The app store is a bit of a turd, but I bet that's just because it's by nature connected to the internet. More could surely be done with caching and pre-loading, but not sure if I want my computer to pre-load app store content all the time just in case I open it.

    Compared to Windows it's of course absolutely unreal.

But the difference is that none of the CSS or Javascript usage in gnome is tied to a webview. They are all binding in some way to GTK and much simpler rendering routines.

> I'm of opinion if you start writing OS userland in either javascript or python (or both), you should be fired on the spot, but I don't make the shots.

KDE Plasma, which is in my opinion the most advanced desktop environment is written in Qt QML which is JavaScript. There are advantages to that over C++, namely your session won't simply crash.

  • QML is not JavaScript.

    (While you can use some JavaScript from QML, the application still have a C++ core. QML applications can still crash. There is no DOM with QML, no browser overhead)

    • QML is absolutely not JavaScript. It's a markup language to describe user interfaces, spiced with JS for certain interactions. All heavy lifting behind the scenes is done in C++ - the QML runtime as well as the application logic and data models.

The last point is very astute.

The software industry has always had more juniors than seniors so this issue of juniors calling the shots is not a new one but it does feel like it's been getting worse and worse... Now it's basically AI slop vibe coders calling the shots about coding best-practices.

When I read comments like this, I honestly think that people are only complaining about this because the "bad people" are doing this (in this case Microsoft/Gnome Team).

Neglecting the fact that almost everyone else is doing similar things.

> For example, Gnome shell has bunch of javascript in it, GTK has layout and styling defined in some flavour of CSS, etc.

What GTK is doing isn't really any different than how many UI framework work and have done so for quite a while now.

Almost every desktop UI toolkit/library/framework in the past 15-20 years has the following:

- Markup interface for defining the layout. If they don't have that they have a declarative way of defining the UI.

- Some sort of bindings for popular scripting language that hook into native code.

- Some of styling language that isn't that different from CSS.

This has been the norm for quite some time now. It works reasonably well.

Futhermore there isn't much difference between what desktop developers are doing and what web developers are doing.

> I'm of opinion if you start writing OS userland in either javascript or python (or both), you should be fired on the spot, but I don't make the shots.

Why? I find Gnome works really well on Linux. I have a pretty nice desktop environment after adding two extensions (Dash To Dock and App Indicators). Gnome runs well on relatively ancient hardware I own (2011 Dell E6410) with a garbage GPU (it isn't OpenGL 3.3 compliant). It actually performs a lot better than some other DEs that are 100% native.

JavaScript is indeed a slow language. However in Gnome that isn't the bottleneck. People have been making UIs with JScript (basically JavaScript) using WSH back in the 90s on Windows 98.

> Most technical decisions aren't really driven by what makes a better end-user experience or a better product, it's mostly defined by convenience and familiarity of substandard software developers - with mostly and primarily web-slop background.

What makes a better end user experience has nothing to do with any of this. There has to be an incentive to create a good end user experience and there simply isn't in the vast majority of cases.

In many cases it doesn't matter really what the tech behind something is. Most popular programmings and associated frameworks all work reasonably well on machines that are over a decade old. I am running Discord on a 15 year machine dual core laptop processor and it works "ok".

So this sort of complaining about "modern devs" I've been hearing about for almost 20 years now. The issues I've faced with doing quality work has been almost always to do with how projects are (mis)-managed.