News for hackers. Stuff that matters.
Re:Outdated vs. Complete: In defense of apps that don’t need... by tinalumfoil on Monday September 26, 2022 @06:38PM (#32989529)
I don’t know the details of your particular library but I think 50k/week downloads and no problems is an outlier. In my experience even projects with small audiences tend to accumulate outstanding bug reports faster than they’re fixed.
Re:Outdated vs. Complete: In defense of apps that don’t need... by jongjong on Monday September 26, 2022 @06:47PM (#32989618)
It's an open source pub/sub and RPC server/client (similar to gRPC) - It has a client and server component written with JavaScript and Node.js. I avoided using any dependency which relied on pre-built binaries. Also, I skim-read the code of all dependencies and made sure that they were well written and didn't use too many sub-dependencies. The trick is to minimize the number of dependencies and maximize their quality.
Re:Outdated vs. Complete: In defense of apps that don’t need... by tinalumfoil on Monday September 26, 2022 @07:07PM (#32989800)
I 100% believe that’s it’s possible to build a library without tons of bugs, and appreciate that there’s people who put out quality libraries like yours.

I do think as a general heuristic no updates for 3 months means it’s been at least 2 months since anyone paid attention to outstanding bugs, especially the npm ecosystem.

Re:Outdated vs. Complete: In defense of apps that don’t need... by franciscop on Monday September 26, 2022 @07:52PM (#32990151)
It really depends on the size and complexity of the library. Do you think something like leftPad needed updates every month to perform its function as expected and remove bugs? Of course not, the mere suggestion is ridiculous, but also something like jQuery def needs constant upkeep. In the middle, there's a world of possibilities.
Re:Outdated vs. Complete: In defense of apps that don’t need... by boredtofears on Tuesday September 27, 2022 @02:18AM (#32992039)
Leftpad shouldn't exist and any library using it as a direct dependency should be treated suspiciously.

I'm not saying that because of the leftpad fiasco, I mean that any library that small should simply be pasted into your codebase because the risk of managing the dependency outweighs the benefits.

Re:Outdated vs. Complete: In defense of apps that don’t need... by jongjong on Tuesday September 27, 2022 @04:54AM (#32992979)
I strongly agree with this. Another set of libraries I take issues with is gulp and its plugins. I find that gulp plugins keep breaking constantly and are often flagged with vulnerabilities. The sad thing is that these plugins solve very simple problems, there is no reason for them to keep breaking every few months for the last 5 years or so.

If I see a library which is supposed to solve a simple problem but it requires a large number of dependencies to do it, that's a big red flag which indicates to me that the developer who wrote it is not good enough to have their code included in my project - I don't care how popular that library is.

Re:Outdated vs. Complete: In defense of apps that don’t need... by WesolyKubeczek on Tuesday September 27, 2022 @07:22AM (#32993884)
gulp itself is sort of abandonware and is dependent on libraries that have vulnerabilities (you judge yourself if they apply to you, if you run them on untrusted inputs etc). A remedy in my project was to rip it out altogether and replace it with shell commands.
Re:Outdated vs. Complete: In defense of apps that don’t need... by onion2k on Tuesday September 27, 2022 @02:47AM (#32992202)
Do you think something like leftPad needed updates every month to perform its function as expected and remove bugs?

Node libraries are a bit odd in that respect because package JSON files have an "engines" property that informs users about the minimum and maximum Node version the library works with. The author of leftpad could check its compatibility with each new version of Node that's released, and update the engines value version accordingly. That would be quite helpful because abandoned libraries that aren't known to be working with newer Node versions don't get updated, and users can user that information to look for something else.

What that means is that any Node library that isn't being updated as often as Node itself is probably not actively maintained, or the author isn't making full use of Node's feature set.

Re:Outdated vs. Complete: In defense of apps that don’t need... by franciscop on Tuesday September 27, 2022 @04:12AM (#32992744)
> "The author of leftpad could check its compatibility with each new version of Node that's released"

Really? This sounds feasible at all for you for all the millions libraries in npm not to be labelled as "obsolete"? Checking if string concatenation still works on every major node release and tagging it as such?

Re:Outdated vs. Complete: In defense of apps that don’t need... by onion2k on Tuesday September 27, 2022 @04:24AM (#32992812)
This sounds feasible at all for you for all the millions libraries in npm not to be labelled as "obsolete"?

Yes. I mean, they could just leave the max version of the engines property blank because it should always work if it's something as trivial as leftpad, but in a well-run package repository the work of checking library compatibility should be getting done. The fact that NPM is full of old libraries that haven't been tested in new versions of Node is a bad thing, and those libraries should be flagged as untested.

Re:Outdated vs. Complete: In defense of apps that don’t need... by wilonth on Monday September 26, 2022 @09:07PM (#32990594)
Can I get the name?
Re:Outdated vs. Complete: In defense of apps that don’t need... by oliveshell on Monday September 26, 2022 @06:41PM (#32989554)
I’m sure you’re right, but it sounds like it’s an outlier not by random chance, but because it was built carefully.

I think there’s a useful lesson there.

Re:Outdated vs. Complete: In defense of apps that don’t need... by jongjong on Monday September 26, 2022 @06:58PM (#32989711)
I can confirm that this is the norm for all my open source projects. Forward-compatibility issues can be easily avoided by not using too many dependencies and by carefully checking dependencies before using them.

I check for things like over-engineering and I check out the author (check their other libraries if there are any).

Re:Outdated vs. Complete: In defense of apps that don’t need... by smaudet on Monday October 03, 2022 @11:35PM (#33076473)
Built carefully, extremely tiny, or single purpose.

"Do one thing and do it well" - the unix philosophy, and why I still use cd, ls (dir on windows) today.

If a project exceeds two functions its probably doomed to become either redundant or broken.

If a project does one thing well, even if something else uses it, you can always decompose to it (your software is always useful, even when somebody writes the fancy bells and whistles version).

Re:Outdated vs. Complete: In defense of apps that don’t need... by adolph on Monday September 26, 2022 @07:02PM (#32989744)
What non-game-able metrics do you think an outsider can use to evaluate the quality of a tool? In some ways a "perfect" tool would have no flaws (thus no issues/pull reqs) and be so easy to use (few training updates, SO questions) that it would appear to be dormant.

SQLite seems to hit a good balance. There's always something new but nothing particularly breaking (from my light usage POV), so it looks live.

Re:Outdated vs. Complete: In defense of apps that don’t need... by WesolyKubeczek on Tuesday September 27, 2022 @07:28AM (#32993930)
Filed issues are getting radio silence, no matter their quality.

The author chimes in, says he’ll take a look next evening, then two years whoosh by.

There is an ambitious todo and nothing moves.

The code is in alpha for years, considered unstable, huge exclamation points in the readme that it should not be used, and yet somehow there are hundreds of reverse dependencies and it’s like this for years (usually should mean “RUN!!!”). Sometimes sneaky as it’s not a direct dependency for you, but for those two or three libraries used by like 80% of the ecosystem.