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?
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?
98 Comments
portifornia@piefed.social · 89 pts · 193d
Honestly, it all starts going to shite after "hello world."
homoludens@feddit.org · 14 pts · 193d
Shouldn't it be "Hello world."?
SorteKanin@feddit.dk · 21 pts · 193d
No. "Hello, world!" or you're doing it wrong.
thingsiplay@lemmy.ml · 1 pts · 193d
What does perfect hello world even mean? It can be realized in many ways and none is the best way.
degen@midwest.social · 3 pts · 193d
Computers can't even greet you in the real world. Its like some kind of sick joke.
"Dance, clanker! Dance!"
Onomatopoeia@lemmy.cafe · 5 pts · 193d
Hahahahah
jokro@feddit.org · 0 pts · 193d
cecilkorik@lemmy.ca · 46 pts · 194d
The flight software for the Apollo moonshots.
dgriffith@aussie.zone · 12 pts · 193d
It was fault tolerant but I wouldn't say it was perfect. There were plenty of "known issues", and the fix in production was basically, "don't do that".
SlurpingPus@lemmy.world · 3 pts · 193d
It's on Github and has several PRs.
oce@jlai.lu · 40 pts · 193d
You may be interested by this https://en.wikipedia.org/wiki/Formal_verification.
Onomatopoeia@lemmy.cafe · 36 pts · 193d
Automotive engine control computers.
They just work, for decades and millions of miles.
IanTwenty@piefed.social · 27 pts · 193d
There was a moment in time where maybe it was qmail:
https://en.wikipedia.org/wiki/Qmail
More on how it was accomplished:
https://blog.acolyer.org/2018/01/17/some-thoughts-on-security-after-ten-years-of-qmail-1-0/
kalpol@lemmy.ca · 3 pts · 193d
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
bleistift2@sopuli.xyz · 26 pts · 194d
No; since every user defines the perfect program differently. Which should be the default behaviour(s)?
treadful@lemmy.zip · 4 pts · 193d
Software is always an ongoing conversation.
VitoRobles@lemmy.today · 25 pts · 193d
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?
luridness@lemmy.ml · 3 pts · 192d
Personally I prefer MPV but yeah both just wrap around FFMPEG
WolfLink@sh.itjust.works · 3 pts · 192d
It’s worth noting that most commercial multimedia software is also more or less a wrapper around ffmpeg
markz@suppo.fi · 24 pts · 194d
TempleOS
markz@suppo.fi · 11 pts · 194d
The dev of left-pad made it perfect by removing it.
lIlIlIlIlIlIl@lemmy.world · 23 pts · 193d
Of course: https://github.com/kelseyhightower/nocode
theherk@lemmy.world · 4 pts · 193d
Ha. I still have an open PR on that.
BrianTheeBiscuiteer@lemmy.world · 1 pts · 193d
Perfect code right here:
kibiz0r@midwest.social · 16 pts · 193d
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.
L0rdMathias@sh.itjust.works · 15 pts · 194d
Notepad.exe, pre-windows 11. Now it's something else entirely but still uses the name :(
FizzyOrange@programming.dev · 25 pts · 194d
Nah it was eternally annoying that it didn't support Unix line endings. Also there are clearly a ton of basic features that people want from lightweight text editors.
edfloreshz@lemmy.ml · 17 pts · 194d
Notepad did what it needed to do, but it could be improved in a lot of ways
SaveTheTuaHawk@lemmy.ca · 2 pts · 193d
I kinda love snipping tool.
Treczoks@lemmy.world · 14 pts · 193d
TeX. Best documented source, and last bug found was 12 years ago.
fruitcantfly@programming.dev · 10 pts · 193d
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
Treczoks@lemmy.world · 1 pts · 193d
Thanks for the update, I somehow missed that.
fruitcantfly@programming.dev · 3 pts · 193d
To be honest, they didn’t make it easy to find
BodePlotHole@lemmy.world · 10 pts · 193d
7zip?
jsnfwlr@lemmy.ml · 4 pts · 193d
7zip has had few CVEs and vulnerabilities
Blackmist@feddit.uk · 9 pts · 192d
TeX?
Development is considered to be complete, and the version numbering is just adding a digit of pi. Last change was 5 years ago.
ehxor@lemmy.ca · 2 pts · 191d
This was going to be my point. The idea that as the software slowly makes new releases the version number more and more closely approximates Pi
Bookmeat@lemmy.world · 8 pts · 194d
LaTeX
bleistift2@sopuli.xyz · 8 pts · 193d
Error: Too many unprocessed floats.
eager_eagle@lemmy.world · 8 pts · 193d
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.
carmo55@lemmy.zip · 1 pts · 193d
Semantic round brackets make typst impossible to use for me. If it had curlies instead it would be great.
SinTan1729@programming.dev · 3 pts · 193d
Not sure about LaTeX, but TeX is widely considered to be almost "perfect" code.
grue@lemmy.world · 2 pts · 193d
TeX will be perfect after Knuth dies and the version number is incremented to π.
irelephant@lemmy.dbzer0.com · 8 pts · 193d
wget.
FizzyOrange@programming.dev · 8 pts · 194d
Yeah you probably can't do to much more to
pwdoryesor 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 likecd, people have made fancier versions with fuzzy matching and so on.mushroommunk@lemmy.today · 7 pts · 194d
I would have said Windows notepad but they screwed the pooch on that one and changed it.
originalucifer@moist.catsweat.com · 3 pts · 193d
notepad++
ieGod@lemmy.zip · 7 pts · 193d
They recently experienced an self-update hijack. Plenty of room for improvement.
BlameThePeacock@lemmy.ca · 4 pts · 193d
That was a server side compromise, but the update function could have detected it with more security features so you're still right.
lemmydividebyzero@reddthat.com · 2 pts · 192d
Actually had a security vulnerability recently.
https://www.pcworld.com/article/3058647/windows-notepad-is-now-complex-enough-to-have-a-serious-security-flaw.html
thingsiplay@lemmy.ml · 7 pts · 193d
I don't think such thing as perfect software exist, only abandoned software. If the environment changes, then the software needs changes too.
MonkderVierte@lemmy.zip · 3 pts · 193d
Or a new software.
thingsiplay@lemmy.ml · 5 pts · 193d
Or a rewrite in Rust.
MonkderVierte@lemmy.zip · 1 pts · 193d
panda_abyss@lemmy.ca · 7 pts · 194d
Ski Free
Kissaki@programming.dev · 6 pts · 193d
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.
pwdseems simple enough.cdI 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 alternativecdtools 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.
ne0phyte@feddit.org · 3 pts · 193d
If you just need the functionality then fzf does (among other things) exactly that. Interactive fuzzy cd. If you use the shell bindings you can do
cd foo/bar/**<tab>to get a recursive fuzzy matching or you can do alt+c to immediately find any subdirectory and directly cd into it upon pressing enter. You can also use Ctrl+T to find and insert a path into the prompt.Kissaki@programming.dev · 1 pts · 192d
Thanks for the suggestion. As a first step, I set it up in Nushell with a
ctrl+tshortcut:Maybe I will look into more. :) I've known about
fzfbut I guess never gotten around to fully evaluating and integrating it.Nushell supports fuzzy completions, globbing, and "menus" (TUI) natively. Still, the TUI aspect and possibly other forms of integrations seem like they could be worthwhile or useful as extensions.
Gork@sopuli.xyz · 5 pts · 193d
WinRAR free version
fruitcantfly@programming.dev · 2 pts · 193d
While WinRAR is pretty great, it has also had several severe security vulnerabilities over the years, including one last year:
https://en.wikipedia.org/wiki/WinRAR#Security
Which isn’t quite what you’d expect from “perfect” software
whotookkarl@lemmy.dbzer0.com · 5 pts · 193d
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
antimidas@sopuli.xyz · 4 pts · 192d
Ed. It's the standard text editor.
https://www.gnu.org/fun/jokes/ed-msg.html
technocrit@lemmy.dbzer0.com · 4 pts · 193d
Logic gates?
fruitcantfly@programming.dev · 1 pts · 193d
Logic gates are hardware, not software
Kolanaki@pawb.social · 4 pts · 193d
A program that just prints "Hello World" to the screen and quits.
Kissaki@programming.dev · 5 pts · 193d
…that supports Unicode? Which encodings? Or only ASCII? Unicode continues to change.
I wouldn't be very confident that it won't change or offer reasonable opportunities for improvement.
kryptonianCodeMonkey@lemmy.world · 4 pts · 193d
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.
lemmydividebyzero@reddthat.com · 4 pts · 192d
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
KindaABigDyl@programming.dev · 4 pts · 193d
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
BrightCandle@lemmy.world · 3 pts · 193d
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.
somegeek@programming.dev · 3 pts · 192d
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...
oyo@lemmy.zip · 3 pts · 193d
mcmaster.com is pretty close...
Kissaki@programming.dev · 1 pts · 193d
Do you exclude inventory management from that "will never change" so that that's only about software?
I imagine there will be new products to be listed.
ellen@piefed.social · 3 pts · 193d
Winamp! It probably had some bugs or security issues but functional it was perfect imo.
arcine@jlai.lu · 3 pts · 193d
Kissaki@programming.dev · 3 pts · 193d
Your sentence abruptly ends in a backtick - did you mean to include something more? Maybe “
wc”?ThetaDecay@lemmy.world · 2 pts · 193d
Pkzip version 2.04g
thatsnomayo@lemmy.ml · 2 pts · 193d
emacs can only be improved no matter what but it should count
ExperimentalGuy@programming.dev · 2 pts · 192d
As a vim user, I agree that it can only be improved.
MITM0@lemmy.world · 2 pts · 193d
Does IRC count ?
VitoRobles@lemmy.today · 1 pts · 193d
Didn't IRC have major insecurity issues?
I can't remember why IRC died.
vaionko@sopuli.xyz · 1 pts · 192d
It never died
Kissaki@programming.dev · 1 pts · 193d
The original one? Because there's numerous extensions to it. I wouldn't be confident it won't evolve further.
ieGod@lemmy.zip · 2 pts · 193d
irelephant@lemmy.dbzer0.com · 2 pts · 193d
Ehhh, for curl there is a few features they're working on (like better websocket support), and I'm sure there's lots of optimizations that could be made, given how complex a project it is..
beeng@discuss.tchncs.de · 1 pts · 193d
Some Quines maybe?
kalpol@lemmy.ca · 1 pts · 193d
Htop
arthur@lemmy.zip · 3 pts · 192d
Btop?
myrrh@ttrpg.network · 1 pts · 192d
SlIdE42@jlai.lu · 1 pts · 166d
Ericsson's AXD 301 has achieved a NINE nines reliability (yes, you read that right, 99.9999999%)!
entwine@programming.dev · 1 pts · 193d
yes
Skullgrid@lemmy.world · 1 pts · 194d
thedeadwalking4242@lemmy.world · 1 pts · 192d
Anything I've ever written....
..JK I suck ass
padreati@lemmy.zip · 1 pts · 192d
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.
fletcher_bosom@lemmy.world · 0 pts · 193d
Sephtis@lemmy.world · 0 pts · 193d
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
Sivecano@lemmy.dbzer0.com · 8 pts · 193d
Vim has some pretty messy design... Starting at some of the action quirks and ending at vim9script
Sephtis@lemmy.world · -1 pts · 193d
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
Sivecano@lemmy.dbzer0.com · 2 pts · 193d
Vim9-script is a bespoke DSL introduced in vim 9 which was to replace vimscript (the old config language) It was recieved as a bit wacky with its support for classes among other things.
karlhungus@lemmy.ca · 4 pts · 193d
neovim is a drop in replacement for vim that fixes the issues that bother me with vim
Sephtis@lemmy.world · -1 pts · 193d
Might install that then in the future, if I remember it. Sudo apt-get install vim is just so ingrained in muscle memory
karlhungus@lemmy.ca · 2 pts · 192d
not sure why your getting downvoted
who@feddit.org · 2 pts · 193d
Nit: vim is a visual editor. It has a text interface, but it's not a command line interface.
An example of a command line text editor would be sed.
Sephtis@lemmy.world · 0 pts · 193d
I know it isn't a cli but a text editor that you can use in a terminal, if there's any other difference i got wrong feel free to correct me