On Monday, 4 October 2021 at 13:23:40 UTC, Paul Backus wrote:
>In "Rust and Other Interesting Things", Bryan Cantrill talks about the importance of a programming language's values.
Values, he says, are the things a language prioritizes--the things it chooses when difficult tradeoffs have to be made. For example: everyone agrees that both "safety" and "performance" are valuable, but when forced to choose, some languages (Java, Python) are willing to trade away some performance for additional safety, whereas others (C, C++) would rather give up safety to gain performance.
When we're choosing a programming language, Cantrill tells us, choosing one with the right values is just as important as choosing one with the right features and ecosystem--because values are what determine how those features and ecosystem will develop over time.
One slide in his presentation contains a list of things that a programming language might value:
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!
I've put my answer below, encoded using ROT13. Try to come up with your own answer before you read mine, to avoid biasing yourself.
V guvax Q'f svir zbfg vzcbegnag inyhrf ner
-
Nccebnpunovyvgl - obgu Q'f flagnk naq ynathntr srngherf ner qrfvtarq gb or snzvyvne gb hfref bs bgure cbchyne ynathntrf (r.t., P, Wnin, Clguba, Wninfpevcg). gbhe.qynat.bet zragvbaf n "tenqhny yrneavat pheir" nf na rkcyvpvg qrfvta tbny.
-
Rkcerffvirarff - jvgu srngherf yvxr grzcyngrf, zvkvaf, naq bcrengbe bireybnqvat (vapyhqvat bcQvfcngpu), Q vf bar bs gur zbfg rkcerffvir ynathntrf guvf fvqr bs Yvfc.
-
Fnsrgl - abg whfg @fnsr, ohg nyfb qrsnhyg vavgvnyvmngvba bs inevnoyrf, obhaqf-purpxvat sbe neenlf, rkprcgvbaf sbe reebe unaqyvat, naq ybgf bs bgure yvggyr qrpvfvbaf.
-
Cresbeznapr - angvir pbzcvyngvba, bs pbhefr, cyhf ybj-yriry srngherf yvxr enj cbvagref, vayvar nfz, naq ohvyg-va FVZQ bcrengvbaf.
-
Vagrebcrenovyvgl - abg bayl qbrf Q unir orfg-va-pynff P vagrebc, naq gur qvfgvapgvba bs orvat bar bs gur bayl ynathntrf gb rira nggrzcg P++ vagrebc, vg nyfb unf fhccbeg sbe Bowrpgvir-P pynffrf naq PBZ vagresnprf.
I'm not an expert so I'm a little hesitant to post, but I'd say:
Interoperability with C libraries - There are so many C libraries that do interesting things
Performance - I like that the performance is reasonable, although I think most mainstream languages are getting there.
Expressiveness - Any time I want to do something, from pointer based string functions to meta programming to multithreading via messaging, I find it in D. There is low mental friction. I also like that I can start with something not as strict and add strictness as I go.
Free Nature - I like that it's future is not owned by Oracle, Apple or anyone like that.
I also value the portability between windows and linux so I guess I'll make that number 5