25 votes

The beauty of finished software

16 comments

  1. [5]
    LetterCounter
    Link
    I like the post, but it is lacking examples and doesn't really go into the depth I'd hope for.

    I like the post, but it is lacking examples and doesn't really go into the depth I'd hope for.

    21 votes
    1. [4]
      Sodliddesu
      Link Parent
      I hear you. One word processor is hardly a legacy of all the good that comes from 'Finished' though I do know people who continue to use older versions of Sony Vegas or the old CS releases because...

      I hear you. One word processor is hardly a legacy of all the good that comes from 'Finished' though I do know people who continue to use older versions of Sony Vegas or the old CS releases because their workspace is set up and they don't need any of the fancy features for their workflow. Though I can't really think of any other finished software that wasn't for the NES.

      6 votes
      1. [3]
        rish
        Link Parent
        That only one example make me feel the author is talking about - the version of a software user is most comfortable to use and not actually a finished software. WordStar 4.0 was not the final...

        That only one example make me feel the author is talking about - the version of a software user is most comfortable to use and not actually a finished software.

        WordStar 4.0 was not the final version of the program, three new editions were released after that. G.R.R. Martin must have been using 4.0 for a long time to know how it all works. For him it's a finished product maybe because he doesn't like autocorrect and spell check in modern word processors. It is trivial to disable them though it's extra step and a whole new UI to figure out.

        8 votes
        1. Zorind
          Link Parent
          I think there’s also a difference between new “release versions” of a product as opposed to cloud-based “always updating” software. Like Photoshop CS5 (which I own, and sure - it had patches, but...

          I think there’s also a difference between new “release versions” of a product as opposed to cloud-based “always updating” software.

          Like Photoshop CS5 (which I own, and sure - it had patches, but no major updates. And I bought it once and still can use it). As opposed to the modern “creative cloud” license that’s a subscription based model.

          But that’s not necessarily the same arguments for or against “final versions” as the article.

          7 votes
        2. PuddleOfKittens
          Link Parent
          IMO it's a finished product if the user is 100% satisfied with the product and doesn't care enough to look at a newer version. With some caveats, like that it only applies to that user and not to...

          IMO it's a finished product if the user is 100% satisfied with the product and doesn't care enough to look at a newer version.

          With some caveats, like that it only applies to that user and not to all users, and that it's possible that user just has zero faith in the developers' ability to improve the product. Like, anyone who owns Photoshop CS5 might have some nitpicks but don't trust Adobe for all the well-known reasons.

          1 vote
  2. [9]
    DawnPaladin
    Link
    I work in the world of web software, which unfortunately is never truly finished. Anything on the internet will be attacked by hackers until the end of time, so if it's more complicated than...

    I work in the world of web software, which unfortunately is never truly finished. Anything on the internet will be attacked by hackers until the end of time, so if it's more complicated than static HTML (which you can't get paid to write), you have to keep up with the ecosystem or your code will eventually stop working. (Counterexamples?) It's sad, but it comes with the territory.

    10 votes
    1. [5]
      FluffyKittens
      Link Parent
      At risk of getting rotten fruit thrown at me here, writing for/running code with PHP5 isn't that dangerous, especially if paranoid about trusting user input....

      Counterexamples?

      At risk of getting rotten fruit thrown at me here, writing for/running code with PHP5 isn't that dangerous, especially if paranoid about trusting user input.

      https://www.cvedetails.com/version/1334572/PHP-PHP-5.6.40.html

      There's also a part of my brain that's convinced CGI bash scripts are the highest form of webdev, precisely because they'll never go stale and anyone greybeard enough to write them probably knows the pitfalls. Only half joking.

      6 votes
      1. [4]
        tauon
        (edited )
        Link Parent
        … the… what now? (Asking as a person under 30 years of age.) I have heard of CGI, though in a (what I believe to be) different context/meaning, and I have certainly heard of and used bash, though...

        There’s also a part of my brain that’s convinced CGI bash scripts are the highest form of webdev

        … the… what now?

        (Asking as a person under 30 years of age.)

        I have heard of CGI, though in a (what I believe to be) different context/meaning, and I have certainly heard of and used bash, though never in a web context before.
        This sounds, uh, intriguing at the very least, but horrifying is probably also appropriate to use (?)

        Would you mind expanding upon that term a bit?

        2 votes
        1. Akir
          Link Parent
          CGI is short for Common Gateway Interface. It's basically a way for a webserver to get the data it sends to clients by running a program instead of reading from a file.

          CGI is short for Common Gateway Interface. It's basically a way for a webserver to get the data it sends to clients by running a program instead of reading from a file.

          2 votes
        2. [2]
          FluffyKittens
          (edited )
          Link Parent
          Lol, I'm under 30 myself; I just have a soft spot for hacky software. Akir's summary is pretty good: CGI is an old-school scheme where requests to the server get handed off to a program that...

          Lol, I'm under 30 myself; I just have a soft spot for hacky software.

          Akir's summary is pretty good: CGI is an old-school scheme where requests to the server get handed off to a program that accepts form data via stdin, then emits HTTP headers and HTML page content to stdout.

          Python's CGI module is a pretty good intro tutorial/explainer:

          https://docs.python.org/3/library/cgi.html

          And the easiest way to run CGI scripts in general is busybox's httpd, which is included on Debian + many other distros by default:

          https://en.wikipedia.org/wiki/BusyBox
          https://justsomedevnotes.com/2020/11/30/linux-busybox-http-server/

          It's remarkably easy to throw together a basic webapp with CGI in a few minutes, and a worthwhile exercise if it strikes your fancy. Not exceptionally dangerous either as long as you only listen on localhost.

          1 vote
          1. tauon
            Link Parent
            Thank you both for the explanations. Wow, I never knew BusyBox could do that! I thought it was mostly there to provide a single small binary of the more basic utilities on systems with really low...

            Thank you both for the explanations.

            Wow, I never knew BusyBox could do that! I thought it was mostly there to provide a single small binary of the more basic utilities on systems with really low specs/requirements.

            1 vote
    2. [2]
      xk3
      (edited )
      Link Parent
      I would argue that static HTML can have beauty. I'm not talking about CSS. Rather how an HTML document which is written, edited, and manicured well can reach perfection. Perfection is achieved not...

      I would argue that static HTML can have beauty. I'm not talking about CSS. Rather how an HTML document which is written, edited, and manicured well can reach perfection.

      Perfection is achieved not when you've squashed all bugs and added all the features which could be brainstormed. Perfection is achieved when you have a limited set of features which work well enough and everything extraneous has been eliminated. It is usually pretty obvious when HTML documents have been refined over time.

      Wikipedia is a good example of this at least in terms of large sample size with consistent quality. Generally, after a certain point articles stabilize where nothing can really be added or removed from an article. It's like a bonsai tree. Documents written by one person can be similar--but perfection is only achieved through constant effort to re-visit prior work and improve it.

      80% of the value comes from 20% of the features. Prioritizing the vital 20% leads to simpler, more usable products.

      I often see webapps that have complicated functionality, hundreds of animations, and millions of CSS classes; and yet, it is often the case that the purpose of the website would be better solved as a simple FAQ document with an attached spreadsheet, HTML form, or CSV download. People often want that anyway. Not to mention making sites simple documents makes them more durable (easier for robots to archive it) and more accessible (screen readers, etc).

      Not everything can be a simple document, but 80% of React et al. websites that I've seen could easily be HTML5 with no JavaScript.

      which you can't get paid to write

      There are plenty of people that are paid to make websites. Customers often have no idea whether you are using the latest JS shadow DOM framework abomination or whether you are using Bootstrap and jQuery abomination. Technical Writers get paid rather well even in this post-GenAI world.

      4 votes
      1. DawnPaladin
        Link Parent
        I definitely agree that static HTML can be beautiful! It's very rewarding to write, and it can serve a surprisingly wide variety of functions. And I'm glad you've been able to find stable work...

        I definitely agree that static HTML can be beautiful! It's very rewarding to write, and it can serve a surprisingly wide variety of functions. And I'm glad you've been able to find stable work writing it - that's good news!

        3 votes
    3. tanglisha
      Link Parent
      Even static html can be a path to your server. The only thing keeping me from being depressed about it is learning to do that stuff myself, then figuring out how to stop myself.

      Even static html can be a path to your server. The only thing keeping me from being depressed about it is learning to do that stuff myself, then figuring out how to stop myself.

      2 votes
  3. [2]
    arqalite
    Link
    Finished software only applies to utilities and single-purpose applications. Anything else needs to be constantly updated, at least with security fixes.

    Finished software only applies to utilities and single-purpose applications. Anything else needs to be constantly updated, at least with security fixes.

    5 votes
    1. Grumble4681
      Link Parent
      Any software could have some way of being exploited, with varying degrees of consequence. A single purpose application could as well. I don't think it's really an adequate response to what is...

      Any software could have some way of being exploited, with varying degrees of consequence. A single purpose application could as well. I don't think it's really an adequate response to what is stated in this blog post. It's not as though George RR Martin chose to use Wordstar 4.0 because he knew it was exploit-free.

      From a user perspective, a finished application could be considered one that you don't have to constantly adapt to. In general, security fixes are not something that forces a user to adapt to anything, they can happen behind the scenes without anyone even noticing.

      Finished software is software that’s not expected to change, and that’s a feature! You can rely on it to do some real work.

      Once you get used to the software, once the software works for you, you don’t need to learn anything new; the interface will exactly be the same, and all your files will stay relevant. No migrations, no new payments, no new changes.

      I think this is the core of what the blog writer's belief of "finished software" is. It doesn't state that the software is flawless, bug free or otherwise, it just states it doesn't demand change from the user. The user may become accustomed to certain flaws in the software, yet it's still "finished". In this way, even software with security flaws can be "finished", but not necessarily wise to use.

      5 votes