I'm talking about programs that can't be improved no matter what. They do exactly what they're supposed to and will never be changed.

It'll probably have to be something small, like cd or pwd, but does such a program exist?

all 92 comments

sorted by: hot top controversial new old
[–] 46 points 8 months ago (2 children)
  • [–] 90 points 8 months ago (1 child)

    Honestly, it all starts going to shite after "hello world."

  • source
  • hideshow 1 child comment
  • [–] 39 points 8 months ago

    You may be interested by this https://en.wikipedia.org/wiki/Formal_verification.

    Prominent examples of verified software systems include the CompCert verified C compiler and the seL4 high-assurance operating system kernel.

  • source
  • [–] 39 points 8 months ago

    Automotive engine control computers.

    They just work, for decades and millions of miles.

  • source
  • [–] 26 points 8 months ago (1 child)

    There was a moment in time where maybe it was qmail:

    https://en.wikipedia.org/wiki/Qmail

    Ten years after the launch of qmail 1.0, and at a time when more than a million of the Internet’s SMTP servers ran either qmail or netqmail, only four known bugs had been found in the qmail 1.0 releases, and no security issues.

    More on how it was accomplished:

    https://blog.acolyer.org/2018/01/17/some-thoughts-on-security-after-ten-years-of-qmail-1-0/

  • source
  • hideshow 1 child comment
  • [–] 3 points 8 months ago*

    Djbdns was excellent too, and ezmlm,.in fact all DJB's software was quality for its single purpose. The world moved on though, and you had to have your basic Internet servers just...do more

  • source
  • parent
  • [–] 25 points 8 months ago* (2 children)

    I wanted to say VLC because to me, it's the gold standard of fully working open-source software that just destroys the commercial competitors.

    But it's not perfect only because society changes. New video formats forces VLC and open-source devs to adapt. Bigger video and new tech specs require VLC to update. If it wasn't for all those external needs, VLC would be perfect.

    Did I also mentioned the many times rich companies wanted to buy VLC and they laughed?

  • source
  • hideshow 2 child comments
  • [–] 24 points 8 months ago (2 children)
  • [–] 16 points 8 months ago* (last edited 8 months ago)

    Is there a perfect building?

    Probably not, since they exist in an environment — which is constantly changing — and are used by people — whose needs are constantly changing.

    The same is true of software. Yes, programs consist of math which has objective qualities. But in order to execute in the physical world, they have to make certain assumptions which can always be invalidated.

    Consider fast inverse sqrt: maybe perfect, for the time, for specific uses, on specific hardware? Probably not perfect for today.

  • source
  • [–] 15 points 8 months ago (4 children)

    Notepad.exe, pre-windows 11. Now it's something else entirely but still uses the name :(

  • source
  • hideshow 4 child comments
  • [–] 25 points 8 months ago (5 children)

    No; since every user defines the perfect program differently. Which should be the default behaviour(s)?

  • source
  • hideshow 5 child comments
  • [–] 10 points 8 months ago (3 children)

    You cannot criticize a good knife by asking why it's not a hammer.

  • source
  • parent
  • hideshow 3 child comments
  • [–] 8 points 8 months ago (1 child)

    But I can critisize it for having only one sharp edge instead of 2. Or for being too short or too long. Or for having a handle that’s not shaped well for my hand. (That last metaphor is probably the correct one for the sentiment I’m going for.)

  • source
  • parent
  • hideshow 1 child comment
  • [–] 9 points 8 months ago (1 child)

    TeX?

    Development is considered to be complete, and the version numbering is just adding a digit of pi. Last change was 5 years ago.

  • source
  • hideshow 1 child comment
  • [–] 9 points 8 months ago (1 child)
  • [–] 8 points 8 months ago (4 children)

    I would have said Windows notepad but they screwed the pooch on that one and changed it.

  • source
  • hideshow 4 child comments
  • [–] 3 points 8 months ago (2 children)
  • [–] 8 points 8 months ago
    [–] 8 points 8 months ago

    Yeah you probably can't do to much more to pwd or yes or whatever (yeah I know about the silly optimisations). I think once you get much beyond that there are always more features you can add. Even for something like cd, people have made fancier versions with fuzzy matching and so on.

  • source
  • [–] 7 points 8 months ago (2 children)

    I don't think such thing as perfect software exist, only abandoned software. If the environment changes, then the software needs changes too.

  • source
  • hideshow 2 child comments
  • [–] 13 points 8 months ago (3 children)

    TeX. Best documented source, and last bug found was 12 years ago.

  • source
  • hideshow 3 child comments
  • [–] 9 points 8 months ago* (last edited 8 months ago) (2 children)

    The 2021 release of Tex included several bug-fixes, so not quite 12 years:

    https://tug.org/texmfbug/tuneup21bugs.html

    See also the following list of potential bugs, that may be included in the planned 2029 release of Tex:

    https://tug.org/texmfbug/newbug.html

    That said, Tex is still an impressive piece of software

  • source
  • parent
  • hideshow 2 child comments
  • [–] 6 points 8 months ago

    For software to be perfect, can not be improved no matter what, you'd have to define a very specific and narrow scope and evaluate against that.

    Environments change, text and data encoding and content changes, forms and protocol of input and output changes, opportunities and wishes to integrate or extend change.

    pwd seems simple enough. cd I would already say no, with opportunities to remember folders, support globbing, fuzzy matching, history, virtual filesystems. Many of those depend on the environment you're in. Typically, shells handle globbing. There's alternative cd tools that do fuzzy matching and history, and virtual filesystems are usually abstracted away. But things change. And I would certainly like an interactive and fuzzy cd.

    Now, if you define it's scope, you can say: "All that other stuff is out of scope. It's perfect within it's defined target scope." But I don't know if that's what you're looking for? It certainly doesn't mean it can't be improved no matter what.

  • source
  • [–] 23 points 8 months ago (1 child)
  • [–] 5 points 8 months ago

    Pretty subjective but if you're looking for do one thing and do it well I'd go with some of the GNU core utils like you mentioned, vlc & ffmpeg for AV media, and sl for being a silly way to handle ls typos

  • source
  • [–] 5 points 8 months ago (1 child)

    A program that just prints "Hello World" to the screen and quits.

  • source
  • hideshow 1 child comment
  • [–] 8 points 8 months ago (5 children)
  • [–] 7 points 8 months ago* (1 child)

    ugh, no way. It might do a fine job with typesetting, but the user experience is utterly awful and that's very unlikely to change because of design choices over 40+ years. If you don't think so, give typst a real try.

  • source
  • parent
  • hideshow 1 child comment
  • [–] 4 points 8 months ago (1 child)
  • [+] 3 points 8 months ago* (last edited 6 months ago) (1 child)
  • [–] 4 points 8 months ago
    [–] 4 points 8 months ago

    Nope.

    I've thought about this before, and it gave me an interesting thought process: AI can't ever be good at doing a large project.

    It has a hard limit. Not only is it not as good as us, the best it can ever do is as good as us, and we're not even good at it. That's all it can be trained on! Our garbage code lol

  • source
  • [–] 6 points 8 months ago (1 child)
  • [–] 2 points 8 months ago

    Winamp! It probably had some bugs or security issues but functional it was perfect imo.

  • source
  • [–] 3 points 8 months ago

    Depends on your definition of "perfect" and "improved". Is it perfect because it does one fundamental thing really well? Is it improved by adding new features?

    I think what you're meaning is, is there a program that is ubiquitous (or at least works anywhere), will basically remain used forever because it does a fundamental job that will always need to be done, and it does that job in the most straightforward way possible that can't be made any algorithmically simpler, faster, etc. Probably plenty, honestly. Bitwise operations, arithmetic, fetch/store, etc. Though ubiquity/working anywhere gets rarer the higher you go from hardware. Even your suggestion of cd, for example, has to interface with an OS's file system, of which there are several common types. What it's doing is simple in concept, but will always be dependent on other programs for the file system.

  • source
  • [–] 3 points 8 months ago (1 child)

    mcmaster.com is pretty close...

  • source
  • hideshow 1 child comment
  • [–] 3 points 8 months ago

    I would say git, tex, sqlite, Clojure, Steel banks common lisp are some of the candidates.

    Perfect doesn't meen "not any bugs fixes or features needed" to me. I can't really define what it means to me...

  • source
  • [–] 4 points 8 months ago*

    Windows event viewer... You open it, go to the toilet, to the shower, take a coffee, ... and only 2 more minutes later, it shows you the entries...

    It's so perfect, they never had to improve it in decades.

    /s

  • source
  • [–] 2 points 8 months ago

    Pkzip version 2.04g

  • source
  • [–] 2 points 8 months ago* (1 child)
    load more comments (1 reply)
    [–] 3 points 8 months ago

    Pretty certain cd and pwd have changed over the years. The kernel hasn't remained the same so the commands that use it wont and now we have faster methods to do various things like getting file data the commands that depend on it will change. Less quickly than something that is still gaining features but bit rot is a very real effect since every single part of software is in constant flux.

  • source
  • [–] 1 point 8 months ago (1 child)
  • [–] 1 point 8 months ago
    [–] 1 point 8 months ago

    Some Quines maybe?

  • source
  • [–] 1 point 7 months ago

    Ericsson's AXD 301 has achieved a NINE nines reliability (yes, you read that right, 99.9999999%)!

  • source
  • [–] 1 point 8 months ago

    Anything I've ever written....

    ..JK I suck ass

  • source
  • [–] 1 point 8 months ago (3 children)
  • [–] 1 point 8 months ago

    Some time ago I used haproxy, a software load balancer. I remember that I found an issue which was that it could start with an empty configuration or something similar. When I reached the owner repo it was stated that there were found nu bugs for years of heavy use.

  • source
  • [–] 0 points 8 months ago (6 children)

    Many might disagree, but imo vim is the perfect text editor for a command line interface. It's just so simpel and does exactly what I need it to do without doing anything unnecessary

  • source
  • hideshow 6 child comments
  • [–] 8 points 8 months ago (2 children)

    Vim has some pretty messy design... Starting at some of the action quirks and ending at vim9script

  • source
  • parent
  • hideshow 2 child comments
  • [–] 0 points 8 months ago (1 child)

    Never heard of vim9script, what is it. I must admit I don't use it for a lot of super complicated tasks just regular yaml and file editing. At for that it's perfect imo

  • source
  • parent
  • hideshow 1 child comment
  • [–] 4 points 8 months ago (2 children)

    neovim is a drop in replacement for vim that fixes the issues that bother me with vim

  • source
  • parent
  • hideshow 2 child comments