On Friday, 18 November 2022 at 11:51:42 UTC, thebluepandabear
wrote:
A question I have been thinking about whilst using D is how
often I should be using const.
Many people claim that all variables should be const by
default, but whether or not it is really needed is debatable
and oftentimes making everything const could cause readability
issues and make the code more complex.
I also wonder how important const really is, like 99% of the
time you will know when your variable will be changed, and even
when a variable changes it's not like it is the end of the
world.
Also, there is no real end to how much variables can be const.
Oftentimes -- interestingly -- in popular repos I don't even
see const being used, this is what confuses me.
As a newcomer, I'd be interested in hearing everyones thoughts.
IMHO and besides other insights in previous replies, in practice
this depends on whether you're talking about private
implementation code, or an external interface -- of a library,
component/unit (under test), etc.
In private implementation code, including your scripts, informal
code for personal use etc. you should probably not bother more
than needed. It's fine that other languages (functional or
safety-paranoid) force const or immutable by default, it's fine
that D doesn't. Go with the least verbose default for this kind
of code.
For external interfaces, be mindful that everything that should
not be mutated across them, is annotated as const, since
languages D or C++ provide this facility. Otherwise you'd have to
rely and unsafely trust on naming conventions like Python.