Yes, I just wished more people liked D so it got momentum.
I wanted to like D because I respect Walter a lot, and D's community probably has by far the highest SNR of any community I've visited... seriously smart people. But the language just wasn't for me. Right off the bat, the default import style which thrusts everything exported into the default namespace like C seems odd at this point. Apparently one can use what are called static imports, but as a code reader I can't…
Why I Like D
51–60 of 134 posts
Re: Why I Like D
#52Earlier quoted context omitted.
Quoted post unavailable.
> compile times, ugly syntax, ergonomics This is why I write in Ada--it's C++98 with cleaner syntax and a bunch of nice/new features (array bounds, pre/post conditions, etc). It's package-based, so types do not "contain functions", so free functions, member function, who cares, it's all written and callable the same ways. There's even a real module system built in for decades with packages. You have to get over `begi…
Ada would be smart to get rid of that.
Re: Why I Like D
#53> Go did not have generic types at the time so I excluded it immediately I wonder how many people are missing out on Go for a feature they wouldnt miss 80-90% of the time?
Generic code is written with D a lot more than I'd originally anticipated.
Just surprises me how quickly people write it off. Horses for courses!
Re: Why I Like D
#54BetterC got a lot of resistance at first, along the lines of who needs it. (BetterC is a subset of D that only relies on the C standard library.) But over time it has accumulated a lot of users, as being C without the troubles. We've gone a step further with ImportC, and now C code can be imported directly into the D compiler, which makes it easy to interface D code to your existing C base.
ImportC is a killer feature, IMHO. Makes the choice to use D quite an easy one for a lot of tasks. But - it's not production ready yet, is it?
Re: Why I Like D
#55Re: Why I Like D
#56Earlier quoted context omitted.
> compile times, ugly syntax, ergonomics This is why I write in Ada--it's C++98 with cleaner syntax and a bunch of nice/new features (array bounds, pre/post conditions, etc). It's package-based, so types do not "contain functions", so free functions, member function, who cares, it's all written and callable the same ways. There's even a real module system built in for decades with packages. You have to get over `begi…
> You have to get over `begin` and `end` though. Ada would be smart to get rid of that.
It has expression functions which you can wrap a return result in () and avoid it.
The important part is that it's surprisingly consistent in that 3 of the 4 structural elements are nearly all self-similar in their declare/begin/end format (protected type being the 4th and the difference).
Re: Why I Like D
#57Re: Why I Like D
#58A colleague (who is probably one of the smartest people I've met) made VectorFlow targeting D: https://github.com/Netflix/vectorflow I've never had a chance to look at it much, but I think the magic is in the metaprogramming capabilities. It's more principled than C++ templates, more ergonomic than Scala macros, and more practical than Template Haskell. Somehow. (At least this was my impression from discussing it)
Re: Why I Like D
#59BetterC got a lot of resistance at first, along the lines of who needs it. (BetterC is a subset of D that only relies on the C standard library.) But over time it has accumulated a lot of users, as being C without the troubles. We've gone a step further with ImportC, and now C code can be imported directly into the D compiler, which makes it easy to interface D code to your existing C base.
ImportC is a killer feature, IMHO. Makes the choice to use D quite an easy one for a lot of tasks. But - it's not production ready yet, is it?
Re: Why I Like D
#60Earlier quoted context omitted.
You seem to have some familiarity with the language. Nonetheless, you're understating a bit the degree of integration with C. You can also: create a shared library in D and call it trivially from C or any language with a FFI, call C shared libraries with little effort from D, compile a C file and add the .o file to your D program compilation command directly, use dstep to write C bindings for you, and directly #inclu…
real r/dontyouknowwhoiam moment here