Szymon Gatner:

http://bartoszmilewski.com/2013/09/19/edward-chands/

From the blog post:

Imperative languages offer no protection against data races — maybe with the exception of D.<

What about Ada and Rust?


Ask any C++ guru and they will tell you: avoid mutation, avoid side effects, don’t use loops, avoid class hierarchies and inheritance.<

At Going Native 2013 there was a very good talk that among other things suggests to avoid raw loops in C++ code. But while this is good advice (so much that raw loops are becoming a bit of code smell for me), there are several situations where imperative loops keep being better for me. Explicit recursion is not always more readable and more easy to understand than imperative foreach loops.

While most functions could and should be strongly pure, I often like mutation and imperative code inside functions. Haskell is a purely functional language, but I prefer a mix, like D, Scala, F#, etc. So I have to say that perhaps "D is the best functional language"[1].

Bye,
bearophile

[1] that is as much false as saying that "Haskell is the best imperative language" as some haskellers sometimes say :-)

Reply via email to