On Saturday, 19 November 2022 at 04:47:57 UTC, thebluepandabear
wrote:
..
Of course in C# this argument wouldn't exist because you could
just do `{ get; set; }`, and I really wish D had something
similar 😂
If D had C#'s 'automatic' property syntax, it would as
meaningless in D as it is in C# ;-)
If you used such, you would still need to completely refactor
your class when you decided to implement you business rules
(within the getter/setter), since you cannot do anything more
than get and set with auto property.
Once you refactor your class (creating actual private member
variables and creating getter/setter methods, you are almost
certainly going to break binary compatability, and when you send
your update compiler library to your customer, there code will
stop working - cause they'll have to recompile it against the new
library.
All this because some programmer wanted to save a few key
strokes, or did not anticipate change, or did not anticipate the
need to ensure data is valid before assigning it, or returning it.
So no. It's not overkill. It's called software engineering.