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.

Reply via email to