[OT] What are D's values?
Arjan
arjan at ask.me.to
Fri Oct 8 09:53:50 UTC 2021
On Monday, 4 October 2021 at 13:23:40 UTC, Paul Backus wrote:
> In ["Rust and Other Interesting Things"][1], Bryan Cantrill
> talks about the importance of a programming language's *values*.
>
...
>
> Approachability Integrity Robustness
> Availability Maintainability Safety
> Compatibility Measurability Security
> Composability Operability Simplicity
> Debuggability Performance Stability
> Expressiveness Portability Thoroughness
> Extensibility Resiliency Transparency
> Interoperability Rigor Velocity
>
> I thought it might be fun to ask the D community: **which of
> the above values do you think are the most important to D?
> Choose no more than 5, and reply with your answer!**
From my experience:
Use case: replacing 2 executables with one written in D in a
system consisting of multiple executables all written in C++
using various libraries and a proprietary bus system originally
designed and build in 2004.
**Approachability + Expressiveness**: almost without any friction
to get started in D coming from more than 20 years primarily C++
and also C C# python javascript. The language feels familiar and
the code written seems to be better at expressing intend than any
of the other languages I've used. More succinct code, less
comments needed for 'explaining'.
**Composability + Interoperability**: The language and its
facilities made it very easy to plug and plump together the
solution based on various D C++ and C components. Exchanging one
implementation with another approach went very smooth in the D
based code.
**Stability + Safety**: Unit test in D are godsend, it saved me
from various logic errors/misses in edge cases. The compiler
(language) saved me several times by erroring out helping and
telling me what is unsafe.
In general my experience is once a D compiler produces a binary,
it almost never crashes due to stupid mistakes which happens in
C++ quite often like out of bound access, not proper initialized
objects null pointer derefs etc.
Also I had the impression the functional completeness was much
quicker reached, because there was almost no time needed and so
no distraction from actual problem solving to get the darn thing
to run.
Another observation I made is: the final solution barely uses
classes. D module system as unit of encapsulation seems perfectly
fit for purpose.
More information about the Digitalmars-d
mailing list