Isaac Schlueter
Creator of npm
SK
Who are you?
Isaac Schlueter
SK
Why did you decide to start npm? Was there any inspiration?
Isaac Schlueter
In the early days of node, there were dozens of people excitedly creating things, mostly chatting on IRC and in a google groups mailing list. I had this fantasy of making websites with only JavaScript, but doing that required using other people's code. So someone would send a message like, "Hey, I made this cool library for {whatever}, you just have to check out this git repo, then fetch all the submodules, then run `make`, then copy this file out..." It was really a pain.
Isaac Schlueter
There were a few other attempts to set up a package registry, but I did not want myself (or anyone else) to be in the way of the flow of people publishing and installing stuff. So, I built a system where they could publish whatever, and the tool could install it in a known location that node programs could find. I set about sending pull requests to add `package.json` files and publish the package every time someone sent those things. I tried to make it as flexible and low-effort as possible, because everyone seemed to have some completely different idea about the best way to lay out their projects, and this way they'd be more able to take over managing it.
Isaac Schlueter
The main inspiration was yinst, the package manager used internally at Yahoo!, where I had been working for 4 years prior. Yinst is (I'm told) heavily influenced by CPAN, but to be honest, I didn't have much experience using CPAN, because I was writing more php than perl on my server-side work. I did take a sort of "anti-inspiration" from many of the design choices in Pear and PECL. There's nothing wrong with Pear technically, per se, but the fact of having a central review board for namespace allocation seemed to lead to a lot of stagnation and friction, and I didn't see that working well for JavaScript developers. At Yahoo!, using yinst to publish and install dependencies was just a normal part of the development lifecycle. There wasn't some big ceremony to get stuff into it, you just publish things as you make them in dev, and everyone stays in sync that way. I'm not sure if that's still the case, of course, as I haven't been a Yahoo since 2010, but that's how it was back then.
SK
Since node.js came out in 2009, the ecosystem for server-side javascript has exploded and projects like npm are now critical infrastructure for large enterprises. Did you foresee this trend at the time? Is there anything you find surprising about the direction of the modern tech stack?
Isaac Schlueter
I did foresee JavaScript being a big deal, yes. Atwood's Law felt obvious to me when he coined it in 2007. The only obstacle was getting it out of web browsers.
The most surprising thing about the modern tech stack is that we've managed to build enormous data centers to run astronomically large linear algebra calculations on GPUs to create chatbots that are bad at math. I'm very "team normal tech" about AI. It's cool and useful, but the hype is unhinged, and I fear the financial impacts of this bubble might not be great, long-term.
The most surprising thing about the modern tech stack is that we've managed to build enormous data centers to run astronomically large linear algebra calculations on GPUs to create chatbots that are bad at math. I'm very "team normal tech" about AI. It's cool and useful, but the hype is unhinged, and I fear the financial impacts of this bubble might not be great, long-term.
SK
The infamous npm left-pad incident revealed critical risks for both creators and dependents of open-source software. If you could wave a magic wand and change something about the ecosystem for open-source, what would it be?
Isaac Schlueter
I think we made a mistake with "free as in beer". The entire economy rests on the labor of open source developers, and we get paid nothing for it. We need a new concept of "open source" licensing: free as in "fuck you, pay me". Noncommercial open source and personal use can be free and shared, but any commercial entity has to pay to have the rights to even look at it. Businesses are innovating in this space already, with things like the FSL and BUSL, but we haven't seen a similar "fair use" license for individual producers.
SK
Are there any people or projects you particularly admire today?
Isaac Schlueter
I spend a lot of my time with a small number of people that I admire more than I can easily put into words. Life is too short to try to be someone you're not. For projects, I was recently impressed by Sentry, which is why I decided to join. Also, the explosion in the ecosystem of vite tools and plugins is cool to see.
SK
What's a message you have for the world?
Isaac Schlueter
Stop making excuses for a world with unnecessary suffering and unequal rights.
Instead of asking what it will cost to care for one another, to dismantle our oppressive regimes, ask what it costs not to. We could have a futuristic utopia today, where everyone is fed, clothed, and housed, and no one fears for their life, if we could collectively throw off the shackles of oppression, but that will require opposing oppression that benefits us.
So instead, we get stuck in habitual systems, and see them as natural. But there is nothing natural about paved roads, massive wealth inequality, or a national boundary making it acceptable to protect some people and harm others.
And even if systems of oppression are "natural" in a sense, so what? Nature is mostly hard vacuum, barren rock, and deadly energy, stretching back in time to the big bang and forward to heat death. We only live in the infinitesimal slice of the universe which is habitable to humans, so we should work together to maximize human thriving.
There is only us.
Instead of asking what it will cost to care for one another, to dismantle our oppressive regimes, ask what it costs not to. We could have a futuristic utopia today, where everyone is fed, clothed, and housed, and no one fears for their life, if we could collectively throw off the shackles of oppression, but that will require opposing oppression that benefits us.
So instead, we get stuck in habitual systems, and see them as natural. But there is nothing natural about paved roads, massive wealth inequality, or a national boundary making it acceptable to protect some people and harm others.
And even if systems of oppression are "natural" in a sense, so what? Nature is mostly hard vacuum, barren rock, and deadly energy, stretching back in time to the big bang and forward to heat death. We only live in the infinitesimal slice of the universe which is habitable to humans, so we should work together to maximize human thriving.
There is only us.