Thread overview | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
September 20, 2015 Moving back to .NET | ||||
---|---|---|---|---|
| ||||
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. |
September 20, 2015 Re: Moving back to .NET | ||||
---|---|---|---|---|
| ||||
Posted in reply to Adam | On 09/20/2015 01:32 PM, Adam wrote:
> For me, .NET is like heaven, D is like hell: It's almost exclusively due
> to the error messages and IDE.
Off the top of your head, can you list a few of the worst error messages you've encountered?
Also, what are the most important features VisualD is lacking?
Andrei
|
September 20, 2015 Re: Moving back to .NET | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrei Alexandrescu | On Sunday 20 September 2015 19:39, Andrei Alexandrescu wrote: > Off the top of your head, can you list a few of the worst error messages you've encountered? Not Adam, but this is on the top of my head as it just happened: http://stackoverflow.com/questions/32681660/compiler-thinks-enum-values-are-starting-at-129 |
September 20, 2015 Re: Moving back to .NET | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrei Alexandrescu | On Sunday, 20 September 2015 at 17:39:46 UTC, Andrei Alexandrescu wrote: > On 09/20/2015 01:32 PM, Adam wrote: >> For me, .NET is like heaven, D is like hell: It's almost exclusively due >> to the error messages and IDE. > > Off the top of your head, can you list a few of the worst error messages you've encountered? > > Also, what are the most important features VisualD is lacking? > > > Andrei my favourite: void foo(ref int a) {} void main() { foo(42); } DMD64 D Compiler v2.068.2-b1: Error: function a.foo (ref int a) is not callable using argument types (int) Issue: https://issues.dlang.org/show_bug.cgi?id=11529 maybe there are more related issues in the bug tracker. Based on a quick look in the C++ frontend some time ago, this should be quite simple to fix by inserting a check for 'rvalue as ref' before the error message is printed. At the moment I have no time to figure out how dmd works and to implement this. May there are some edge cases, too. |
September 20, 2015 Re: Moving back to .NET | ||||
---|---|---|---|---|
| ||||
Posted in reply to anonymous | On 09/20/2015 01:46 PM, anonymous wrote: > On Sunday 20 September 2015 19:39, Andrei Alexandrescu wrote: > >> Off the top of your head, can you list a few of the worst error messages >> you've encountered? > > Not Adam, but this is on the top of my head as it just happened: > > http://stackoverflow.com/questions/32681660/compiler-thinks-enum-values-are-starting-at-129 Filed it here: https://issues.dlang.org/show_bug.cgi?id=15090 -- Andrei |
September 20, 2015 Re: Moving back to .NET | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrei Alexandrescu | On 9/20/2015 12:04 PM, Andrei Alexandrescu wrote: > Filed it here: https://issues.dlang.org/show_bug.cgi?id=15090 -- Andrei Fix: https://github.com/D-Programming-Language/dmd/pull/5106 |
September 20, 2015 Re: Moving back to .NET | ||||
---|---|---|---|---|
| ||||
Posted in reply to Adam | On Sunday, 20 September 2015 at 17:32:53 UTC, Adam wrote:
> 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.
>
> Remember, no reason to have the sharpest sword if you can't wield it.
The problem is that you seem to be accustomed to an IDE of which D is not tied to.
That would limit (as you put it) its portability. But at the same time you want a unified tool-set?
Ask any of the vim/emacs users here and they will tell you otherwise.
|
September 21, 2015 Re: Moving back to .NET | ||||
---|---|---|---|---|
| ||||
Posted in reply to Israel | I also hate errors when a lambda contains some errors. [ 1 ].countUntil!(a => a == undeclared_something); Error: template std.algorithm.searching.countUntil cannot deduce function from argument types !((a) => a == undefined)(int[]) |
September 21, 2015 Re: Moving back to .NET | ||||
---|---|---|---|---|
| ||||
Posted in reply to Adam | On Sunday, 20 September 2015 at 17:32:53 UTC, Adam wrote:
> 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 what he means about visual D, it can be quite difficult to work with and doesn't seem very polished. That being said xamarin studio with the mono-D plugin is just opposite, or at least in my own experience and it supports both windows and *NIX.
|
September 21, 2015 Re: Moving back to .NET | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrei Alexandrescu | On Sunday, 20 September 2015 at 17:39:46 UTC, Andrei Alexandrescu wrote: > Off the top of your head, can you list a few of the worst error messages you've encountered? Fine in release mode, error in debug mode: struct S { int value; } void main(string[] args) { Array!S stuff = [S(3), S(1), S(2)]; stuff[].sort!((ref S a, ref S b) => a.value < b.value); } std/range/package.d(7180,24): Error: 'std.range.SortedRange!(RangeT!(Array!(S)), __lambda2).SortedRange.dbgVerifySorted' is not nothrow std/algorithm/sorting.d(982,29): Error: template instance std.range.assumeSorted!(__lambda2, RangeT!(Array!(S))) error instantiating main.d(75,9): instantiated from here: sort!(function (ref S a, ref S b) => a.value < b.value, cast(SwapStrategy)0, RangeT!(Array!(S))) Bit |
Copyright © 1999-2021 by the D Language Foundation