On 01/10/13 14:14, Dicebot wrote:
On Tuesday, 1 October 2013 at 12:02:29 UTC, w0rp wrote:
I'm waiting for Carmack to adopt D already. Barring some implementation
details (GC issues, shared libraries, bla bla) it's pretty much the perfect
language for what he wants to do. (Fast and functional in parts.) Plus, if
anyone could work around issues or figure out how to do really cool things
with D, it would be Carmack.
He is familiar with D and has shown appreciation for D `pure` functions in his
twitter posts.
One thing that I noted in his QuakeCon talk was his remarks about multiparadigm
languages versus strictly functional languages, and how the former while they
seem superior have the problem that, because you _can_ break the paradigm, you _do_.
I rather suspected he might have had D partially in mind with that remark,
although he was gracious enough to not single out any languages.
That said, although I don't feel experienced enough in functional programming to
comment with any authority, my impression is that D lets you be as strictly
functional as you want to be, and has enough to let software architects impose
strict purity etc. on a codebase. But it is arguably less nice to have to keep
marking "pure const nothrow ..." everywhere, plus const/immutable parameters,
compared to something like Haskell where everything is that way by default.
I don't suppose it's possible to do that either by scope or even by module?
module my.module const nothrow pure @safe
or
const nothrow pure @safe
{
// my code here ...
}