Nonsense. Revisionism at its finest.
But that's an argument I made in a different blog post: http://davidwalsh.name/for-and-against-let
> It would be nicer to have real, deep immutability, but `const` isn't it.
Yep, agree with you on that. That was one of the main points of my post.
> Because `const` requires to be initialized at the time of definition, you know the variable is valid for its entire lifetime.
No, that's where you're mistaken. All you really know is that the variable assignment is reliable. If the assignment happens to be of an immutable value, great.
But given the choice between these two guarantees:
1. The assignment is immutable
2. The value is immutable
(1) is almost pointless -- and a quick scan of your small block where it's scoped will verify that or not.
(2) is the absolute important one.
`const` masquerades as (2) when it's really only (1). That's what I don't like about it.