3 ms·
I pretty strongly disagree. > this sure sounds a lot like the people who insist that you can't be a good programmer unless you've learned some kind of assemble
by spacemanaki 14y ago
I pretty strongly disagree.
> this sure sounds a lot like the people who insist that you can't be a good programmer unless you've learned some kind of assembler.
This isn't a very good analogy. JavaScript is a high level language, and jQuery is just a library with features that make it a high level DSL. But when you "write jQuery" you're really writing JavaScript, not some other language, so I don't think the analogy with languages compiled to assembly really makes sense. That being said, I do think that knowing some assembly will not hurt you writing C, and likely will help. Similarly, understanding some of how JS is implemented in browsers won't hurt, and might help you write JS.
It's true that there's almost no limit to how deep the rabbit hole goes. Someone building web apps probably doesn't need to have a degree in electrical engineering, but I don't think this kind of slippery slope argument defends someone using jQuery without knowing JavaScript.
In a grandchild comment you wrote:
> It took me ages to unlearn certain practices and just accept the garbage collector would do its job and I no longer need to think about unallocating memory.
You don't need to explicitly think about unallocating memory, but that doesn't mean your knowledge of manual memory management isn't useful. You do need to be aware of how the GC works if you're working with one. You can still have memory leaks, so how could you possibly debug them if you think the GC is magic?
There's this meme that is floated around HN and elsewhere, that the title "software engineer" is just puffery, because we aren't "real" engineers. I try to avoid this discussion because I think it's mostly stupid, but I can't help touch on it here given the title of this manifesto. I just don't think anyone could seriously call themselves a "front end engineer" if they refuse to learn JavaScript, claiming it's not necessary to use jQuery. Given that the author thinks this title is appropriate, I think the assertion about learning JavaScript is perfectly acceptable.
I'd be interested to hear more about what you think though, and about how the negatives to understanding lower levels of the stack outweigh the benefits. In my (limited) experience, some or more understanding of one or even two "levels down the stack" has never been a net-negative.
- Evbn 14y ago99% of devs building the popular sites on the Internet have never needed to think about GC beyond maybe the vaguest terms of "if you keep too many references to too big things your app will slog." 0.5% write tools, libraries, and compilers that worry about this, and 0.5% debug extreme cases in their apps. Numbers made up, of course.
- spacemanaki 14y agoI think you're wrong, and I don't know what the point of making up numbers is. It might be your experience that you've been able to treat garbage collection as magic, and that's nice, but it's not been mine. I was speaking generally, about all programmers, not just web developers. My point was that if you don't have any understanding of how garbage collection works, you simply don't have all possible tools at your disposal when you need to debug a memory leak. I'm not suggesting every programmer needs to have spent years hacking on garbage collectors and studied all of the literature, just that having some familiarity with the tools available to you is important. And this was just one example meant to support my main argument that gaining understanding below the level of abstraction you are working at is not a bad thing.