4 ms·
`const` has this caveat that it's only about assignment bindings and not about values. Imagine a piece of code that has `const x = 2` that you later refactor t
by adrusi 11y ago
`const` has this caveat that it's only about assignment bindings and not about values.
Imagine a piece of code that has `const x = 2` that you later refactor to `const x = [2]`. The complexity is, you now have to contend with the `[2]` being a mutable value where `2` wasn't, and `const` sorta pretends to keep you safe but doesn't.
If these semantics aren't instantly obvious to you, then that's emblematic of a serious gap in your understanding of programming. I say this not with the intent of shaming, but to recommend that you (and the very many other people with the same lapse) invest some time into developing intuition about reference semantics. The best way IMO is to get initmately familiar with a language that has first class pointers or otherwise explicit indirection. Learn C, get good at C, write something big in C. Focus on the pointer semantics and you'll come out a significantly better programmer in languages where pointers are slightly less immediately visible.
Of course if you're making this recommendation because you work with other people who have a lapse in their understanding of references I can understand that. I would encourage you, however, to try to fix the problem rather than work around it by stunting the language. After all, it's an issue that will crop up everywhere, not just the semantics of `const'.
- _getify 11y agoOh, I see. I just need to learn more. The problem is I just don't know JS (or other langs for that matter). http://YouDontKnowJS.com http://YouDontKnowJS.com
- abritinthebay 11y agoI agree that saying this issue is "emblematic of a serious gap in your understanding of programming" is.. well.. douchebaggery. However I feel a lot of the article and many of your posts about it in here come down to "it makes me feel uncomfortable" which.. I mean, ok. Sure. I hate spaces for indentation and think double quotes are better (and I have reasons for both)... but I don't say there's no use to the other options. I feel you're throwing the baby out with the bathwater here. Should const probably have been about value immutability too? Yes, I think so. I totally agree. That's a REALLY important topic to discuss. Maybe pitch it to the ES2016 committee as an iterative upgrade to const? But as it stands it does have value. Yes it mostly just codifies what programmers original did as a language construct but it does also stop redefinitions which was an annoyingly common issue. So it's progress. Small, incremental, and not as full-featured as we'd both like... but it's progress. Drawing attention to the issues with const is important... but there's no reason to rail so hard against its usage when it's understood to have those limitations... is there?
- _getify 11y agoBut my post did actually conclude the cases where it's useful. It seems like a lot of people here only read the first half of the post and stopped. I don't think `const` should be removed. I just don't think we should lead with it. I'm not sure why that's not coming across except for the fact that the post isn't being read.
- abritinthebay 11y agoHmmm I think maybe your tone comes across stronger than you mean it then. Because, while you do say that, it comes across as a sort of "meh, it's not totally useless but I still hate it" kind of thing at the end. Especially as you spent the last... like 2000 words trashing it.