Ask anything to npm

View original thread
Adam Baldwin's photo

How does npm make the build vs buy (or use existing oss tech) decision?

C J Silverio's photo

just some person on the Internet

Oh hey this is a fun question that I am never sure we have the right answer to.

The first thing to observe is that npm is absolutely stuffed to the gills with people who, over and over, decided they wanted to write their own whatever instead of going with the one that existed before. We were founded by somebody who led the node project during its early, obscure hipster days, who decided that the world needed another package manager. Early on we hired people who had experience with node when it was still edgy and unknown, so we have a lot of early-adopter questing minds among us. Then there's Ben Coe, who adopts projects like yargs and istanbul because they were mournful puppies who needed an owner.

So we're biased toward invention.

I like inventing things too. But because my team would invent all day every day, I have to put on the "let's use something not invented here" hat more often than I personally want to wear it.

No inventing our own databases! (Okay, that one's easy because we do not have the team to do that.)
No inventing our own testing framework! Well, um, we have node tap's inventor. And nyc's inventor. And istanbul's maintainer. Um.
No inventing our own http framework! We're using restify! Well, um, we invented one we'll be open-sourcing soon.
No inventing our own sql library! We're using knex! Well, um, we invented one we've already open-sourced.

We haven't written a promises library! We just use bluebird like everybody else.

So, um, the truthful answer is that if it's written in javascript, we might invent it ourselves just because this is our jouissance. If it's not written in javascript, we're more likely to restrain ourselves.