(no title)
neilkk | 1 year ago
> In C, you can go ahead and misconfigure a makefile to output debug files, a segfault, or a bad reference, but at the end of the day, it’s your fault.
> The same goes for any serious language ecosystem out there.
> But JavaScript is quite the opposite: it works like magic (and not as a compliment!) even though you know it’s pure software!
I think we can recognize from these comments what is happening here. If you think that the tools you are working with are magic (whether because of bias, unfamiliarity or whatever), it will be much harder to pin down problems. If you understand that you're dealing with very complex, but deterministic systems, you will be able to work systematically, observe things carefully and carry out experiments to check your hypotheses, and you have a chance of actually discovering what's going on.
warkanlock|1 year ago
While I agree with everything you have said, and it's been my motto since I read, "I'm sure you're joking, Mr. Feynman." The point of the post was to point out (maybe I did it wrongly) that those things you have described are pretty impossible given the ecosystem we have nowadays in Javascript (as a whole!). Of course, you can try to theorize and try to get a hypothesis on things and then try to prove those, but it's just too hard to keep track of everything.
Another random story from this week: we have been using `nanoid` to generate IDs internally for an internal tool. Apparently, they did a breaking change release, and now you cannot use it anymore on commonJS env. See my point? where's the hypothesis we can make? It's hours and hours spent tinkering with code and other people's dependencies, and if, as you said, put a theory that theory won't match if you think how real systems work (the networking section on the blog post)