this post was submitted on 08 Jun 2025
120 points (97.6% liked)

technology

23815 readers
182 users here now

On the road to fully automated luxury gay space communism.

Spreading Linux propaganda since 2020

Rules:

founded 4 years ago
MODERATORS
 
top 37 comments
sorted by: hot top controversial new old
[–] [email protected] 20 points 2 days ago

This is really funny because GNOME's desktop interface is almost entirely programmed in Javascript which allows for high levels of control and customization at runtime since you're simply editing running JavaScript.

Common Windows L.

[–] [email protected] 17 points 2 days ago

Really not that big of a deal. This stuff is like the PopSci journalism version of computer science.

Just disable the Recommended section if you want to avoid the react crap, nothing of value will be lost. shrug-outta-hecks

[–] [email protected] 11 points 2 days ago (2 children)

This is the same thing that happens with desktop applications that use Electron. They have performance issues and eat tons of RAM.

Apparently it's too difficult to pay good programmers that can use native frameworks and lower level programming languages, it's just cheaper to hire junior developers who only know JavaScript and just make everyone deal with the performance degredation

[–] [email protected] 7 points 2 days ago (1 children)

The core idea of Electron makes a lot of sense: rather than try to make your program run on many different OSes you instead just make it work on one platform that then makes it run on many different OSes for you. It's effectively a bunch of development teams centralizing their OS-driven development to a third party.

The problem is that Electron is made by capitalists who only care that it works on Windows/MacOS/iOS/Android/etc and couldn't give two shits if the performance is good or not because that's not what they get paid to do, so it's massively resource intensive and slow as balls.

[–] [email protected] 2 points 1 day ago* (last edited 1 day ago)

This was the premise of Java, specifically AWT and Swing. Electron is following a path that was already explored decades ago and the same performance and memory problems were encountered

[–] [email protected] 8 points 2 days ago

Microsoft is too busy laying people off every year arbitrarily for the almighty stock price and offshoring to cheap labor sorry

[–] [email protected] 20 points 2 days ago (2 children)

React Native apologist here AMA

[–] [email protected] 8 points 2 days ago (1 children)

Is react native resource intensive? Also unrelated is vibe coding worth learning?

[–] [email protected] 7 points 2 days ago

There’s definitely overhead to spinning up and running a JS interpreter (although it uses Hermes instead of V8, which helps) as well as communicating between JS and the native layer. I think the extent to which that stuff results in bad performance on its own is greatly exaggerated and is acceptable for a lot of use cases.

For the extra effort of learning how to optimize RN code, you get the benefits of:

  • not maintaining 3 codebases to deploy to iOS, Android, and the web
  • transferable knowledge if you have a lot of JS and/or React devs who don’t know the languages for native dev
  • OTA updates, meaning you don’t need Google and Apple’s approval every single time you wanna change styling on a button or fix a bug and your users can’t remain on ancient buggy versions forever

I’d say when dev resources are limited, React Native is a good choice. Was it a good choice for Microsoft? Seems like the answer is no, but that could easily be the result of bad org charts just as much as the failure of individual devs.

As far as vibe coding goes, I was very happy with it right up until I wasn’t. I hit the same “this is a mess I’d better rewrite it” wall I always do with side projects except I hit it faster. At work I’ve found AI useful for speeding up monotonous tasks, but I’ve never had luck with just letting it fly and not giving the code a close review as soon as it’s generated. Prompting AI to fix a bug it created seems to create more bugs just as often.

[–] [email protected] 13 points 2 days ago (1 children)

Both can be true. But if there's a resource bump from opening the start menu, React is probably the culprit.

[–] [email protected] 6 points 2 days ago

It’s possible. I wouldn't make that assumption without profiling the code though.

[–] [email protected] 16 points 2 days ago (1 children)

There’s some generalizations happening in here that are being presented without appropriate context. Using react native is not significantly different from using most other native UI libraries. If you’re going to condemn them for using it you should understand that a lot of the desktop software you currently use is likely built in a very similar manner; Firefox, discord, vscode, to name a few, all use technologies developed for the browser to render their UI. They can be implemented in performant ways with careful consideration.

The problem with using it here is that even at its most performant, React Native is still an abstraction layer that incurs a performance penalty and introduces complexities that could result in unintended behaviors. The start menu is always on, heavily used, and critical for operation. It should be one of the most heavily optimized and stable pieces of software in the operating system, and using react native indicates that it probably isn’t. Which suggests either they have misplaced priorities around optimization, or they’ve completely abandoned it as a goal.

[–] [email protected] 10 points 2 days ago (1 children)

Your examples were a browser, a browser that only shows one website, and the same browser as the previous but it shows a different website. Firefox is fine since its whole purpose is being a browser, but Discord and VS Code could and should be written native (with a better language than the garbage that is JS).

[–] [email protected] 3 points 2 days ago

Yeah, I deliberately stated examples that used tech developed for the web. If you'd like me to list more apps that use shitty UI abstractions I can but it didn't feel relevant to the point I was making.

Firefox, for example, didn't use web components previously, and instead used a clunky XML based system called XUL. Which also sucked ass and was a chore to use. QT looks like shit. Visual Basic is proprietary microsoft garbage that requires special software and makes me want to die.

What UI framework do you recommend they switch to for Discord, an application built entirely in HTML/CSS and JS intentionally so that it could run in a browser window?

[–] [email protected] 6 points 2 days ago

I think the taskbar in w11 is a webapp dependant on edge, no?

[–] [email protected] 18 points 2 days ago

What else would you expect from good ol' Microsoft^tm^

[–] [email protected] 44 points 2 days ago (6 children)

From a nerd over on hacker News.

[–] [email protected] 6 points 2 days ago (1 children)
[–] [email protected] 8 points 1 day ago

Eh, it's good we establish facts with everything. No need to argue Windows sucks with false statements when we can use true ones.

[–] [email protected] 29 points 2 days ago

you can write bad code with anything

inspiring 👍

[–] [email protected] 10 points 2 days ago (2 children)

React is actually way more usable than all the crap Microsoft has been pushing. WPF in particular is one of the biggest piles of dogshit I've ever had a displeasure of using

[–] [email protected] 6 points 2 days ago (1 children)

React is actually way more usable than all the crap Microsoft has been pushing.

Maybe so, but WPF is built on top of win32 which is native performance. You are trading away performance for developer "usability" and the "convenience" of writing in JavaScript

[–] [email protected] 4 points 2 days ago* (last edited 2 days ago) (1 children)

I 100% agree. Personally I prefer to use dear imgui on top of win32 when I need to make a desktop UI but I also get the appeal behind things like Electron. I just wish Windows provided us with something that's not completely impossible to use

[–] [email protected] 4 points 2 days ago

I happen to have done some C# programming around when WPF came out and I will tell you, it was way better to deal with than .NET Forms. Made things much better. So, I dunno count me as a "WPF is good" because the thing it replaced was far worse

[–] [email protected] 5 points 2 days ago

we must retvrn to win32

[–] [email protected] 16 points 2 days ago

Get this dweeb on TV!

[–] [email protected] 24 points 2 days ago

So it's even worse than just being react native, it's even more things

[–] [email protected] 22 points 2 days ago

This is not an excuse

[–] [email protected] 18 points 2 days ago (2 children)

React Native is a JavaScript app development tool but that's about all I can discern from this meme. I don't get why that's bad or what that even really means lol

[–] [email protected] 5 points 2 days ago

CPU usage spike when pressing fucking start is bad

[–] [email protected] 28 points 2 days ago

Without going to details : the easier a programming language / framework, the more resource intensive. So if you're a billion dollar company making software that'll be run on 80% of user devices, you hire people who can handle making optimised programs so users don't melt their machine to check their e-mails.

React native is a framework that is making developing programs with JavaScript easier, JavaScript is a language that is designed to be easy and cross-platform. So that means Microsoft likely made a bunch of interns work on this to save money while the users have to deal with atrocious performances

[–] [email protected] 31 points 2 days ago

How else are they gonna serve you all those ads? Be reasonable!

[–] [email protected] 17 points 2 days ago (4 children)

Could someone explain it like I'm 5 years old?

[–] [email protected] 3 points 2 days ago

Could someone explain it like I'm 5 years old?

Windows suck. Use Linux instead.

[–] [email protected] 17 points 2 days ago

There are different programming languages. React native is a fancy version of a language called JavaScript that is interpreted as opposed to compiled.

In a compiled language, you write your code then compile it into assembly (the inscrutable language of computers) for the computer platform you want it to run on. That means if you want it to run on a wildly different computer, with like a phone cpu (arm) instead of a desktop cpu (x86) or a mac (apple silicon, also low key arm), you need to compile and distribute a different version of the machine language file the computer will run called a binary.

Computers need assembly files instead of human readable files because they arent usually actually doing what the programmer is talking about. A good analogy is the old “tell me how to make a peanut butter sandwich” lesson where the teacher asks the class to instruct her how to make a peanut butter sandwich and performs all the instructions literally, making a mess.

The programmer asks for a peanut butter sandwich and the binary file the computer runs actually says “undo the twist tie” “take out the first two non-heel slices of bread” etc.

Interpreted languages aren’t compiled, instead your human readable code is processed directly by a program called an interpreter and transformed into assembly in real time. It’s great because now anyone can run your special program as long as they have your language’s interpreter installed on their device.

But compilation takes lots of processor power! So what would be incredibly fast stuff when run as a compiled binary like opening a menu with a list of options now has to be first interpreted before the results can appear, resulting in a delay before the start menu opens.

Interpreted languages also open up a few significant security issues because the file that says “open the start menu” is now human readable code and all evil Dennis has to do is change that file to add some “send all credit card information and passwords to evildennis.net” to get stored information every time the start menu is opened.

The interpreter that runs everytime the menu gets opened is also a security concern because if evil Dennis can get his own evil interpreter on your device he can steal data any time any JavaScript is run.

So when should you use compiled versus interpreted languages? Well the general rule is if you know what computer is gonna be running your code, use a compiled language. Microsoft knows what computers are gonna be running their start menu code. They’ll be windows computers.

So why would Microsoft have done this? There are a few reasons: it could be that they’re not worried about the start menu and if it runs slow but supports lots of ad serving frameworks then that’s fine. It could be that they’re not sending their best when it comes to writing the user interface of windows. It could be that introducing an insecure component of windows fits their business model of giving you a free foot-gun then selling you Kevlar shoes.

TLDR: they used the most wrong language for something that’s core to the operating system and the only explanations are incompetence or malice!

[–] [email protected] 30 points 2 days ago

React is an app framework that was originally designed to run in web pages. Then developers realized they could run it "natively", without a web browser, to make mobile apps.

Now Microsoft uses it for some core desktop OS functionality, far from its original intended purpose. And React apps have a reputation of being bloated and slow.