Earlier quoted context omitted.
Because those things don’t align with what you value? Of course.
Do you think the world is better off with this guy going from FOSS passion to "business & marketing passion"? I understand if your values contain something like "money for me is good", but do your values also contain something like "money for this random guy is good"?
Left-Pad (2024)
111–120 of 224 posts
Re: Left-Pad (2024)
#112Earlier quoted context omitted.
You're missing the point. Nobody with a serious background in software development should ever need to pull in a package to pad a string or check if a number is even or odd. If someone is smart enough to use a package manager, they should be more than capable to write a function to pad a string (assuming the standard library doesn't include one already)!
While you are correct, the problem compounds when popular package developers choose to use tiny packages. I don't need left-pad. But maybe I need react-starter-kit. Now, imagine that react-starter-kit has a dependency to markdown-js-blobber, which has a dependency to make-text-nice, which has a dependency to left-pad. In this scenario I am now "pulling in a package to pad a string". If I am "smart enough to use a pac…
Re: Left-Pad (2024)
#113Earlier quoted context omitted.
Because those things don’t align with what you value? Of course.
Do you think the world is better off with this guy going from FOSS passion to "business & marketing passion"? I understand if your values contain something like "money for me is good", but do your values also contain something like "money for this random guy is good"?
Like all alignment mechanisms (democracy, bureaucracy, etc.), these things only works to a first approximation — but they do work to a first approximation.
Making stuff (FOSS or otherwise) without caring about your audience leads to things like TempleOS, or the novel I've yet to finish writing (I'm never happy with what I've done despite having started it a decade ago already).
Re: Left-Pad (2024)
#114Earlier quoted context omitted.
The "unix philosophy" is a useless philosophy - perhaps worse than useless even - because "one thing" is not well defined, so in practice it adds nothing and just leads to arguments. You could say that Eclipse does "one thing" - being an IDE platform - but I don't think anyone thinks that's what the Unix devs meant. Similarly I don't think they meant for people to write libraries that contain one 11-line function. Th…
If you consider it from the point of view of how "clear is the scope?" Then it makes more sense. Libc implementations have a very clear scope, clear enough that you can point to the specification. That is their 'one thing' do what that spec says. Eclipse however, doesn't have that singular goal. You would be hard pressed to say how many of Eclipse's tentacles is a clear push towards being an ide. What should a comple…
No you can't get out of it my just saying the "one thing" is to do what the spec says. Who decided what's in the spec?
Would Eclipse be fine if someone just wrote a spec for it?
Re: Left-Pad (2024)
#115Earlier quoted context omitted.
Who is al-Ghazali? I searched and found the Iraqi phisolopher, but couldn't understand how he is related
We westerns do the know much about the Socrates from the eastern side of the world. I can only imagine people from there know who al-Ghazali was just like we know who Sartre was. So, im gonna try and read something by al-Ghazali.
When this happened, people started making assumptions. A few of them:
1. I’m irrational 2. I’m angry 3. I’m greedy
They came to one of these conclusions, based on how they see themselves in the same position.
I can be of course one of these three in some other situations, but in the left pad incident, I done all purely with my heart, to stick to my values and principles which was behind my motivation to do open source for such a long time.
Ghazali is the best source I’m aware of about how to put heart in the driver seat of life, and without fighting but using logic, greed, anger etc as tools.
If my reference made curious about him, I couldn’t be more happy. Here’s a great lecture about his book, The Alchemy of Happiness: https://youtube.com/watch?v=zBwWc0DflRQ
Re: Left-Pad (2024)
#116It's a minor thing, but: > Most of my open source work followed Unix philosophy, so the packages did one thing at a time. Nobody has suggested that libc -- to take the most obvious example -- is against the Unix philosophy. Debates occur around whether whether commands / daemons do too much (recent poster child being systemd) or aren't composable.
I don't see how anyone could read the Lions book or APUE, on one hand, and the pthreads manual or the ANSI C specification of setlocale(), on the other, and come to the conclusion that they represent the same philosophy. It's like thinking Ayn Rand is an exponent of the same philosophy as Epicurus; it betrays a staggering lack of sincere engagement with either one.
Re: Left-Pad (2024)
#117Why Java can have reliable utility libraries such as Apache Commons and Google Guava, but JS somehow cannot?
Why does Maven exist, without the commercial compromises of NPM? Probably because Java has the well-funded, well-supported, but non-profit and community-oriented Apache foundation, which is something extremely rare and precious (and probably at least partly a lucky result of Java's complicated legal history).
(JS has plenty of great utility libraries. The problem is that its package management is excessively centralised and not managed terribly well)
Re: Left-Pad (2024)
#118Earlier quoted context omitted.
Because those things don’t align with what you value? Of course.
Yes, I think a passion about marketing can only result in net-negative for humanity. It's not that I don't value those things, it's that I think they're actively harmful (at least some of them), and that being passionate about them shows very toxic personality traits.
Re: Left-Pad (2024)
#119Earlier quoted context omitted.
Instead of teasing, can you just tell us what the difference is between unpublishing N small packages versus one large package containing the same set of functionality?
Well, I sure can! When you develop software by gluing together 1000000 small packages, you now have 1000000 points of failure. When you develop software by... you know, writing trivial things by yourself instead of downloading a package... you have maybe 100 points of failure instead of 1000000 points of failure. Having 100 points of failure is better than having 1000000 points of failure. Note that in this example y…
What made the left-pad incident prominent is that the package had so many dependents. That’s due to how frequently its functionality is useful, not due to its size. And in general these are inversely correlated characteristics.
Yet another argument: If any given function breaks, then the affected dependents are invariant under the granularity of packaging. Exactly those dependents will break that make use of the given function, regardless of the packaging.
The one argument I could buy is that depending on a larger number of packages increases the likelihood of depending on unreliable maintainers. Still, in the case of left-pad that isn’t entirely convincing, since the maintainer in question maintained so many packages.
Re: Left-Pad (2024)
#120Earlier quoted context omitted.
For context, see https://en.wikipedia.org/wiki/Npm_left-pad_incident
11 lines of code! Wow. I had no idea it was that small.
I think the left-pad incident helped shatter that myth. He we had huge packages depending on a package which padded a string in an inefficient manner.
It turns out that the many eyeballs of the bazaar had averted their gaze from what was actually happening, which is a system of impossible to audit dependency chains.
I think it also shows the impact of using a language with a poor standard library.
Padding is absolutely something that should be available as an extension over String.
If JavaScript were controlled in the same manner that Go, Rust, Java, .NET, python etc, then it would have been added years ago.
Apparently it has now finally arrived in ES2026: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Refe...