What is the Philosophy of D?

skymuse skymuse7 at gmail.com
Mon Oct 16 13:56:34 UTC 2017


On Monday, 16 October 2017 at 00:25:32 UTC, codephantom wrote:
> D's overview page says "It doesn't come with .... an overriding 
> philosophy."
>
> Is philosophy not important?
>
> I'd like to argue, that the problem of focusing on getting the 
> job done quickly and reliably, does *not* leave behind 
> maintainable, easy to understand code, but rather it leads to 
> unintended outcomes ...
>
> If the philosophy of C, is 'the programmer is in charge', what 
> might the philosophy of D be?
>
> e.g. Maximum precision in expression, perhaps?

I believe D not having a philosophy was very important when I 
ported all my projects from python to D. Let me explain.

I had a very important project that I've been using everyday for 
two-three years, written in python, and I grew tired of the 
negative effects of interpreted languages. I needed to take a 
risk and perform a complete rewrite to counter the issues. My new 
language needed to excel in the following categories for the 
rewrite to be successful:  performance, testing, and learning 
curve. The candidates were Rust, Go, Haskell, Swift, and of 
course D.

Rust had a difficult learning curve and it was not easy to port 
Python code to Rust, therefore that language was ignored. Haskell 
stuck to the philosophy of a purely functional language, which 
made the learning curve dramatic and I had to ignore this 
language. Swift seemed to be focus more on cocoa apps over 
command line apps, so I ignored this language as well. This left 
me with Go and D, both languages that solved my requirements. Let 
me tell you why I choose D.

D gave me the freedom to code the way I wanted to, Go forced me 
to think "simply". D gave me every feature possible to solve my 
problem, Go took them away. D allowed me to program in a style 
that matched the problem at hand, Go forced me to follow only one 
style. Are you seeing the pattern? When you religiously follow a 
philosophy, you're limited to only solving problems that play 
well with that philosophy.


More information about the Digitalmars-d mailing list