Slashdot Mirror


'It Just Seems That Nobody is Interested in Building Quality, Fast, Efficient, Lasting, Foundational Stuff Anymore' (tonsky.me)

Nikita Prokopov, a software programmer and author of Fira Code, a popular programming font, AnyBar, a universal status indicator, and some open-source Clojure libraries, writes: Remember times when an OS, apps and all your data fit on a floppy? Your desktop todo app is probably written in Electron and thus has userland driver for Xbox 360 controller in it, can render 3d graphics and play audio and take photos with your web camera. A simple text chat is notorious for its load speed and memory consumption. Yes, you really have to count Slack in as a resource-heavy application. I mean, chatroom and barebones text editor, those are supposed to be two of the less demanding apps in the whole world. Welcome to 2018.

At least it works, you might say. Well, bigger doesn't imply better. Bigger means someone has lost control. Bigger means we don't know what's going on. Bigger means complexity tax, performance tax, reliability tax. This is not the norm and should not become the norm. Overweight apps should mean a red flag. They should mean run away scared. 16Gb Android phone was perfectly fine 3 years ago. Today with Android 8.1 it's barely usable because each app has become at least twice as big for no apparent reason. There are no additional functions. They are not faster or more optimized. They don't look different. They just...grow?

iPhone 4s was released with iOS 5, but can barely run iOS 9. And it's not because iOS 9 is that much superior -- it's basically the same. But their new hardware is faster, so they made software slower. Don't worry -- you got exciting new capabilities like...running the same apps with the same speed! I dunno. [...] Nobody understands anything at this point. Neither they want to. We just throw barely baked shit out there, hope for the best and call it "startup wisdom." Web pages ask you to refresh if anything goes wrong. Who has time to figure out what happened? Any web app produces a constant stream of "random" JS errors in the wild, even on compatible browsers.

[...] It just seems that nobody is interested in building quality, fast, efficient, lasting, foundational stuff anymore. Even when efficient solutions have been known for ages, we still struggle with the same problems: package management, build systems, compilers, language design, IDEs. Build systems are inherently unreliable and periodically require full clean, even though all info for invalidation is there. Nothing stops us from making build process reliable, predictable and 100% reproducible. Just nobody thinks it's important. NPM has stayed in "sometimes works" state for years.

5 of 560 comments (clear)

  1. Why should they? by QuietLagoon · · Score: 5, Insightful

    We've been trained to be a consuming society of disposable goods. The latest and greatest feature will always be more important than something that is reliable and durable for the long haul.

    1. Re:Why should they? by Anonymous Coward · · Score: 5, Insightful

      and our kids and grandkids will be buried in our electronic wastes.

      corporate greed is to blame (the consumer, less so). forced obsolescence for the sake of profits and with zero regard to the environment.

    2. Re:Why should they? by JuliceMTL · · Score: 5, Insightful

      Quick question ... do you always buy the cheapest car possible? I'm pretty sure you don't. This fantasy that consumers always go for the cheapest product is false and blaming consumers for the industry's lazyness and lack of vision is also lazy IMHO. Cheers

    3. Re:Why should they? by Nidi62 · · Score: 5, Insightful

      The kind of quality and efficiency that the summary seems to be talking about is expensive. The buying market wants cheap. Creating cheap solutions means grabbing third-party libraries and gluing them together....as much as possible. Once it basically works you just move on. That keeps development costs low and time to market low, which is exactly what the market wants.

      To use the Apple example in the summary, Apple could create lean and efficient software for their phones without raising costs to consumers. But then they would go from making a metric shit ton of profit to only making a standard shit ton of profit and we can't have that, can we? It's not that the people have decided what they want, corporations have told people what they want and the people lapped it up, even when it is quite clearly not in their best interest.

      --
      The only thing necessary for evil to triumph is for it to be pitted against a slightly greater evil
  2. The customer can't find it as an option by Anonymous Coward · · Score: 5, Insightful

    The customer has no choice in the matter. The people that make the decisions and hire/fire are the ones that do. Lets take a look at a typical DevOps or NoOps shop:

    1: The devs are mainly junior to intermediate level. Senior devs get the axe because they cost too much.
    2: What matters is getting deliverables that marketing has already sold to a customer.
    3: The devs are asked each day about said deliverables in the Scrum stand-up meeting.
    4: If the devs don't cough that deliverable up -yesterday-, they get replaced by someone else who can.

    In this environment, technological debt is someone else's problem. All that matters is getting stuff working and the code artifacts into production. Security, or readability? That's other people's problems.

    This is the modern company. The days of people writing code in assembly to get everything to work perfectly and still have room on a floppy disk are over.

    Blame the bad top brass, who short their stock before a security breach is announced so they can swing a new yacht, and who can't hear anything over their own ego. That is where the fault resides.