On 2013-08-19 22:18, Ramon wrote:
An added major plus is D's bluntly straight interface to C. And a vital one, too, because let's face it, not being one of the major players in languages basically means to either not have a whole lot of major and important libraries or else to (usually painfully) bind them. D offers an excellent solution and gives me the peace of mind to not paranoically care about *every* important library coming with it.
You can use this tool to automatically generate bindings to C libraries: https://github.com/jacob-carlborg/dstep
Criticism: OK, I'm biased and spoiled by Eiffel but not having multiple inheritance is a major minus with me. D seems to compensate quite nicely by supporting interfaces. But: I'd like more documentation on that. "Go and read at wikipedia" just doesn't cut it. Please, kindly, work on some extensive documentation on that.
You can get quite close with interfaces and templates: interface Foo { void foo (); } template FooTrait { void foo (); { writeln("foo"); } } class A : Foo { mixin FooTrait; } class B { void b () { } } class Bar : B, Foo { mixin FooTrait; } -- /Jacob Carlborg