Adding a new design constraint to D
forkit
forkit at gmail.com
Thu Jun 16 08:49:10 UTC 2022
On Thursday, 16 June 2022 at 07:45:52 UTC, Kagamin wrote:
> On Thursday, 16 June 2022 at 00:02:41 UTC, forkit wrote:
>> Sean L. Palmer : "I find that it's one of the biggest pains in
>> programming, deciding what to make private, what to
>> encapsulate, what to expose."
>
> Incapsulation is overrated, so it's really a non issue, maybe
> only if you treat incapsulation as a superidea, but D doesn't
> honor superideas, it's a practical language.
>
> Also memoization is a use case for varying access between
> different methods of the same class. Would you address that too?
'encapsulation' is an abstract concept.
It may well be overrated, but that doesn't mean it's not useful,
and sometimes necessary. Without it, we humans would have a hard
time understanding anything, about anything. It's an vital
component of how we understand things. (yes, I have psych degree
;-)
The old OOP ideals of "all member variables should be private"
and "global variables should be avoided", have clearly not been
the best choice, over time, and certainly should never apply by
default, for all cases.
What's important, is the designer(programmer, programming team)
have the options to strategically use this principles to
accomodate the design they believe is best for them.
This is particulary important when doing OOP, which is very
different to the C like procedural progammning you often find in
the D community. That C like mentality, I believe, is the source
of the module design in D (i.e. everything global to the module,
and that's all there is too it).
Fortunately, Swift (which intenationally set out to drop all the
baggage that came with C and C like thinking), 'seems' (I've only
been using it a couple of days), like a very nice alternative to
D, for me - not just because it returns that choice to me, but
the syntax is very pleasing to understand and work with (one of
D's biggest advantages too).
With the options available to me in Swift, I feel 100%
comfortable in programming in the large. Not so in D.
Although I program mostly in C#, so I've never been restricted to
programming in the small ;-)
But in the many years I've been 'playing' with D, I've never
considered it a suitable language, for me, to program in the
large - primarily because of the 'everything is global in the
module, and we in D, don't want you to have any other choice in
this'.. .thing.
More information about the Digitalmars-d
mailing list