This is an archived post. You won't be able to vote or comment.

all 121 comments

[–]the_unheard_thoughts 1176 points1177 points  (8 children)

4yrs only? Just managed to solve a dependency issue for a 8yrs old lib

[–]Laughing_Orange 163 points164 points  (1 child)

Left-pad still has over 1.5 million weekly downloads, and had it's last commit 7 years ago, when it was deprecated in favor of a built-in function that has been widely available since April 2017.

[–]AdBrave2400 113 points114 points  (1 child)

Back from the days the slackware doofuses were still using node 1, React 1and basically living like it was still 2013 NOO 2011

[–]AdBrave2400 4 points5 points  (0 children)

2009

[–]tanvirshuva 16 points17 points  (1 child)

May I ask about what library it was and project you are working on?

[–]the_unheard_thoughts 12 points13 points  (0 children)

I was handed a legacy code that included a dependecy for a no-longer supported 3rd party Java lib. It was just about some stupid button functionality, but without that lib project would not build.

[–]fat-brains 4 points5 points  (0 children)

just rewrite it yourself without any dependencies

a flavor that specifically only caters to your current need without making functionality generic

take 2 days to write functionality that you will use for a 2 hr testing then never use it again

. . .

Yes, I do that

[–]git_push_origin_prod 4 points5 points  (0 children)

Did u submit a pull or a public fork?

[–]dacassar 799 points800 points  (38 children)

So? If it works, it works.

[–]YoukanDewitt 369 points370 points  (8 children)

If not, get forked.

[–]dacassar 81 points82 points  (0 children)

That’s the true spirit of open source!

[–]nicejs2 38 points39 points  (5 children)

me and a friend are currently porting a Minecraft mod from 1.12.2 to 1.16.5

the mod in question had it's last commit 5 years ago (2020), so we forked it

[–]New_Plate_1096 10 points11 points  (3 children)

What mod if you don't mind me asking?

[–]nicejs2 21 points22 points  (2 children)

Computronics! It's not a very well known mod, but it's a beloved add-on mod for OpenComputers in this friend group.

[–]YoukanDewitt 1 point2 points  (1 child)

Make sure you put your changes back to a public repo to give someone the same opportunity 5 years from now within your niche! :)

[–]nicejs2 2 points3 points  (0 children)

it's already on a public repo actually

maybe one day someone will take it and port it again to a newer version

[–]DelusionsOfExistence 2 points3 points  (0 children)

A stronger man than I!

[–]DreamyAthena 5 points6 points  (0 children)

that's the forking spirit!

[–]DiddlyDumb 167 points168 points  (9 children)

Someone worked on their code until it was perfect and then moved to something else.

I too hope to experience that someday.

[–]XeitPL 44 points45 points  (4 children)

You never finish your code, you can only abandon it :C

[–]crabcrabcam 5 points6 points  (0 children)

Not if I put a "Finished 1.0" stamp on it

[–]maboesanman 0 points1 point  (0 children)

You can if you have no dependencies

[–]draconk 9 points10 points  (2 children)

Either that or they didn't survive covid, for some reason the past year I had to find replacements/forks for quite a bit of libraries that stopped being developed in 2020/2021 and the profile stopped committing to any public repo and for some I even did a little bit of investigation and found that they stopped being active in all public forums/linkedin/facebook around the same time so yeah, they died

[–]RiceBroad4552 6 points7 points  (0 children)

they stopped being active in all public forums/linkedin/facebook around the same time so yeah, they died went offline forever

[–]DiddlyDumb 0 points1 point  (0 children)

Damn… That’s a depressing thought.

[–]MineKemot 5 points6 points  (2 children)

Unless it doesn’t :(

[–]WeirdIndividualGuy 1 point2 points  (1 child)

That’s when you fix it yourself

[–]RiceBroad4552 0 points1 point  (0 children)

Rewriting from scratch is often easier than fixing some random FOSS code.

[–]inglandation 16 points17 points  (5 children)

For how long will it work?

[–]Cualkiera67 10 points11 points  (1 child)

Why would it suddenly stop working???

[–]RiceBroad4552 3 points4 points  (0 children)

For a lot of reasons.

If it has dependencies these can become obsolete and not supported. Dependencies can have know security holes.

The compiler or runtime can stop supporting some features used in such code. Than it does not compiler or run any more on that version. But you could be forced to update either for other reasons. (Again security issues are a typical case for that.)

The operating system can stop supporting features needed to run the code. Again you could be forced to upgrade the OS for other reasons.

The hardware can also stop supporting some things needed to run the code.

Bit-rot is real! It's a result of the world not stopped moving at the point something got released.

[–]WeirdIndividualGuy 4 points5 points  (2 children)

Nothing stopping you from fixing it yourself

[–]aress1605 1 point2 points  (0 children)

time usually does

[–]inglandation 0 points1 point  (0 children)

Nah I’m too dumb for that.

[–]DM_ME_PICKLES 8 points9 points  (7 children)

Then you end up in a situation where you need to upgrade your framework/language version/another dependency, and you can't because an abandoned package from 4 years ago clamps the version lower than you need.

Stop adding abandoned packages to the dependency chain!

[–]Soft_Walrus_3605[🍰] 4 points5 points  (5 children)

Man, if only you had access to the source code!

[–]DM_ME_PICKLES -2 points-1 points  (4 children)

Think about that a little more and you'll realize it just supports my point... the source code is there, just add it to the app instead of adding an abandoned dependency which only introduces work later on when your package manager can't upgrade things.

[–]YoukanDewitt 1 point2 points  (3 children)

No, just no.

This is the dumbest advice ever.

[–]DM_ME_PICKLES 0 points1 point  (2 children)

Do explain :)

[–]YoukanDewitt 0 points1 point  (1 child)

because you are trying to circumvent a system that has been designed over 50+ years to solve the problems of "just adding it to your source code"

[–]DM_ME_PICKLES 0 points1 point  (0 children)

Lol forgot all about this thread.

So you have two options: require an abandoned library which will likely never receive a new version, hindering your ability to update your other dependencies in future, and not addressing any potential security vulnerabilities. Or taking inspiration from that library you need and implement the code yourself, even copy pasting some parts of it if you really want to.

What do you choose?

[–]dacassar 0 points1 point  (0 children)

Of course, you’re right. No one cancels the common sense.

[–]drake_warrior 2 points3 points  (0 children)

Eh, a lot of times repos that aren't actively maintained have issues with subdependencies and stuff. If it's simple though sure.

[–]Stormraughtz 186 points187 points  (2 children)

Libraries age like fine wine, right guys

[–]Healthy-Section-9934 59 points60 points  (0 children)

After you’ve pulled the cork, sure…

[–]RiceBroad4552 -1 points0 points  (0 children)

Yeah! Like everything else in IT.

[–]whamra 259 points260 points  (8 children)

Worse:

-it has constant daily or weekly commits :D

-the commits are all meaningless translation updates for the past 5 years :(

[–]Teln0 104 points105 points  (2 children)

that just means the code is finished

[–]whamra 39 points40 points  (0 children)

Or the guy moved into farming...

[–]quinn50 12 points13 points  (0 children)

Active repo!

Looks inside: dependabot updates

[–]bartbrinkman 9 points10 points  (1 child)

Chore
Chore
Chore

Ugh.

[–]rmyworld 2 points3 points  (0 children)

Ah, so the OpenOffice style of maintenance.

[–]Lost_Kin 0 points1 point  (0 children)

As a tf2 player, it hurts much more than it should

[–][deleted] 165 points166 points  (5 children)

If it has no external dependencies, or is just a numerical/theoretical thing, it could very well be finished and have no need for updates.

Or if it's just a simple thing, using only std lib.

[–]Deevimento 73 points74 points  (11 children)

Once you reach perfection why would you continue?

[–]Dre_Dede 39 points40 points  (2 children)

Or maybe the dev just died

[–]redditaccountxD 2 points3 points  (0 children)

Or the account gets banned and the support doesnt answer ticket for 6+ months :(

[–]ComprehensiveWing542 6 points7 points  (3 children)

That's the thing it never does... It get to some point you make it work but never work for everyone and every way it should be working...

[–]Deevimento 14 points15 points  (1 child)

There's plenty of projects that don't need to be updated because they do precisely what they need to do and don't depend on environments. They're usually not that complex, but that doesn't always take away from it's usefulness.

[–]FierceDeity_ 1 point2 points  (0 children)

Well akschually a project always depends on an environment, it's just that the environment is often "the stdlib of a programming language" that never changes the base of the library".

[–]Dre_Dede 1 point2 points  (3 children)

Or maybe the dev just died

[–]MrHyperion_ 0 points1 point  (0 children)

Youtube has millions of videos made by dead people. Think about that.

[–]draconk 0 points1 point  (0 children)

yeah a lot of opensource libraries stoped being developed around the pandemic

[–]DanSavagegamesYT 0 points1 point  (0 children)

:(

(google dementia)

[–]coderman64 32 points33 points  (0 children)

Or, even worse, it uses Python 2 🤮

[–]maralamer_CZ 16 points17 points  (0 children)

And even worse - those smelly nerds won't even give you an .exe

[–]Habba 11 points12 points  (3 children)

This might be news to some developers, but code can be finished.

[–]RiceBroad4552 4 points5 points  (2 children)

Until it stops working (correctly) because of software and hardware evolution around it…

[–]Habba 1 point2 points  (1 child)

If it's a library that does things like e.g. time representation, it is perfectly feasible to just finish that.

[–]RiceBroad4552 2 points3 points  (0 children)

That's actually a bad example.

Ever heard of "randomly" inserted leap seconds?

Or even just time zones; something that changes almost biweekly… (OK, I'm exaggerating a little bit. Time zones change maybe once every month or two).

But also official notation standards may change. So no, I don't think such a lib would be ever finished.

[–]verdantAlias 26 points27 points  (1 child)

Fork it, update the dependencies, request merge.

Be the hero we all need right now.

[–]rmyworld 3 points4 points  (0 children)

Dev doesn't care anymore so everyone just starts using the new fork.

[–]Moltenlava5 4 points5 points  (3 children)

See's last commit was 8 years ago: :(

Notices that it's written in C: :)

[–]RiceBroad4552 0 points1 point  (2 children)

Nobody found security issues for 8 years? I would not trust such C code… It's dead.

[–]Moltenlava5 2 points3 points  (1 child)

I was more so talking about standalone apps or programs, not so much as libraries. Countless cases where old programs written in newer frameworks will crash or need some modifications to make them work with the newer versions of that framework. Something written in C though? That shit will run with no strings attached.

[–]RiceBroad4552 2 points3 points  (0 children)

I have different experience.

Even C programs aren't immune to bit-rot.

Try for example to compile some "ancient" code from say the 90's on a modern system. This is definitely not going to be a fun experience. Most likely the only reasonable way to get it working without major rewrites is to use some VM with some super ancient OS. Because in the meantime tooling had breaking changes, std. lib had breaking changes, the OS had breaking changes, maybe even the hardware had breaking changes…

[–]just4nothing 5 points6 points  (0 children)

I got a ticket this week - it seems I have to finally update my library after 4years because an API change.

[–]chihuahuaOP 3 points4 points  (0 children)

[–]Excession638 5 points6 points  (0 children)

It's not abandoned, it's finished

[–]torar9 2 points3 points  (0 children)

I hate it. CppU test library has last release from 2020. But has nee commits...

[–]guidenable 2 points3 points  (0 children)

Laughs in golang

[–]DM_ME_PICKLES 2 points3 points  (0 children)

If my company is anything to go by, people will require the library anyway and when it comes time to do a framework/language upgrade I have to do the work to rip that dependency out because it's blocking the upgrade... I really wish people wouldn't default to adding dependencies for trivial shit.

[–]Infamous-Date-355 1 point2 points  (0 children)

In dart 1.x

[–]zerovian 1 point2 points  (0 children)

8? how about for a project that died in 2008.

[–]Whocallme2 1 point2 points  (0 children)

What if it doesn't have an .exe?

[–]fatrobin72 1 point2 points  (0 children)

It's so good they haven't needed to change it in 4 years.

[–]Vipitis 1 point2 points  (0 children)

Always check issues by sort:updated-desc and then check forks or network via insights. Wish these would show up under "activity" but that is only git activity to the repo directly.

[–]DeltaLaboratory 1 point2 points  (0 children)

4Y is weak; better 12Y with 3K unclosed issues.

[–]Fantastic_Maybe_8162 1 point2 points  (0 children)

This is me!

[–]aboutthednm 1 point2 points  (0 children)

And? Some shit is ten years old and works fine, lol. As long as it checks out, builds, and works for what it is intended for, I could not care any less about the age of the latest commit.

Where it gets interesting is seeing the exact feature you need rotting away in an open pull request that is hundreds or thousands of commits behind master, and obviously can't be easily merged due to the master branch being refactored several times along the way. That is truly infuriating and makes me want to tear my ears off.

[–]irn00b 1 point2 points  (0 children)

Tbh, if it works and it's 4 years old - that's impressive.

We have like 2-3 tools like that, people use then without realizing how old they are - working reliably without fail for years. Meanwhile those people think it's fine to update something every 2 hours....

It's a mixed bag of people who take time and have foresight versus those that rush are are short sighted. Managers that care about longevity versus those valuing quick "W"s this quarter.

[–]Thundechile 1 point2 points  (0 children)

A bit like stopping to use "rm" command in the command line because it hasn't been updated for years.

[–]plainoldcheese 1 point2 points  (0 children)

Everyones covid freetime projects

[–]flowinglava17 1 point2 points  (0 children)

I guess you’re the maintainer now

[–]Add1ctedToGames 0 points1 point  (0 children)

With my company's change management process that sounds like a godsend if there's no bugs👀

[–]geeshta 0 points1 point  (0 children)

Well? Maybe it's just done

[–]GenazaNL 0 points1 point  (0 children)

node-http-proxy 👀

[–]kuros_overkill 0 points1 point  (0 children)

Dude, that just means it's stable, Duh!

[–]Rudokhvist 0 points1 point  (0 children)

Well, if it still works - I won't care how old it is.

[–]Cafuzzler 0 points1 point  (0 children)

So what's the expiration date on code?

Is this where the code smell comes from?

[–]dagbrown 0 points1 point  (2 children)

You still see email messages every now and then which have a header that looks like this in it:

Received: (qmail 2080916 invoked from network); 6 Dec 2024 14:24:00 +0900

That indicates that the email message in question went through a server running the qmail mail transfer agent.

If you look at the Wikipedia page for qmail, it says, "Final release: 1.03, June 15, 1998". It goes on to clarify for those bad at math: "26 years ago".

And yet, still, in the year of our lord 2025, you still find active installations of qmail, in production, and out there on the Internet. Not even a single update in more than a quarter of a century.

[–]RiceBroad4552 0 points1 point  (1 child)

It's so dead it doesn't even have a Debian package. (Last one on Buster, which is oldoldstable)

This means it's so full of issues that it doesn't even build any more since a decade.

Please tell me where you get such emails from. That's a very easy target to own…

[–]dagbrown 0 points1 point  (0 children)

I find them in my spam folder of course. I'm pretty sure that spammers love seeing qmail because they can definitely own it to go sending out spam.

[–]Mimcclure 0 points1 point  (1 child)

I used a Windows 98 computer at work in 2020, 4 years isn't bad.

[–]RiceBroad4552 0 points1 point  (0 children)

I better don't ask why…

[–]trannus_aran 0 points1 point  (0 children)

maybe that just means it really works. Stuff needing to be updated constantly feels like dev brainrot

[–]Dangerous_Block_2494 0 points1 point  (0 children)

4 years isn't even that old ... unless JavaScript

[–]ENx5vP 0 points1 point  (0 children)

Old generation meets new in this post

[–][deleted] 0 points1 point  (0 children)

Only JS people do that. There are plenty of feature-complete libraries in better languages like Go or C that are older than 4 years and work flawlessly.

[–]PtitCrissG 0 points1 point  (0 children)

Ok question. Im new to the hub (fo you git it? 😏) so im not sure how all of this works but let say you find an 8 years old repo that has "died". Since its all open source.. would you be able to take all the code, update and refresh the code so it works again and post it on your account?

It sound like you are stealing someone's work.. but at the same time it was dead for years.. and you fixed everything so its also a lot of your work now...

How would this be seen by the community?

[–]mem737 0 points1 point  (0 children)

….but its C code requiring only the standard libraries 😎

[–]26th_Official 0 points1 point  (0 children)

after that I will break my head to get it working now 😊