5 ms·
What are some prevailing opinions on why it did not succeed?
by ionforce 9y ago
What are some prevailing opinions on why it did not succeed?
- bachmeier 9y ago> why it did not succeed? Don't you mean "why it has not succeeded yet?" To some extent, I'm inclined to ask what you mean by success. It's a great language, it has three compilers, it's making progress, and it's possible to have fun writing fast, correct code quickly. It's been more successful than any other language as far as I'm concerned. Most likely you are asking why it hasn't seen widespread usage in the enterprise (like half of C++'s usage). That's a very high standard. Cost-benefit analysis usually leads to using established languages because there are benefits. D doesn't even have a very good IDE situation (I've been told), only recently got a package manager, etc.
- earenndil 9y agoEh, it only really has one compiler. DMD, LDC, and GDC all use the same frontend, they just interface to different backends (DMD, LLVM, and GCC).
- geezerjay 9y ago> Don't you mean "why it has not succeeded yet?" No, OP got it right. D had a shot at success while C++'s standardization process remained stagnant, and D could pick up the slack as it wasn't bound by backward compatibility requirements or the need to update a standard. Once ISO 14882:2011 was approved and C++'s standardization effort gathered speed, D lost the only competitive advantage and lost its chance at relevance.
- qznc 9y agoD is not dead. It is steadily growing. Not as fast as Rust for example, but still healthy. I agree that there was a nice opportunity before C++11. Now D is lurking in the shadows for another opportunity and slowly building. I believe D would be a great language for startups because it gives you options. You can do it quicky and dirty (like Python/Ruby/Perl), you can do it fast (like C/C++), you can do it safe (like Java, but not quite Rust), you can be generic and multi-paradigm (like C++), you can be easy (like Python).
- nicwilson 9y agoWhile C++ standardisation hay have gathered momentum, it still has enormous inertia (c.f static if, modules, ranges, attributes that were proposed for C++ that either failed to get in or are nowhere near as useful. I can't make do without any of those). The agility of D by by comparison is one of its greatest strengths.
- geezerjay 9y ago> While C++ standardisation hay have gathered momentum, it still has enormous inertia That's pretty much irrelevant. The last couple of standards already updated C++ so that it covered all aspects that were deal-breakers decisions on whether to pick up C++ or any alternative whose selling point was being an updated C++. After C++11 (and now C++17) no one in their right mind would decide to rewrite a whole project because of static ifs. Moreover the irrelevance of D is the only reason why it's trivial to reinvent D when it suits anyone's fancy. A committee of experts deciding on what goes into a standard is not the same as a developer deciding on a whim on what he might implement next. If D was relevant and it's adoption motivated an ISO standard to coordinate which features went into any implementation then I seriously doubt that it would do better than C++.
- systems 9y agoI would strongly recommend you browse and maybe contribute in the Dlang forum https://forum.dlang.org/ https://forum.dlang.org/ , to build your own opinion, the forum is very friendly and welcoming for beginners Some of the prevailing opinions on why D didn't succeed - Garbage collection, D has a GC, and for a very long time it seem to have been positioning itself as a C++ replacement, having a GC, seem to have hurt D more than it benefited it, in this regard - D vs D2, the current Dlang is actually as I understand D2, moving to a new version that is not fully backward compatible seem to have at least in the past scared away some possible adopters, this seem to be no longer the case, there is only one D now, and this might be a case when lack of popularity was helpful - licensing issues, I really dont know much about this, but there was some licensing issue surrounding the main D lang implementation DMD, which was also resolved recently The above 3 points, are what I would call the "prevailing opinions" Two of them are now fully resolved and only the first one GC , is a work in progress ... once its resolved, and it seems they are working on it ... there will be no excuses What I personally believe, after lurking in their forum for a while - D, doesnt have a good product owner, it lacks vision, and it have no competitive advantage - Walter Bright and Andrei Alexandrescu, are super smart developers, but in my humble opinion ... very bad Product Owners, and just to support my opinion, before anyone gets angry at me ... we all agree D is not popular, so ... this is just a statement of the obvious - Strategic advantage is a key word here, D have none, and again, the Strategic is a key word here, even if some will list for you the advantages of D, none of them is Strategic With all I have said, dont let this stop from learning D, I do plan to learn more of it, and while I don't see D taking over from C++, Go, OCaml or Python ... I think it might be a good tool for small teams, who don't want to be fragmented across many languages
- le-mark 9y agoTo me it seems like there are three broad categories of applications one would use D to implement; network services (ie servers), gui apps, and "other" such as compilers or command line tools. IMO go has won for writing servers; it's incredibly compelling, it has it all (except generics, as someone will surely interject); crypto, ships with easy to use protocol impls (ie http, websocket, etc). The gui lib story for D isn't clear to me at all. Are there bindings to gkt or qt for example? Maybe someone can respond here about that. That leaves "other" which, sure, D seems like a great option.
- uvtc 9y agoI think a big part was the licensing issue. Before April 2017, the official compiler back-end was some non-open-source license (dunno which). In this day and age I couldn't see using a compiler that wasn't free software. But now that's been fixed --- the reference compiler is now all Boost licensed, and GDC (the GCC front-end) has even been officially accepted into GCC (woot!). Also, I'm not sure how long the standard package repository and module installer (dub) has been around. But that's here now too. I think the future of D looks very bright. I'm still learning, but to me D seems somewhat similar to Python, except: * it's compiled to native code instead of interpreted * it's syntax uses curlies/semis instead of whitespace * it's statically typed (but has type inference so you can type many variables as just "auto" and the type is inferred) * it has [dub](https://code.dlang.org/ https://code.dlang.org/) instead of the [cheeseshop](https://cheeseshop.python.org https://cheeseshop.python.org) (of course, the cheeseshop is currently much larger) Anyhow, very much enjoying D so far. :) I expect D's popularity to grow as more people desire a statically-typed, compiled language, with the convenience of a GC and easy access to native (C) libraries.
- qznc 9y agoI think about that sometimes. I do not believe that it is really a technical problem. While there are arguments to be made (not safe by default, garbage collection, lacking IDE support, ...) these are not killer arguments. In many cases, D has more advantages than disadvantages. Lack of manpower is a problem. Only Walter Bright and Andrei Alexandrescu work full-time on D. The rest is volunteers. This means development proceeds very slowly compared to Go or Rust. On the other hand, maybe it is more a symptom than the problem. Perception is a big part. Even in this discussion you can see people remember the "dual standard library problem" which was solved a decade ago. Maybe D just needs a good PR team.