4 ms·
I kind of bet hard on D, and I know people that bet even more. Last time I used it was 4 years ago. I was using the other standard library (yeah, there were tw
by Keyframe 13y ago
I kind of bet hard on D, and I know people that bet even more. Last time I used it was 4 years ago.
I was using the other standard library (yeah, there were two, kind of), there were bugs which weren't resolved for years, there were issues with people camping on both sides of standard libraries, there was development stagnation because D2 was being pushed hard... but it all boils down to preference.
D1 (with Tango) to me was like a really really good blend of C with classes and modern stuff in it (mixins for example). I was happy with it, but then D2 started to emerge which was more templatey than I was comfortable with. I have accepted, long ago, that I am a C programmer, not C++, by heart.
Ultimately following factors threw me away from D altogether:
- my code isn't an island, I leverage a lot of libraries, and for each and every one I had to use I had to either make my own bindings or rely on somewhat unstable other people's bindings. I accepted the reality of it, but it wasn't something I wanted to waste my time on.
- D2 - it just didn't feel the same
- Lack of tools. DMD compiler, while somewhat working, was a lackluster (to be polite) compared to what I was used to in C world. There was a GDC frontend for gcc which, at the time, wasn't actively developed, there was an attempt to make a LLVM thing.. but if you wanted to work with D, at that time, you pretty much had to use DMD
- several bugs which were ignored in core development which were uncomfortable for my use. I didn't have the expertise at the time to help with resolving that. Coincidentally just yesterday I received an update from bug tracker that bug I reported four years ago is still in.
- Development of D pretty much relied on one man alone
- out of frustration and a tight deadline, I developed something in C at that time and came to a realization that "it just works". I was able to concentrate on my task at hand instead of tackling various gotchas and doing extra amount of work that I had to with bindings etc.
D is more than 10 years old. Honestly, I think it has good ideas, I really liked the approach of D1, but I think it will never catch on en masse.
- steveklabnik 13y agoMy friends and I implemented an operating system in D back in college, and I just want to say that I agree entirely with this post. It's mostly why I went into Ruby instead of staying in D, and why I'm doing Rust now instead of D today. That said, D has a lot of promise, and a lot of these issues have been worked out, but I feel like there are many people like you and I...
- Keyframe 13y agoOne common trait I see among ex D users is jumping on Rust. Rust has some serious 'corporate' power behind it, so it might be a future ahead.
- onezeno 13y agoxomb? Is that project dead now?
- steveklabnik 13y agoYes!!! I'm not sure. I haven't worked on it in a few years, the others may be keeping it going.
- pjmlp 13y ago> D is more than 10 years old. Honestly, I think it has good ideas, I really liked the approach of D1, but I think it will never catch on en masse. History proves that the only system programming languages that succeed in the industry, have been at a given moment adopted by OS vendors as their main language. It hasn't happened so far to D, but it might still happen.
- TylerE 13y agoSo what OS was written in Java?
- Keyframe 13y agoI don't follow Java at all (I wish I had time to take a few months to see what's happening), so I might be talking out of my ass. I think Java got a big boost when it became a de facto standard for communications platforms, especially considering the rise of mobile.
- gmrple 13y agoAndroid, however I would say that it was successful before android.
- possibilistic 13y agoAndroid isn't written in Java. The userland might be, but the kernel itself is Linux, and that is written in C.
- pjmlp 13y agoJava is only used for userland code, that is not systems programming.
- pjmlp 13y agoJava is not a systems programming language.
- 13y ago
- eco 13y agoA few updates on the current state of things today. The Tango/Phobos split has been resolved for awhile. You can now use Phobos, Tango, or both in the same D2 program. The number of libraries and bindings is growing rapidly. There is the new dub package manager that makes it easy to include dependencies < http://code.dlang.org/ http://code.dlang.org/ > and Deimos which is a collection of C library bindings < https://github.com/D-Programming-Deimos/ https://github.com/D-Programming-Deimos/ >. GDC and LDC are both actively developed and kept up to date with the state of DMD. It used to be you'd usually hit a bug while working on something in D but the community is really starting to notice they aren't hitting many bugs these days (especially over the last year or so). < http://dlang.org/bugstats.php http://dlang.org/bugstats.php > Everything is up on Github now < https://github.com/D-Programming-Language https://github.com/D-Programming-Language > and Walter is just one of 21 committers. Github says dmd has 72 contributors and Phobos has 116. If you don't like D2's template approach though you probably still won't be happy with it even with almost everything being better. Personally I love the power it gives you without sacrificing speed.
- Keyframe 13y agoWell that sounds promising, but I don't think I'll go back to it - maybe I'll see what's going on out of curiosity though. Thanks for the update.
- mratzloff 13y agoAn interesting comment from the mailing list: "Aside from speaking whether 5112 lines of code is really a good sign, there is separate issue regarding quality. When you will look at claim that some language (lets take for example C# or Java) "supports feature X", that really means that the feature is supported. In D this for sure means that the feature is either broken or misdesigned (shared libraries, routine code breakages, obsolete ms32 object format, AA arrays, shared, const postblits, odd template crosstalk bugs, type system holes, segfaulting lambdas, unstable stdlib, absent of third-party libraries). Untill this stuff is fixed this is a huge barrier irrespective of whether D is used in Facebook or not."
- he_the_great 13y agoI think there is a lot of truth to the statement, but not to the extreme. There are implementation issues for many claimed features, some because large and in your face, some edge cases, others due to language design. The situation is better and greatly improving. Many things have a work around. It is just one of the problems with a language full of tools and little full-time man power. Java and Go are rather simple languages so there aren't as many features to boast (e.g. not supporting shared libraries is a feature of Go, yet "broken" in D [lots of good work in git HEAD])