• edge [he/him]@hexbear.net
      link
      fedilink
      English
      arrow-up
      14
      ·
      28 days ago

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

      • VibeCoder [they/them]@hexbear.net
        link
        fedilink
        English
        arrow-up
        7
        ·
        28 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.

  • hello_hello [comrade/them]@hexbear.net
    link
    fedilink
    English
    arrow-up
    19
    ·
    28 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.

  • queermunist she/her@lemmy.ml
    link
    fedilink
    English
    arrow-up
    18
    ·
    29 days ago

    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

    • lil_tank [any, he/him]@hexbear.net
      link
      fedilink
      English
      arrow-up
      29
      arrow-down
      1
      ·
      29 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

  • underisk [none/use name]@hexbear.net
    link
    fedilink
    English
    arrow-up
    17
    ·
    29 days ago

    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.

    • edge [he/him]@hexbear.net
      link
      fedilink
      English
      arrow-up
      12
      ·
      28 days ago

      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).

      • underisk [none/use name]@hexbear.net
        link
        fedilink
        English
        arrow-up
        5
        ·
        28 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?

  • Lyudmila [she/her, comrade/them]@hexbear.net
    link
    fedilink
    English
    arrow-up
    16
    ·
    28 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

  • footfaults@lemmygrad.ml
    link
    fedilink
    English
    arrow-up
    13
    ·
    28 days ago

    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

    • GaveUp [she/her]@hexbear.net
      link
      fedilink
      English
      arrow-up
      8
      ·
      28 days ago

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

    • DefinitelyNotAPhone [he/him]@hexbear.net
      link
      fedilink
      English
      arrow-up
      6
      ·
      28 days ago

      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.

      • footfaults@lemmygrad.ml
        link
        fedilink
        English
        arrow-up
        2
        ·
        edit-2
        28 days 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