• Ship in the minimum amount of time possible, by any means, to be first to market. And this means poor design and smooshing together all kind of fat general-purpose frameworks and libraries to get something out the door.

    Sure, it’s slow. Google’s landing page is 4 MB for a small graphic, a text form, and some buttons. But what are you going to do? Not use it? They won. They don’t have to fix shit.

    And now with LLMs they can produce bloat faster than ever and pay even less attention to speed or quality.

    “The goal was never quality software.”

    • Sure, it’s slow. Google’s landing page is 4 MB for a small graphic, a text form, and some buttons. But what are you going to do? Not use it? They won. They don’t have to fix shit.

      This neglects to include the massive amount of additional front-end code Google (and other large tech companies) toss on their webpages for things that are purely for their own benefit while being of zero or negative value to the users. Mouse tracking, analytics, fingerprinting, and all kinds of other harmful content that tech companies put out go a long way towards reaching that 4MB figure.

    • Bane_Killgrind ( Bane_Killgrind@lemmy.dbzer0.com ) 
      link
      fedilink
      English
      arrow-up
      6
      ·
      edit-2
      3 days ago

      Google is a bad example, historically the landing page has been interestingly optimised.

      Lots of corporate websites are multi-hundred MB things though you are right.

      Edit I take it back, the worst ones I checked have been redesigned

    • 0xDREADBEEF ( dreadbeef@lemmy.dbzer0.com ) 
      link
      fedilink
      English
      arrow-up
      7
      ·
      edit-2
      3 days ago

      Why would that slow it down exactly? Nothing really slow about GPU accelerated graphics these days?

      Would love to hear the technical reasons. You need to have UI kits for GUIs. Responsive and accessible UI kits are hard. The web solved them a decade ago and made them easier to achieve than ever before. Why invent the wheel twice?

      I/O is the slowest thing ever. The more I/O dependent your app is, the slower it will be. It is not easy to make a slow web UI with zero I/O. Very easy to make a slow UI with a native toolkit and high I/O usage. Network calls are I/O. Analytics are I/O. Most enterprise apps these days demand so much analytics they effectively have spyware on their own users to optimize and A/B test against.

  • Cam ( dawcas@scribe.disroot.org ) 
    link
    fedilink
    English
    arrow-up
    13
    ·
    3 days ago

    I worked at a place where a site had to show the number of members, but for some reason it didn’t show the correct number. The reason was the query to the database was wrong, I corrected it in five minutes and the boss told me to put numbers manually, increasing them until we could display the correct query result because apparently the problem was there a long time before I started working there and it would make a bad image for the company if it was so easily corrected.

    On other project a friend of mine told me about things were so slow and getting slower with time. Database didn’t have keys, indexes, nothing you should expect a relational database to have.

    I haven’t worked in a while because of my health issues and I can assure you I’d be happier getting paid for watering plants than working with computers.

  • Right now everyone is asking their AI agents to rewrite programs in Rust or C or assembly. This is fun, but it’s not a serious attempt at optimization.

    C or assembly seems pointless and only for performance. But the reason people (re) write programs in Rust is because Rust as a language has a lot of guardrails that help make a program more stable, more correct. That reliability is the real reason for Rust. The performance is just a cherry on top.

    This is actually exactly what you want in a language for AI. This is anecdotal from my side, but in my experience, an AI writing Rust will write far less sloppy crap than an AI writing Python.

    Most of the argument against Rust has historically been that prototyping is slow and the language is a bother to write because the compiler makes it hard. But this only holds if humans are the bottleneck for writing the code! Rust therefore has all of the benefits but basically none of the downsides when having an AI write it.

    • But the reason people (re) write programs in Rust is because Rust as a language has a lot of guardrails that help make a program more stable, more correct. That reliability is the real reason for Rust.

      Yeah, but then the Node-like atomic packaging runs contrary to optimization and security by shoving 500 MB of code in your cli-tool. And sure, the compiler optimizes 90% of it away. But that’s not how you build stable software.

      • boonhet ( boonhet@sopuli.xyz ) 
        link
        fedilink
        arrow-up
        1
        ·
        3 days ago

        You could just use the standard library and refrain from using third party libraries? That’s how you get a smaller binary size in just about any language.

      • I agree that dependencies and package management is a real problem in programming nowadays, but it is not a problem unique to Rust. In fact, I struggle to name a single popular language nowadays that doesn’t have the exact same problems.

        It’s not so much “But that’s not how you build stable software.” It’s more like “But that’s not how you build software [at all today].” Modern software is powered by loads of shared packages, that’s just how all modern languages work. This is equally true for Rust and Python.

        Rust still has the edge here btw. Rust libraries (crates) are often very high quality with very good documentation. The language again helps here a lot, by providing extensive tooling for automatic documentation generation. Documentation in other languages are is far less helpful or poorly written. This is also again something that helps an AI write better code (just as it helps humans write better code).

        The packaging also helps elevate Rust to a high-level language, because you can build easily usable abstractions in packages that can be used in simple programs. All the complexity can be hidden away in a crate and suddenly Rust feels more like Python. I think that’s actually a good thing from package managers.

        • It’s not so much “But that’s not how you build stable software.” It’s more like “But that’s not how you build software [at all today].” Modern software is powered by loads of shared packages, that’s just how all modern languages work. This is equally true for Rust and Python.

          You’re not wrong - all libraries with automated dependency packaging do have this problem. But you’re downplaying the scale by a lot. Javascript dependency graphs are absolutely massive. Python has a decent standard library that reduces the number of shared packages by quite a bit. There are definitely downsides to having a large standard library like Python has, but it does significantly reduce the probability of a supply chain attack compared to Javascript.

          I can’t comment on Rust personally, since I don’t have much experience with the ecosystem.

        • Sure, yes, Rust has lots of quality libraries too. I’m thinking of doing the core in D and the GUI in Rust Slint. Plug-in protocol interface modules can be written in whatever, but Rust has some interesting libraries.

  • jason ( jason@discuss.online ) 
    link
    fedilink
    English
    arrow-up
    4
    ·
    3 days ago

    Never understood the idea of, “if it needs to be fast, that part is in a faster language.” Why not just use the faster language? Most of the libraries that have Python wrappers also come with c headers. Sometimes you wind up in the reverse situation where your dependency doesn’t have a Python wrapper and now you’re stuck managing silly boilerplate. Python just feels like an extra thing in the way to wrangle for little gain.

    Also, hotspot-only optimization doesn’t seem to have held up in reality, right? We can all agree that software is getting slower every day. The infrastructure is slow.

    All feels like cope, through and through.

    • bss03 ( bss03@infosec.pub ) 
      link
      fedilink
      English
      arrow-up
      7
      ·
      3 days ago

      Why not just use the faster language?

      Because the other language is more developer-friendly or faster to write/read even if slower to execute. Some code doesn’t need to be fast because it is always waiting on other things anyway.

      Some languages effectively prevent whole classes of runtime failures / bad code. But, they do that by doing more which takes longer, at compile-time, run time, or both.

      Some programs can’t avoid graph-structured data dependencies. In that case, the simplest solution is a garbage collector, and one built into the runtime is capable of being more efficient (and less buggy) than one written for a specific program.

      Anyway, there are many factors that determine which language is “best”, and not all of them are objective. That’s why we don’t just use the fastest language. (Currently, I do all my coding in either Idris or Purescript, but I’m also unemployed and just programing for myself, for now.)

  • ISO ( ISO@lemmy.zip ) 
    link
    fedilink
    arrow-up
    10
    ·
    4 days ago

    I always wonder who is the target audience of such shallow fallacy-filled pretend-insightful faux-wisdom. But then I remember that most people waste a lot of time following <topic> aggregator/discussion sites are young impressionable enthusiasts who don’t know much.

  • badmin ( badmin@lemmy.today ) 
    link
    fedilink
    arrow-up
    1
    ·
    3 days ago

    muh io bound

    🤣

    If the DB is IO-bound, and “slow languages” don’t matter because “IO bound”, then show me the DB you’re using implemented in a slow language.

    It’s hilarious how op is being this stupidly unaware, even within his stupid false argument which is provided as a supposed given.

    How are people seriously engaging with this blog fart full of false premises and contradictions?

  • UiUiUiUiUi ( UiUiUiUiUi@piefed.nl ) 
    link
    fedilink
    English
    arrow-up
    5
    ·
    edit-2
    3 days ago

    Compare frameworks more than languages.

    Hyper > Gin > FastAPI > NextJS > Laravel > Drupal

    Qt > GTK > Tauri > Fyne > Wails > Electron > React Native

    Sqlite ~ Pgsql > mariadb

    One docker container > ten micro services

    Environment variables > ini > database config table

    Edit: voters have spoken sqlite and pg are now on equal footing.

      • UiUiUiUiUi ( UiUiUiUiUi@piefed.nl ) 
        link
        fedilink
        English
        arrow-up
        1
        ·
        3 days ago

        My perspective is a self hosting hobbyist I noticed for those running on more reliable vps servers with rollbacks being a last resort the higher requirements are not as important.

        • boonhet ( boonhet@sopuli.xyz ) 
          link
          fedilink
          arrow-up
          2
          ·
          3 days ago

          That’s as a self-hosting hobbyist. Sqlite is great for that. It stops being great when you have thousands of users, and good luck using it with millions.

    • boonhet ( boonhet@sopuli.xyz ) 
      link
      fedilink
      arrow-up
      1
      ·
      3 days ago

      One docker container > ten micro services

      Well that depends. Are you going with micro services because it’s fashionable or because different parts of your backend work with completely different data and don’t need to communicate with eachother that much?

      I’m of the opinion that anything that needs to share one database should be one service, and things that are so easily detached that you can just plop the tables over into a separate database, can be separate services, because that will allow you to scale up one without scaling the other and one database’s I/O won’t get in the way of the other database’s I/O (assuming they’re on different machines of course). I’d say:

      Microservices ~ monolith > Distributed monolith

      Distributed monoliths suck.

  • Senal ( Senal@programming.dev ) 
    link
    fedilink
    English
    arrow-up
    4
    ·
    4 days ago

    I’d argue a combination of bad design and/or bad implementation, which i would consider different things.

    It’s a difference that becomes more pronounced the larger the team grows.

    A somewhat reasonable design can be absolutely destroyed by a poor implementation of that design

  • degen ( degen@midwest.social ) 
    link
    fedilink
    English
    arrow-up
    4
    ·
    4 days ago

    If you think about it, this was also true in the 80s, but because the hardware sucked. Good thing we learned better design so we can have things like AI