Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

i continue to be astonished that D gets left out of these discussions. it's more capable than go and easier to use than rust, which would make it look like the sweet spot for a lot of people moved to compare the two. (that said, every time i've tried to use the language the tooling around it has been a miserable experience. that might have changed in the last couple of years.)


I've never used D, but I think it was written before the developer community was ready for a new language.

Now that developers are ready for new languages, D is already an "old, failed" language.

It reminds me of selling a house. If you put your house during a hot market and go into contract right away, but then your buyer can't come up with the money and it falls out of contract three weeks later, bringing your house back on the market it's now no longer "newly available!", and everyone thinks that, because it didn't sell in the first week, there must be something wrong with it.

My personal entirely uninformed opinion of D is exactly that: It's an older, "failed" language. It's not on the upswing in popularity. It didn't catch peoples' hearts and minds. And if only because of network effects, therefore it's not worth learning, simply because no one else is learning it, and so therefore its ecosystem isn't expanding exponentially.

Success of technologies is far less merit than one might expect. See: VHS vs. Beta.


You are right. D had some serious failures in the version 1 times, which tainted its image. However, the community is still growing. Slower than Rust, but moving in a positive direction.

During the last year the D foundation was founded and is spinning up operations. The 2016 D conference had a visitor record again with over 100 people. Downloads are growing over the years [0]. The package manager dub is now fully integrated. You can find success stories on the blog [1] and companies using it [2]. There are books.

[0] http://erdani.com/d/downloads.daily.png [1] https://dlang.org/blog/ [2] https://dlang.org/orgs-using-d.html


It was also commercial and closed source in it's early years wasn't it? I don't think there is a place for commercial compilers anymore.


D was always Open Source and free as in beer. It was not Free Software, which is a problem for inclusion in Debian main et al. You get the package from a third-party repo.

The reference compiler backend is still only free as in beer, so there seems to be no way to include "DMD" in Debian. However, LDC (reference frontend + LLVM backend) is practically in sync with DMD today.

The advantage of DMD is faster compilation. LDC gives you faster programs. So, for development I prefer DMD for the faster iteration.


Was it restriction free or did it have limitations on things like stack size like a lot of commercial compilers did?


No restrictions. There was nothing you could pay for in D.

The backend comes from the Digital Mars C++ compiler, which is/was commercial. That is probably the source of the confusion.


It will be a shame if that's the case.


Why is that? History with commercial compilers have shown them to create nothing but vendor lock-in.


More choice, I don't want an open source mono-culture.


Go is describes itself as "a dumb down language", because according to Rob Pike, "young engineers at Google are too stupid to understand C++ or Java" or something like that.It's true you can learn it in 3 days and be productive with it.

Learning D and Rust requires an effort Go proponents are not capable of.

Another problem is that both D and Rust try to replace C++ and C respectively. But C++ and C developers would never switch to anything else as they feel comfortable using the later, even despite all the gotcha of manual memory management.

Most people using Go today come from Python,Ruby,PHP,JS and co, not from C or C++ or Java. They want performances, without paying a price for "complexity". D is fine today, but it lacks a community behind it and a good ecosystem for web development.

If Rust had garbage collection, it would certainly be more popular but it's not going to replace C anyway. We are stuck with C and C++, they are not going away.

I understand why Rust is what it is, I also understand that most developers don't want to deal with explicit move semantics and lifetime management. Rust isn't going to seduce Ruby,Python,PHP or Javascript developers. the later only want better performances and think Go is good enough. They don't care about explicit memory management.

I'd like to see a version of Rust with garbage collection. The language itself is good.


> But C++ and C developers would never switch to anything else

There are many people who considered it and rejected, or even moved to other languages. C++ developers with existing large codebases may never switch to anything else, but that doesn't mean that the rest of the world is stuck. People are writing databases, browsers, operating systems and device drivers in rust right now and eventually some of those will become successful project defining state of the art.

> I'd like to see a version of Rust with garbage collection. The language itself is good.

There are myriads of languages with GC. There are very few modern ones without it.


D was also trying to bring a ruby/python-like experience to the C++ developer. can't say how well they've succeeded, but I feel it's definitely a strictly better language than C++ at this point. from my perspective its main weakness is not being able to generate a runtimeless library that I can call from other languages; without that it doesn't offer enough over ocaml for me to use it, but that would have been a killer feature. (rust does offer that, which is why it's on top of my to-learn list right now)


> I'd like to see a version of Rust with garbage collection. The language itself is good.

Why? What is the added value?


The added value is that you can implement things that need garbage collection. Like, say, a scripting language.

More importantly, it could be very useful to interact with code in garbage collected languages while having Rust model of the behavior of the garbage collector using its type system.


The syntax is nice, pattern matching, traits and generics are nice. The added value is a language with a better type system than Go in Go's space (web development). I don't want manual memory management or to have to care about regions, lifetimes or borrowing.


We have pattern matching, traits, generics, etc. in Scala (and OCaml?) already. The syntax isn't the same, but draws from the same lineage. If you took away the memory management, I think Rust would be just another ML descendent and I don't know what the motivating feature for the language would be.

I could be off base. I haven't programmed in Rust. I've just skimmed through the documentation and little code projects written in it every once and a while.


I share a similar sentiment. However, the language I'm referring to is Nim. It's just so damn expressive.


I'd like to point you here: https://news.ycombinator.com/item?id=13314770

TLDR: Rust did the hard work of convincing others to try it out and evangelize the language, and as a result, it has become popular and has grown a strong community.


when i first saw d (years back), it merely seemed like an attempted c+++.

the syntax seemed extremely similar, as if they took c++ and just tweaked it a bit, rather than working at least somewhat from first principles.

seemed almost comically pointless at the time. no doubt it's evolved since then.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: