The D features which interest me the most are those supporting contract-based programming. I want to experiment with that and I know no other production ready language which has this level of support, except the original gangsta Eiffel but the only supported Eiffel compiler is proprietary and expensive.

Thing is, while contract-based programming was promoted by Walter Bright in the early days it seems to get no attention nowadays. There are critical bugs in it e.g. contracts do not work correctly with interfaces. Also the compiler does not utilize the contracts for advanced static analysis and optimizations which are enabled by them.

But the most worrying thing is that Andrei Alexandrescu obviously does not like contract-based programming at all. I read a thread here where he wrote you should get rid of those in/out contracts and replace them with assert()s in the function body.

Now we all know that the vultures are already circling above Mr. Bright and after his departure Alexandrescu will be D's Ceausescu (horrible pun intended) and that really makes me worry about the future of contract-based programming in D.

But I am not following D's development that closely it is just one of many interesting languages I casually watch / consider for experiments. So I would like to hear a more inside view of the current and future state of contract-based programming in D.

Reply via email to