• UnfortunateShort@lemmy.world
    link
    fedilink
    arrow-up
    4
    ·
    25 minutes ago

    Because companies give zero fucks. They will tell you they need tons of IT people, when in reality they want tons of underpaid programmers. They want stuff as fast and cheap as possible. What doesn’t cause immediate trouble is usually good enough. What can be patched up somehow is kept running, even when it only leads you further up the cliff you will fall off eventually.

    Management is sometimes completely clueless. They rather hire twice as many people to keep some poorly developed app running, than to invest in a new, better developed app, that requires less maintenance and provides a better user experience. Zero risk tolerance and zero foresight.

    It still generates money, you keep it running. Any means are fine.

  • Gxost@lemmy.world
    link
    fedilink
    arrow-up
    5
    ·
    1 hour ago

    It’s all because of Electron, unnecessary libraries, and just bad coders. Asus Armoury Crate weighs a lot and is so slow, but it’s basically a simple app. Total Commander has much more features, but it’s fast, lightweight, and consumes 9 MB of RAM.

  • kamen@lemmy.world
    link
    fedilink
    English
    arrow-up
    8
    ·
    2 hours ago

    I’d argue that deploying from one codebase to 3+ different platforms is new functionality, although not for the end user per se.

    I wish though that more of the web apps would come as no batteries included (by default or at least as a selectable option), i.e. use whatever webview is available on the system instead of shipping another one regardless of if you want it or not.

    • Harlehatschi@lemmy.ml
      link
      fedilink
      arrow-up
      3
      ·
      2 hours ago

      But if your tool chain is worth anything the size of each binary shouldn’t be bigger. To oversimplify things a bit: it’s just #ifdefs and a proper tool chain.

      In the web development world on the other hand everything was always awful. Every nodejs package has half the world as dependencies…

  • RaptorBenn@lemmy.zip
    link
    fedilink
    arrow-up
    7
    ·
    2 hours ago

    It’s nearly all just using a whole library instead of the specific single function thats actually required, because few people are actually writing any code these days.

  • AppleTea@lemmy.zip
    link
    fedilink
    arrow-up
    42
    arrow-down
    1
    ·
    edit-2
    6 hours ago

    isn’t it a combination of younger developers not learning to programme under the restrictions of limited memory and cpu speed, on top of employers demanding code as soon as possible rather than code that is elegant or resource efficient or even slightly planned out

    • herrvogel@lemmy.world
      link
      fedilink
      arrow-up
      2
      ·
      34 minutes ago

      Mostly the latter. We don’t do any optimizations on our product whatsoever. Most important thing is to say yes to all the customers and add every single feature they want. Every sprint is spent adding and adding and adding to the code as much as we can and as quickly as we can. Not a single second is allotted to any discussion about performance or efficiency. Maybe when something breaks, but otherwise we keep piling on more crap at full speed non-stop. I have repeatedly been told “the fast way is the right way” followed by laughter. I was told to “merge this now” on multiple occasions even when I knew that the code was shit, and told the team as much. I am expected to write code now and think about it later.

      As you can expect, the codebase is a bloated nightmare. Slow as shit, bugs galore, ugly inconsistent UI, ENORMOUS memory use, waaaaaay too frequent DB access with a shit ton of duplicate requests that are each rather inefficient themselves. It is a rather complex piece of lab management software, but not so complex that it should be struggling to run on dedicated servers with 8 gigs of RAM. Yet it does.

    • MonkderVierte@lemmy.ml
      link
      fedilink
      arrow-up
      5
      ·
      edit-2
      2 hours ago

      Generally maybe but apps specifically, it’s the default choice of IDE, Android Studio, bundling tons of libraries for added functionality bound to Play Services by default.

      Which would probably be illegal in EU now, if any judge had the tech see-through for it.

    • Lifter@discuss.tchncs.de
      link
      fedilink
      arrow-up
      12
      ·
      4 hours ago

      Much the latter.

      Plus everything better work perfecly out of the box on any hardware, and there is a lot of different hardware. Compatibility layers are often built into the package.

      Java, for instance, recommenda that you package the whole (albeit slimmed down) JVM inside the package for the target platform, rather than relying on the java runtime installed already.

      The users arent expected to know any of that anymore.

      • PrettyFlyForAFatGuy@feddit.uk
        link
        fedilink
        arrow-up
        3
        ·
        2 hours ago

        yep, a lot of apps are just repackaged chrome running a web page.

        which begs the question to companies that require use of the app instead of just having a working website i can use on my copy of chrome/firefox that’s already on my phone…

        why do you need hardware access to my device?

        • drawerair@lemmy.world
          link
          fedilink
          arrow-up
          1
          ·
          edit-2
          2 hours ago

          1 reason is that they want as much data as possible. They sell the user data. Or they use the user data to improve their targeted advertising. They want more ad clicks.

          Re app versus site, many know how to block ads on browsers. With an app, the firm is hoping they can show you ads. There’s a way to remove ads from certain apps but the layperson doesn’t know.

  • rational_lib@lemmy.world
    link
    fedilink
    arrow-up
    15
    ·
    6 hours ago

    Because the app stores keep adding new requirements that you have to add code to deal with and it gets worse every year and seemingly every day.

  • WorldsDumbestMan@lemmy.today
    link
    fedilink
    arrow-up
    26
    arrow-down
    2
    ·
    8 hours ago

    Usually, instead of having 8-bit art, you have epic songs and very high definition textures. That is a good deal of why.

        • NoSpotOfGround@lemmy.world
          link
          fedilink
          arrow-up
          4
          arrow-down
          2
          ·
          6 hours ago

          Except… the compilation step doesn’t add type safety to JS.

          As an aside, type safety hasn’t been something I truly miss in JS, despite how often it’s mentioned.

  • Realitaetsverlust@lemmy.zip
    link
    fedilink
    English
    arrow-up
    53
    ·
    12 hours ago

    Simple reason - dependencies.

    Modern devs dump any dependency and sub-dependency under the sun into their project and don’t bother about optimizing it. That’s how you end up with absurdly large applications. Especially electron is a problem in this regard.

    You can still write optimized and small software. However, for most businesses, it’s just not worth their time. Rather using an additional couple hundred megabytes of dependencies on the client system.

    • thatKamGuy
      link
      fedilink
      arrow-up
      15
      arrow-down
      1
      ·
      11 hours ago

      In terms of programming, absolutely some bloat there.

      But I would wager a majority (or plurality) would actually be high(er) res media assets, embedded animations and video etc.

  • Blackmist@feddit.uk
    link
    fedilink
    English
    arrow-up
    72
    ·
    13 hours ago

    Fucking Chrome/Electron is why.

    I honestly wouldn’t mind that if they could all use the exact same runtime so the apps could be a few MB each, but nooooo.

    • nutt_goblin@lemmy.world
      link
      fedilink
      arrow-up
      19
      arrow-down
      1
      ·
      edit-2
      12 hours ago

      See: Webview2

      Unfortunately, it is extremely painful to work with😔 Enjoy rolling your own script versioning and update systems instead of using squirrel et al

      Edit: I think Tauri works by targeting this and webkitgtk via their wrapper library, unfortunately I can’t get my coworkers to write rust

      • kungen@feddit.nu
        link
        fedilink
        arrow-up
        5
        ·
        9 hours ago

        Isn’t that just the same pig, just wearing different makeup? I’m not a fan of msedgewebview2.exe allocating 500+ MB RAM just because Teams is open, but maybe that’s Teams fault…

    • devilish666@lemmy.world
      link
      fedilink
      arrow-up
      6
      arrow-down
      1
      ·
      11 hours ago

      Is there any alternatives to electron ? And why people’s doesn’t move on to alternatives if electron is huge & heavy resources ?

      • dbx12@programming.dev
        link
        fedilink
        arrow-up
        3
        ·
        5 hours ago

        The alternative is “just serve it as a regular website”. It doesn’t need to be an app to do its job. Name a functionality which only exists in electron but not in the standard browser API.

      • dpflug@kbin.earth
        link
        fedilink
        arrow-up
        10
        ·
        10 hours ago

        I mean, Object Pascal was doing the “write once, run anywhere” thing decades ago. Java, too. The former, especially, can make very small programs with big features.

        • uuldika@lemmy.ml
          link
          fedilink
          arrow-up
          3
          arrow-down
          2
          ·
          7 hours ago

          Java (and Object Pascal, I’m assuming) have very old-looking UIs. Discord’s gonna have trouble attracting users if their client looks like a billing system from 2005. Also, what do you do about the web client? Implement the UI once in HTML/CSS/JS, and again in JForms?

          So if you’re picking one UI to make cross-platform, and you need a web client, do you pick JForms and make it work on the web? or React and make it work on desktop?

          • dpflug@kbin.earth
            link
            fedilink
            arrow-up
            3
            ·
            3 hours ago

            I think maybe you’re confused. Java drives a significant percentage of Android apps. It absolutely can do modern UI. I can almost guarantee you’ve interacted with a Java program this year that you never considered.

            Pascal is more niche, but it can do modern, too.

            Java was doing web clients before the web could and still can. I don’t know much about Delphi’s web stuff, but I know they’ve targeted it for years now.

            WASM and transpiling blur the lines, too. LVGL can provide beautiful interfaces on the web as well as platforms Electron could never target, and works with any language compatible with the C ABI.

            I’m not saying these strategies are without their own warts, but there are other ways to deliver good experiences across platforms with a ~single codebase in a smaller payload. But mostly nobody bothers because they just reach for Electron. It’s this era’s “nobody ever got fired for picking Intel”.

            We need more people working with and on alternatives, not just for efficiency but also for the health of the software ecosystem. Google’s browser hegemony is feasting. Complexity has become their moat, preventing a fork from being viable without significant resources. Mozilla is off in a corner consuming itself in desperation.

            A US-based company holds a monopoly over the free web and a hell of a lot of our non-web software. So maybe let’s look for ways to avoid feeding the beast, yes? And we can get more efficient software in the process.

          • Takumidesh@lemmy.world
            link
            fedilink
            arrow-up
            2
            ·
            edit-2
            6 hours ago

            Yea, electron has flaws, but it’s basically the only way to make a truly cross platform native and web app. I would rather take a larger installed size and actually have apps that are available everywhere.

            The sad truth is there aren’t enough developers to go around to make sleek native apps for every platform, so something that significantly frees dev time is a great real world solution for that.

  • devilish666@lemmy.world
    link
    fedilink
    arrow-up
    20
    ·
    11 hours ago

    That topics always made me curious tho…take a sample AAA games back then has smaller size compared to shitty Unity 2D games nowadays and i wonder why ?

    • endeavor@sopuli.xyz
      link
      fedilink
      English
      arrow-up
      5
      ·
      edit-2
      6 hours ago

      Smaller textures, more assets, and worse audio mainly. Textures used to be like 512 for hero props. Now even random objects you see a few times get a texture 16 times larger. And they get up to 4 of those for each object/group of objects. Thanks to pbr and normals and whatever other masks and lightmaps may be required.

      Im sure there are more reasons for size bloat but this is from us artists at least.

    • gens@programming.dev
      link
      fedilink
      arrow-up
      14
      ·
      9 hours ago

      Less triangles and smaller textures. Crt monitors had less resolution and practically built-in anti-aliasing so they could get away with (and had to) “worse” assets.

      Also since ssd-s have become mainstream unity uses less compression so it would load relatively faster.

      Basically because monitors got better, standards got higher, competition got fiercer, storage got bigger and faster, etc.

      And it’s not like there weren’t shitty games before, just everybody forgot about them.

      I like how the game Banished is made. From a requirenments/looks ratio it is IMO great. One guy made it. Ghosts of Tsushima also looks amazing and is great from a techical perspective, but it is heavy.

      • endeavor@sopuli.xyz
        link
        fedilink
        English
        arrow-up
        1
        ·
        6 hours ago

        Polygons aren’t that costly, they’re just a set of coordinates and pack up well and ultra expensive highpoly stuff is avoided wherever possible by proffessionals. It’s mostly textures and maybe audio that bloats size.

    • Cratermaker@discuss.tchncs.de
      link
      fedilink
      arrow-up
      3
      ·
      9 hours ago

      Yeah but like, what new features do apps have which weren’t available in those times? Embedded videos maybe? Doesn’t justify the bloat.

    • ayyy
      link
      fedilink
      arrow-up
      1
      ·
      10 hours ago

      For games a lot of it has to do with 4K textures/art assets. It’s just so many more pixels to store for the worlds and characters.

  • KillingTimeItself@lemmy.dbzer0.com
    link
    fedilink
    English
    arrow-up
    40
    arrow-down
    1
    ·
    13 hours ago

    uh, please do ask, why does opening a fucking glorified text and image processing app require 1 gigabyte of ram.

    Who wrote this software? The guy from the bible who was the model for greed and gluttony? Jesus christ.

  • blind3rdeye@lemm.ee
    link
    fedilink
    arrow-up
    34
    arrow-down
    1
    ·
    14 hours ago

    It’s like Moore’s law. The number of bytes for a basic app doubles every 2.5 years.

    When I was young, we’d get a few different games games on a single 1.4 Mb floppy disk. The games were simpler, sure, but exactly the same games now would be far bigger in bytes.

    • At least games make sense, as the graphics get better. Though in some cases, the compression is also better. Like PS5 games are smaller on average than their PS4 versions, even though they have higher resolution textures in most cases, just because the PS5 has better compression/decompression tech.

      • HeyThisIsntTheYMCA@lemmy.world
        link
        fedilink
        English
        arrow-up
        1
        ·
        5 hours ago

        Like PS5 games are smaller on average than their PS4 versions

        My favorite example of this is Subnautica. The system didn’t call on the assets as quickly, or a different way I can’t remember all of the details but essentially they had to put like five copies of every asset on the ps4 version to get it to run properly. The ps5 accesses the assets fast enough it only needs one copy. At least that’s how it was explained to me.

      • Flatfire@lemmy.ca
        link
        fedilink
        arrow-up
        17
        ·
        13 hours ago

        Better than that, the lack of reliance on spinning disks means that asset duplication and data read order is less of a requirement to reduce load times. It can still be argued that there’s just too many polygons, since simply scaling things back would be plenty effective in reducing storage usage and load times.

    • Huschke@lemmy.world
      link
      fedilink
      arrow-up
      10
      ·
      14 hours ago

      Games is the one example that actually makes sense though. The game code size hasn’t really increased tremendously, but the uncompressed assets have only gotten more detailed and more numerous.

  • Stovetop@lemmy.world
    link
    fedilink
    arrow-up
    283
    ·
    19 hours ago

    It’s just that we have to make space for our 5,358 partners and the telemetry data they need.

  • ThatGuy46475@lemmy.world
    link
    fedilink
    arrow-up
    49
    arrow-down
    1
    ·
    16 hours ago

    The hp printer app says it needs your location to connect to WiFi. It says it needs your location all the time when not using the app, again to connect to WiFi

    • boonhet@lemm.ee
      link
      fedilink
      arrow-up
      28
      arrow-down
      2
      ·
      16 hours ago

      I think that’s to do with how permissions work.

      Having wi-fi access can technically tell the app where you’re located so you need to give it location access

      Which is stupid because it then also gets GPS access.