Ask HN: Which is the oldest software alive still in 0.x, used by many?

51 points by arunc ↗ HN
From what I have known and used, PuTTY seems to be the oldest software still in beta (0.79 at the moment), with it's first version released sometime in 1998, not sure about the exact date.

PuTTY's first Git commit shows "Fri Jan 8 13:02:13 1999" for beta 0.43, from r11 of SVN.

https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

52 comments

[ 4.0 ms ] story [ 374 ms ] thread
Keep in mind that not all projects use the semantic versioning we typically see (ie major.minor.patch).

There’s a type of versioning called “ZeroVer” where the version is -never- to exceed 0.x.x.

https://0ver.org/

According to that site, the software ASCEND (0.9.8) was first released over 45 years ago.

TeX converges to pi

It's currently at version 3.141592653

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

And the related Metafont converges to e.

Knuth for the transcendental win!

It would be a transcendental tragedy, because those versions only truly become transcendental when Knuth dies. :(
Knuth also has his own definition of bug, limited to mathematical incorrectness.
I have never seen that site before, but taking a look right now, my conclusion is that it is satire.
The site appears to be quite tongue in cheek however the table of 0.x projects looks like quite the valid reference.
True but that site is satire https://0ver.org/about.html
Not the first joke to be taken for real and being used by far too many people because they find it useful.
> used by far too many people because they find it useful.

I don't think that's true.

Well, it seems to be true. This thread is the best example.
Inability to release 1.0 of any software is driven by indecision and/or a lack of confidence in the stability of your product. Nothing more. If you’re decisive about meaningful features on realistic milestones and confident that you have a stable system, there is no reason to not 1.0.
Interesting to know that zer0ver exists! Do you know how they claim it to be the most popular versioning scheme?
It's probably true if you assume every "first commit" project starts at 0.0.1. I don't think they put much thought into justifying it though.
I was going to say aspell (currently at 0.68 up from 0.10 on 1998-09-12) http://aspell.net/man-html/ChangeLog.html but of course the "used by many" is the debatable part of your question

Even PuTTY I would guess is not "by many" but who am I to say not having been locked to Windows for ages

gettext at 0.22 up from 0.7.1 on 1995-07-04 would certainly be in the short list https://git.savannah.gnu.org/gitweb/?p=gettext.git;a=blob;f=...

PuTTY is surprisingly popular among hardware hackers, for quickly testing serial devices.
This. It's invaluable for checking serial ports on Windows or when WSL otherwise butchers serial data coming through Windows ports.
Putty is my default go to and everyone i work with too.. i couldn't even imagine anyone worth their salt not knowing it, let alone using it.

Edit: default go to on Windows

I am lazy and just use this several times a day:

  /usr/bin/screen /dev/tty.usbserial-blah
It’s been a while but I think this works in WSL, too.

I am worth my salt.

Let me get this, (win perspective for now), I need to open a bash wsl, then screen session to the tty panel? - with a config (con type. port, other vars) maybe.

Or open putty and retain my saved sessions ?

I believe you are worth your salt, I always like the use of screen, but surely you can see for win, putty is just easier ?

Edit : wsl being a lot more mem required than putTy

It depends. I spend all my time in shells so it’s easier to run screen.

Others spend more time and have more comfort with the GUI and they might choose PuTTY.

I do use PuTTY frequently, for oddball serial connections and when I want reliable logging with no fuss.

I just use the ssh built into my IDE. Admittedly I'm pretty low sodium though.
MAME - the truly excellent everything emulator - is version 0.258, having first been released in 1997.
MAME (and many of the other projects listed in other comments here) developers have gone on the record of saying 1.0 would be a fully accurate emulator of all arcade machines (before they added general machines and consoles) and that they will probably never achieve that.
Whenever I see software under v1, I see developers who are afraid of commitment.

There’s nothing special about v1, there’s no reason to keep a useless zero for a decade. At some point you gotta realize you’ve been using the minor version as a major so that v0.39.0 is just v39.0.

Apple recently realized the same thing when they stopped releasing 10.x versions and just did 11.0 after 20 years.

The Apple case seems way more about OS X being the well advertised brand of the operating system vs the idea that it was because of superstition about incrementing the major version number.
OS X was a huge breaking change from MacOS 9. Advertising OS 11 would have caused many people to wonder if all their software was about to break.

Which is exactly what happened when Big Sur was released.

Apple using semantic versioning is a huge win.

Apple don’t use semantic versioning. macOS 10.15 broke all 32-bit software. If that’s not an incompatible version update, I don’t know what is.
There's nothing special about v1 either. So you can just increment the minor version and would have the same effect as if you were just using the major version. As you said yourself.

As long as releases happen I don't think you can say the devs are afraid of commitment.

Note that this only applies to self contained software. For libraries SemVer makes sense but other types of software usually don't need it.

For my projects I usually just show the major version to the common user and internally SemVer is used for debug information and compatibility signalling (where this applies).

Does PuTTY identify itself as Beta? I did a sitewide search with no results [0].

In general I wouldn't read too much into the specific versions that projects choose. Some of these long-running 0.x projects may as well be using single-part version numbers, they probably just keep the 0 around because it's a tradition.

[0] https://www.google.com/search?q=site%3Awww.chiark.greenend.o...

I don't think so. Applications don't usually follow semantic versioning. Heck, semantic versioning wasn't really a thing back when putty started.
Anyone feel that the version number isn't really important?

I didn't know 1.x supported to be stable version until very recently

I think it matters. Most people still follow common sense rules with it, e.g. bellow 0 is expected beta, minor version changes don't break stuff etc.
(comment deleted)
It matters a lot for libraries. It matters much less for applications.
Gnu hurd
Gnu Hurd fails the "used by many" clause.
I'm working on a GNU/Hurd hosting service, maybe that will help it gain traction. Preview:

https://tryhurd.gexp.no

I joke about Gnu Hurd, but it would be great to get actual numbers. Ubuntu used to do this thing where you could put a virtual pin in a virtual map when you installed it to build a heatmap of where users were. It was completely optional at the time (hopefully it still is?) But I think it was enough for Canonical to get a order of magnitude estimate for how many Ubuntu systems were out there.
Not played much, but kind of interesting - I nominate NetPanzer! Open sourced in 1999 or so, is still technically in beta at 0.9.x

I just got the last maintainer to put the code up on GH [0] and have been working on the next release, hopefully later this year. I also put some servers up and setup bots.

Sadly a couple months ago the guy emailed me saying he was very sick (he's been working on the game off and on for like 15 years and he only really writes C, I have no idea how old this guy is). He hasn't emailed me back, so I don't know if he's still alive. :( I may have to fork the game (I've also been making progress on a WASM version to play in the browser).

[0] https://github.com/netpanzer/netpanzer/tree/dev

It's not that old, but FastAPI is quite widely used and is still 0.x
Not so old (afaik, released in 2015) but React Native also is still 0.72
Grepping my dpkg list for packages which start with \s0. is fun.

aspell (currently 0.60.8) has a release note for 0.11 on Sept 12, 1998

gettext began in 1994 and is currently v0.21-11

tftp is 0.17-25 and dates back to 1981

telnet is 0.17, and its origins date back to 1969!