5 ms·
Yes, I just wished more people liked D so it got momentum.
by VHRanger 5y ago
Yes, I just wished more people liked D so it got momentum.
- WalterBright 5y agoD doesn't have evangelists or a marketing team. It's just people who find it really useful.
- VHRanger 5y ago
- zozbot234 5y agoIs it RESF, or is it Rust's unique feature of memory safety (and data race safety) without GC? D is a nice language to be sure, but it's going to have trouble matching these features. Of course, this is not meant as a criticism of D - other languages like Jai are practically in the same boat. The C++ folks are at least aware of the challenge, as is clear from the C++ Core Guidelines effort.
- WalterBright 5y agoD already has most of the memory safe features of Rust. Of course, the most valuable memory safety feature is array overflow protection, which D has had since its inception. By most valuable, it tops the list of security vulnerabilities in compiled code, year after year. D also has a prototype borrow checker.
- LAC-Tech 5y agoRust definitely has a lot of merits. I was definitely following it, and excited by its release. But you cannot deny the RESF was obnoxious. And pervasive. But ultimately successful - the people who voiced their dislike would get down-voted to oblivion.
- mustache_kimono 5y agoThe anti-Rust stuff was/is pretty tiresome too. FWIW, I think disagreements about the choices Rust made make plenty of sense, or even the disagreements re: its style. But that wasn't what most of the anti-Rust stuff was/is -- it was/is just resentment regarding the hype of a thing, which is just the worst sort of criticism.
- sundarurfriend 5y agoRESF = Rust Evangelism Strike Force apparently, for those not in the know.
- pyjarrett 5y ago> 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 `begin` and `end` though.
- WalterBright 5y ago> You have to get over `begin` and `end` though. Ada would be smart to get rid of that.
- pyjarrett 5y agoIt's probably not removable after almost 40 years. 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).
- WalterBright 5y agoActually, I liked Ada since I read the Milspec on it back in 1981 or so. It had its positive influence on D!
- GoblinSlayer 5y agoI heard they work on a curly brace variant of ada.
- mustache_kimono 5y agoSomeone else made a really good point about hype today: 'One of the dumbest lessons I’ve learned in my career is that you should never disregard something that has hype behind it, even if you don’t think the tech makes sense. [0] Most “tech adoption” problems are really human coordination problems. Hype solves those. It doesn’t matter if you have a better solution, or that you think the proposed solution is stupid. [1]' [0]: https://twitter.com/matthew_d_green/status/1480974268875874310 https://twitter.com/matthew_d_green/status/14809742688758743... [1]: https://twitter.com/matthew_d_green/status/1480974783181434887 https://twitter.com/matthew_d_green/status/14809747831814348...
- usefulcat 5y ago> you should never disregard something that has hype behind it Do you have an opinion on how this sentiment applies to blockchain tech? I’m not trolling, I think the sentiment is interesting and blockchain tech seems obviously relevant to that sentiment.
- mustache_kimono 5y agoYou should check out the tweet linked above. Matthew Green is talking about NFTs.
- jancsika 5y ago> rust evangelism strike force I see we've got an n-gate.com reader here. :)
- deleted 5y ago[deleted]
- colesantiago 5y agoStill wondering why don't people like D more after all these years it's been there.
- scotty79 5y agoProbabaly lack of killer application. If you released super popular whatever (game engine, embedded platform, 3d design software) that uses D as its customization language suddenly a lot more people would have a good reason to learn D.
- vnorilo 5y agoThe largest-scale usage of D that I have personally seen is a AAA game studio who had an in-house 3D-engine in C++, and chose to write plugins and game logic in D because of easy integration and hot-swappability. AFAIK worked out well for them.
- bombcar 5y agoWhich is amusing because the compatibility means a lot of customization would just be written in C.
- epage 5y agoI first learned C++ 20+ years ago. While I've appreciated it, I also knew its shortcomings and had been looking for a replacement. D had some missteps along the way that lost some initial traction. I also wouldn't be surprised if timing was a factor with more C++ warts being added while the programming community has learned more lessons along the way that could be applied to the next languages (Go, Rust). As I followed D, the problems I remember there being were: - Compiler availability (DMD vs GCC) - Split stdlib - It was aiming for C/C++ post-Java but covered more Java use case (GC) than the remaining C/C++ ones (no-GC). It took a while before BetterC. No idea how well that ecosystem has matured. - It felt like they were shoehorning every feature into the language rather than having a cohesive design strategy These have slowly been resolving but Rust is now here, targets most of BetterC's use cases by default, and the borrow checker has let me squeeze out performance out of my code that would have been irresponsible without the compiler making it maintainable.
- skocznymroczny 5y agoIronically as someone who wishes D distanced itself from C++ more, my feeling is that D is catering too much to the C++ programmers and not catering to the "Java programmers" enough. There is a lot of effort going into not only binding to C/C++ libraries, but also C/C++ interop, which appeals to a small group of users who potentially want to migrate a C++ project into D incrementally.
- WalterBright 5y ago> shoehorning That happens to all languages over time. The more interesting thing is how well do those features fit in with the language's style.
- epage 5y agoD was still fairly young when I was looking at the feature list [0]. The impression I walked away from it with is "Hey, this thing in boost is cool, let's bake it into the language". [0] https://web.archive.org/web/20110320130326/http://www.digitalmars.com/d/2.0/comparison.html https://web.archive.org/web/20110320130326/http://www.digita...
- silisili 5y agoI 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 enforce it. It feels a lot like a language for C(++) folks, who IMO tend to be more conservative and entrenched. Given the initial paragraph, maybe I'm just not smart enough to grok it :).
- WalterBright 5y agoWow, and someone else just yesterday was giving D credit for not thrusting everything into the global name space like C does! Yes, two different D modules can declare the same name as public, and they will not conflict with each other.
- silisili 5y agoApologies if I misworded what it's doing. It wasn't about name clashing, but readability. It's not clear at first glance what functions belong to which imports. As an example: https://tour.dlang.org/ https://tour.dlang.org/ Three imports and what appear to be four unqualified functions from them.
- WalterBright 5y agoI'm sorry you don't like it, but that's a feature! But if there are identical names from two different imports, the compiler will demand that you qualify them. Or just use static import.
- epage 5y agoWith all respect for all the work you've done in C++ and D but imo that is a mistake. This is one of the reasons I have a distaste for languages like C# and Ruby and prefer languages like Python and Rust. I've had a hard time following what is happening in other people's Ruby code because of this behavior. Whether items are imported from a module should be left up to the developer and not done on their behalf.