My experiences with D recently have not been fun.

The language itself has a top notch feature rich set. The implementation, excluding bugs, feels a bit boxy and old school. .NET has a unified approach and everything seems to fit together nicely and feels consistent. The abomination of dmd, though, is it's error messages. Most of them are meaningless and you have to dive down 2 or 3 levels of assumptions to figure out what they mean. It's not too bad but because of the poor tool set it makes it difficult to debug apps.

Visual D, a mighty attempt to bring some sanity to D in windows, is simply to unpolished to work well. It brings the looks of Visual Studio but not the feel of how VS works so well with .NET. I spend over an order of magnitude more time trying to fix D bugs than I do in .NET. Unfortunately this makes it infeasible to continue to use D.

For example, I build a ~10k line app in under a week in .NET, with gui and everything. In D I'm still working on getting the libraries build. Even with all the power D has, what good is it if you can't get off the starting line. Some will write this off making some assumption, So be it.

.NET is a bliss to work in, D is drudgery. If only MS would build a D compiler similar to what it has done with C#. No offense to all those who have worked hard on D, someone has to do it. For me, .NET is like heaven, D is like hell: It's almost exclusively due to the error messages and IDE. I know many here will write off such complaints, So be it.

My main concern with .NET is portability and performance. I am going to give in to the portability and just assume Mono is good enough. Performance wise, I'd prefer D, but .NET is performant enough for most apps. Maybe in a few years things will change, I can't wait that long. Sorry guys! (not that you will miss me)

Remember, no reason to have the sharpest sword if you can't wield it.

Reply via email to