6 ms·
Everyone really likes D now, How come?
- axaxs 8y agoTitle is misleading and doesn't match the headline. Shame because I thought it meant D was gaining steam, whereas it shows near the opposite.
- sametmax 8y ago100% genuine question: why would somebody learn D over rust/go/erlang (depending of your specific projects) ?
- liveoneggs 8y agoD vs go/erlang - D is a "real" systems language insomuch that you don't have a runtime spawning threads without you. D vs rust - D is 100% more familiar to anyone with C or C++ background
- efaref 8y ago> D vs rust - D is 100% more familiar to anyone with C or C++ background I had the opposite experience. I have a long history of C and C++ development, yet I found D pretty impenetrable (my team inherited some D code to maintain). Rust, however, was easy to use out of the box.
- sametmax 8y agoI have a hard time finding value in this. Mastering a language take years, so the tool better has some killer feature to make it worth the investment. I can see why Go, if you want an easy to compiled yet middle level language with good concurrency. I can see why erlang, if you want crazy concurrency, and reliability. I can see why rust, if you want c/c++ power, with a modern touch and a safety net. But what is the selling point in D ? Why should I choose D over those for a particular task, and take the time and energy on this on not something else ?
- liveoneggs 8y agoD only "competes" with rust in the list you gave, is what I was really trying to say. If you are working on something high-level enough to use erlang then I think you should. (I love erlang)
- asow92 8y agoIt feels like Java and acts like C. It almost feels like what Objective C should have been.
- axaxs 8y agoThis comment is funny to me as it shows how different programmers tastes are. Some would say that is the worst of both worlds.
- asow92 8y agoAt the end of the day these are all just tools and some work better than others depending on the job and the person wielding it.
- mhh__ 8y agoYou can write pure functional code in D, if that floats your boat.
- liveoneggs 8y agoD grew pattern matching and guards? (multi-funcs/etc)
- sametmax 8y agoWhat the difference between a guards and a plain if ? I never understood it.
- mhh__ 8y agoIf you so choose to D can have a relatively clean library implementation. The type inference isn't bidirectional (Or at least it pales in comparison to HM) so it wouldn't be as good as ML-like FP. Pattern matching is a feature of pure functional code rather than a requirement (As useful as it is, every time I touch haskell for fun I always miss the mathematical approach to coding when I then write in C-land). Enforced purity is a feature, however. That's what I was referring to. However, ..., there is no pure-IO so it would be like Haskell before Monadic IO was figured out (I assume).
- mhh__ 8y agoEven though it doesn't have the same theoretical rigour as Rust or Erlang (Go is a totally different beast), D is a really thoughtful, modern language which I - personally, of course - feel very productive in. Although I'm really behind the times on Rust, metaprogramming feels like a joke in other (Non ML-esque) languages compared to the facilities available in D Walter Bright, the man who designed most of the language along with Andrei Alexandrescu, are both C++ heavyweights and it shows. Template syntax using template!type instead of template<type> is a great - surface level - example of this attention to detail: Easier on the eyes and orders of magnitude easier for the compiler
- sametmax 8y agoWould you say that metaprogramming is an important selling point for you ? If so, it would be a sign for me no to invest in D, as my experience is that easy metaprogramming leads to more abuse than goodies. I
- mhh__ 8y agoYes. D metaprogramming is so fucking good that it's easy to do well. It's really obvious, and even at it's worst it's no worse than C++ (Except much easier to debug due to D's much less fundamentalist type system). I hate languages that deliberately take features away from the developer: This is why - although I respect the philosophy - I would never choose to use Go, for example. But to each their own, etc.
- foobarchu 8y ago> even at it's worst it's no worse than C++ I can't think of a language whose metaprogramming features get abused worse than C++, so saying it's not worse isn't really heaping praise.
- mhh__ 8y agoI was really referring to the error messages, because you can write C++ style templates (e.g. SFINAE) in D but no one does because D was designed properly so it has proper traits etc. C++ style template messages are uncommon but possible, however D is much much easier to debug because the type system is working with you and basically available in the language - in the sense that you can use traits and reflection to work out what went wrong (as opposed to stdin. byLineCopy.array.sort!((a, b) => a >b).each!writeln; This example is everyday code in D, but basically unthinkable in C++ (Possible but try getting it that short without writing your own library). It is also telling that the aesthetic style of the above code (UFCS) is a feature D has had for years but was rejected for inclusion into C++ despite BS backing it.
- philwelch 8y agoThe provided article: * Does not explain why "everyone really likes D now" * Provides no evidence that "everyone really likes D now" * Doesn't have the title of the submission (though, to be fair, the actual title is a vaguely similar rude joke that you can probably infer). * Does give actionable advice about how to start programming in D, if you wanted to do that. I guess my big, unanswered question is: what does D have over all the newer and more popular compiled languages out there that seem to occupy overlapping niches, like Go, Swift, Kotlin, and Rust? Or, for that matter, the older standbys of C, C++, Java, and C#? And if that seems like a wide spread, the obvious follow-up is: where in this space does D live? It's object-oriented (like C++, Java, C#, Kotlin, and Swift) and "makes memory access available" (like C, C++, and Rust), but that's all I can tell.
- scrumper 8y ago> * Provides no evidence... I'd go further and say it provides the opposite - it shows a low and declining search trend. The rest of it is a fairly sloppy guide on how to set up Atom for D development. Seems to have been written just to have an excuse to make that puerile joke.
- geezerjay 8y ago> I'd go further and say it provides the opposite - it shows a low and declining search trend. This. Additionally, the only moment in time when D was a reasonable concept was before C++11, when the development of C++ was stalled and there were a few pain points with C++98 that justified picking up other tools. Since then C++ started evolving and a majority of those pain points were addressed, thus leaving D without any major selling point or even purpose. To make matters worse, with the whole industry shift to the web C+ has since seen a decline in market share. Therefore D is placed as a poor replacement for the incumbent of a market share in decline.
- philwelch 8y ago> Additionally, the only moment in time when D was a reasonable concept was before C++11, when the development of C++ was stalled and there were a few pain points with C++98 that justified picking up other tools. I don't know enough about D to dispute this, but in a backhanded way, this is a pretty damning appraisal of D. It's not just the "industry shift to the web" that has led to the decline of C++. Why do people write server-side applications in Java or Go instead of C++? Why do people write mobile apps in Objective-C, Java, or Swift instead of C++? Even in the remaining domain of desktop applications and systems code, C++ isn't necessarily the go-to choice anymore. And so, if D doesn't offer anything over C++ that couldn't be addressed by bolting even more features onto C++, why the heck does it exist?
- kmbriedis 8y agoThe name of the language and this title sound so wrong... Never ever name something D Many years ago while being too naïve I created a website d-something and the name was big problem, now I see why
- mbrodersen 8y agoAlmost nobody "really likes D now". It is a failed language in the sense that it never managed to become mainstream or attract a large following.