Alternatives to OOP in D
Serg Gini
kornburn at yandex.ru
Tue Nov 11 07:50:05 UTC 2025
On Tuesday, 11 November 2025 at 07:12:38 UTC, Peter C wrote:
> Clearly correct code is necessary, but it's not sufficient.
>
> Code also needs to 'sustaining' correctness - through
> maintenance, scaling, and change.
>
> Adair Dingle, in his award winning book from 2014, titled
> 'Software Essentials Design and Construction', correctly
> asserts that it is 'software maintenance' that dominates the
> software life cycle.
k
> So patterns and paradigms are not just an arbitrary choice.
Yes they are
> They are the tools that provide for shared reasoning. They
> should be chosen precisely because they provide the guardrails
> that help to make 'correctness' easier to achieve and sustain
> over the life-cycle of the code.
Different code has different purposes.
Also different languages desire less or more patters.
Patterns were mostly designed for Java/corporate world.
Maybe C# as well.
But not all code is like that. There is no "silver bullet" and
patterns are definitely not that as well.
> 'Good code' (regardless of patterns and paradigms) structures
> logic in a way that makes correctness easier to reason about ->
> collaboratively.
If the majority of the people who work with the code is fine -
it's fine.
> That is, if the person writing the code is the only one that
> can reason about it, then is certainly *not* good code.
Sometimes it is.
Because nobody else will contribute to his project anyway.
So he is writing in a style that he likes.
> "The true measure of code quality, is that it's correctness is
> easy to reason about collaboratively." - me, Nov 2025.
Something is missing in this definition is quality of
collaborators.
Same code could be easy to reason for experienced devs and hard
for 1st grade students.
More information about the Digitalmars-d-learn
mailing list