6 ms·
This is basically the work of one tireless man; Iain Buclaw. Many thanks to him for putting in so much time and energy into this. It took 6 years from first sub
by eco 9y ago
This is basically the work of one tireless man; Iain Buclaw. Many thanks to him for putting in so much time and energy into this. It took 6 years from first submission to get it in. Here are the slides from his 2017 DConf talk about the work that went into making this happen: http://dconf.org/2017/talks/buclaw.pdf http://dconf.org/2017/talks/buclaw.pdf
- baybal2 9y agoSlowly but steadily. Given the fact that D has not managed to die when it had so many chances to, I tell that D has better chance at mass adoption as "a better C++" than the current wave of Swift/Rust/Go that rely on "life support" from a corporate donor.
- steveklabnik 9y ago> the current wave of Swift/Rust/Go that rely on "life support" from a corporate donor. Most Rust contributors are not Mozilla employees. Losing people to work on Rust full-time would be a setback, but we're not really reliant on it; we'd evolve more slowly.
- kibwen 9y agoIt's a bit of a stretch to cast corporate funding as a negative, especially when the direction of Swift/Rust/Go are all mostly directed by community consensus rather than the corporate middlemen signing the paychecks (see the Swift community's rejection of SE-0110, the Rust's community's rejection of struct inheritance, and the Go community's rejection of aliases). Given the opportunity I'm sure that D would delight in having a corporate sponsor; financial security of D development and infrastructure was a large part of the impetus for the D Language Foundation, after all. Casting sponsorship as "life support" when all three of these languages have thriving communities simply comes across as petty.
- steveklabnik 9y agoD also has a foundation model, which could (I don't know anything about their financials) provide similar support to a company, but spread among companies instead.
- kal31dic 9y agoIt's much more anti-fragile to have corporations who sponsor projects (as do we) than one or two key official sponsors. And it suits D's breadth too, because there's no single company that uses D for everything that's possible to do with it. Makes sense for Google to sponsor Go. Who is supposed to sponsor a language with versatility that encompasses C,C++ and Python and runs on the gamut of platforms. A single sponsor using D on Linux might direct energy away from Windows and embedded... https://dlang.org/blog/2017/05/31/project-highlight-excel-d/ https://dlang.org/blog/2017/05/31/project-highlight-excel-d/
- jeffdavis 9y agoMozilla is not a normal corporation though. I donate, and I suspect many others do, as well. So maybe rust could be seen to have a lot of tiny sponsors rather than one big one?
- geezerjay 9y agoIf I'm not mistaken, Rust is being sold as a better C, not C++. Go is being marketed as a higher level language than C and Rust focused on developing network-aware concurrent applications to fill specific server needs. I may be wrong, but I'm not really sure that they target C++ or aim to replace it, unlike D. Perhaps that's the reason why both Rust and Go managed to gain so much traction and goodwill, because they actually offer entirely different takes on programming. D, on the other hand, tried to fix problems that existed only due to the lack of work developing C++ beyond the 98 standard. Once the C++11 standardization process took off, D was pushed away into irrelevance.
- steveklabnik 9y ago> If I'm not mistaken, Rust is being sold as a better C, not C++. We generally try to market Rust as a good language on its own merits rather than a "better X." That said, there are undoubtably comparisons to make, but the latest iteration of our marketing is "confident, productive systems programming."
- geezerjay 9y agoThanks for taking the time to clear that up. Kudos.
- jordigh 9y agoI emphatically disagree that C++11 has made D irrelevant. With C++11, I still have to think about fifty possible ways to do something, old and new, and all of the possible different implications and risks and segfaults I could get with each. I don't have the luxury of ignoring all C++ written before 2011, nor can I ignore all of the design decisions before 2011 that resulted in the current status of C++ features. After working with C++11 (or C++14 or C++17), D is such a breath of fresh air. Everything is so... easy. I can do what I want, and I don't have to worry about doing just the wrong kind of thing to get a segfault or UB. I might get stack traces at runtime if I make a mistake, or even better, compiler errors because my types didn't check correctly or my compile-time evaluations had errors, but the language is much simpler and cleaner because it's been able to throw out the baggage of C++. In fact, it's thrown it out twice, once for D1 and again for D2, what is now simply called "D". And being able to actually throw out cruft without concerns for backwards compatibility is why D isn't irrelevant.
- WalterBright 9y ago> D has not managed to die when it had so many chances to One interesting thing about D is that we don't have to answer to anybody, so nobody can kill D other than us. We just keep steadily pushing forward regardless.
- throwaway7645 9y agoThanks for the hard work Walter. Random question: I heard D has something like C#'s LINQ. Is that true?
- WalterBright 9y agoIt's D's support for ranges and pipeline programming.
- throwaway7645 9y agoThanks for the reply! That helps a lot as my search for LINQ in D was a failure.
- CyberShadow 9y agoSebastian Wilzbach compiled this comparison of LINQ and D range primitives: https://github.com/wilzbach/linq https://github.com/wilzbach/linq
- int_19h 9y agoI don't think it's meaningful to put Swift, Rust and Go in a single bucket when comparing them. They're languages targeting different levels of abstraction, with very different approaches as a result. Some people refer to all of these as "better C++", but it's meant in very different and incomparable ways. For example, Rust is ostensibly a "better C++" in a sense that it retains the low-level, zero-overhead (no GC) etc nature and powerful metaprogramming facilities. Go is a ostensibly a "better C++" because it promotes higher-level, safer abstractions that are still "fast enough" (but not zero-overhead). Ditto Swift. D is arguably in the same bucket as Swift, and partly as Go. I don't think it's very useful to compare and contrast it against Rust. And I think that of all of these, Rust is the only one that can truly claim to be a "better C++" in a meaningful way. Others are "something better than C++ for most apps you'd write in C++ today".
- pjmlp 9y ago> Others are "something better than C++ for most apps you'd write in C++ today". As big C++ fan and language geek, I am pretty confident that if Java and .NET had taken the route of all other alternatives in the 90's (Oberon, Eiffel, Modula-3, Delphi,...), C and C++ would be less relevant today than they turned out to be. This because many people make use of them, just because they are the only languages they know about compilers that produce AOT executables, with the option of static linking them. Maybe even Longhorn would have been a success, instead of having to wait for UWP with .NET Native.
- throwaway7645 9y agoI agree with your points. I do like to bring Nim up as it uses python like syntax with types and then transpiles to C. You get a fast and small native binary and can choose from 2 different GC or no GC. It has a small, but very active community.
- int_19h 9y agoIndeed. With C# especially it is rather ironic, because the timeline of its development closely overlaps with D - I remember learning the newly released C# 1.0 as I was experimenting with those early 0.x versions of D.
- Veratyr 9y agoI don't think that's true. Despite their corporate life support and relatively young ages, Go, Rust and Swift are all in the top 25 most active languages on Github (https://gist.github.com/alysonla/e14c01ec7a0d2823e7317f7b58b22926#file-languages-by-pr-sql-L22 https://gist.github.com/alysonla/e14c01ec7a0d2823e7317f7b58b...) and D is not (and never has been). The masses have had a long time to adopt D and I wouldn't get my hopes up simply because it's not dead yet.
- WalterBright 9y agoSo far 2017 has been a banner year for D, with the fully open sourcing of it and now the gcc incorporation!
- kaleidic 9y agoPlus betterC and gpu target.
- WalterBright 9y agobetterC isn't quite ready yet, but I expect it to be game-changing. The DCompute project (supporting GPUs with D) is a huge deal, too.
- nicwilson 9y agoYeah, I'm looking forward to getting DCompute into orbit.
- fithisux 9y agoIf it is betterC and not betterC++ then it will be a game-changer.
- nicwilson 9y agoThe Dcompute kernel language (which for the most part is plain D, the compiler is completely reused) has the usual set of restrictions that any kernel languages have: no exceptions, recursion, runtime (which is what betterC is about), function pointers. It still has all the the features that make D great, sane templates (will work across both host and device to a degree), ranges, CTFE (no need to precompile you lookup tables) and so on.
- Ar-Curunir 9y agoMost people I know have not heard of D, but have definitely heard of Go, Swift and (less often, but still frequently) Rust. If in 16 years D has not achieved mass adoption, what is different now, when there are more competitors that offer better features?
- kaleidic 9y agoIt's a big world out there. Would you ever imagine that D would be taking market share from... Extended Pascal? But there's a naval architect who designs great big ships with a 500k sloc codebase he is exploring porting to D. Web guys get the attention but enterprise users are a much bigger world than just that. If something is growing very quickly then saying it hasn't yet dethroned C, so it won't ever be significant seems to me to be a bit brittle thinking. Compound growth and the passage of time - thats what has been underway for some time now. http://erdani.com/d/downloads.daily.png http://erdani.com/d/downloads.daily.png
- Ar-Curunir 9y agoI did not compare D to C, but rather to Rust, Swift, and Go. Compared to D, Go already has huge marketshare. Rust, similarly, excels in spaces that D does not endeavor to work in (no-managed-runtime settings), and is beginning to see adoption in areas where performance is critical. From what I have seen of D, it provides a C++ without some of the cruft, but without trying to solve other issues with C++-like languages (for eg: usefulness of Algebraic Data Types). Why should someone choose D today over Go or Rust for any project? I have yet to see a convincing answer.
- acehreli 9y agoOver Go: D has meta programming, exceptions, and many more useful features Over Rust: No need to learn new concepts like borrowing
- rbehrends 9y ago> Why should someone choose D today over Go or Rust for any project? D over Go: D has much better language mechanisms for abstraction and programming in the large. Go over D: Go has an incremental, mature GC. Rust and D do not quite target the same application domains (though there's overlap), so it's difficult to compare them. Insofar as they do (D with @nogc and @safe), the tradeoffs become rather complicated.
- umanwizard 9y agoWell Java relies on "life support" from Oracle (and previously Sun) and it has definitely achieved mass adoption.
- pjmlp 9y agoCorporate donors are also very important. It is usually only way some programmers are forced to adopt new programming languages, in spite they religious beliefs regarding how programming should be. Notorious example, game developers moving from Assembly to C/Pascal and later from C to C++. Or systems programmers being force to move into C++ instead staying with C (e.g. IO KIt and UMDF).
- jordigh 9y agoI'm so, so happy that after close to a decade of tireless work D is finally in gcc. I don't have much to add except congratulations to Ian for his mostly solo work on this. Having D "standardised" in this fashion within the GNU project can do nothing but benefit both D and GNU.
- WalterBright 9y agoI am indeed proud that Iain is a member of our core D dev team! We're very fortunate.
- WalterBright 9y agoJust goes to show how one person, with relentless persistence, can still make a huge difference these days. Congratulations, Iain!
- h1d 9y agoIt's pretty true that one visionary can make a difference in any field. The rest are just man powers.