Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I think if we look at it another way, you're going to find that this spaghetti dependency graph is the natural state of every codebase.

When people need to do a thing that has already been done a 1000 times there are at least 3 ways:

(1) write it yourself

(2) copy/paste someone else's code

(3) import/vendor someone else's code

(1) is definitely not a sustainable choice, especially for something that is frequently done.

The real interesting bit here is that I think (2) is just a shitty version of (3). You inherit the benefits and the bugs of the code you copy/pasted, and likely understand that code less than (1), which is increasingly true the more nuanced (and probably performant/good) the code is.

I think the question is whether you can see your spaghetti dependency graph or not, and how big the strands of spaghetti are. It's reasonable but likely pointless to argue about the size of spaghetti.

JS's library ecosystem lays bare the actual nature of bazaar-style development. The thing about cathedrals is that they take a while to build, and even then without the right people you can build bad ones -- JS's alignment to the bazaar style of doing things is key to it's iteration speed, and is it's best tether to the UNIX model.

All that said, not having packages be immutable from the get-go, and willy-nilly updating of dependencies without manual review are indeed problems with the ecosystem, with immutable packaging being the only one anyone can actually fix with code.



Don Knuth, for one, disagrees with your assessment of (1). (http://www.informit.com/articles/article.aspx?p=1193856)


Of course he would. He's likely to write it better than anyone wrote it before him. That's not something that works for other people, however.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: