
D 2.065 released with 396 fixes and improvements - andralex
http://dlang.org/changelog.html?2.065
======
zeckalpha
I've been hearing good things about the D community, but I've yet to see what
makes it a better choice than Rust or Go. Anyone care to enlighten me?

~~~
ben0x539
It's more of an attempt to provide a better C++, whereas I'd frame Rust or Go
as attempts to avoid the need for a C++.

D might be for you if you're heavily into C++ template metaprogramming and
wish it was neater and more expressive and all around more powerful.

~~~
pjmlp
I would classify both D and Rust as modern languages for systems programming,
for those developers that care about expressive languages with meta-
programming capabilities and modern type systems.

Go is rather what Java 1.0 should have been, 20 years later.

~~~
bjz_
> modern type systems

I would dispute the fact that the type system is the a big draw to D. Whilst
it is an improvement on C++, it is still hampered by the fact that it is
ultimately descended from the ALGOL lineage. Advanced type systems lie with
the MLs and Haskell, languages that Rust's type system is inspired by. What D
has over Rust however is its expressive template metaprogramming. Templates
have their shortcomings, but they are still a powerful form of static code
generation that can really empower library developers.

~~~
pjmlp
Sure, I wasn't putting one against the other, as I like both languages and
feel both will appeal to different types of audiences anyway.

My main point was that they follow the school that you need expressive type
systems, even if as you noted, each has different strengths.

And both, each with a different set of mechanisms, allow for some sort of
compile meta-programming.

------
heydenberk
>> Goto jumps now cannot skip variable declarations

I'm surprised that D lang even has a goto statement.

~~~
taybin
goto is common in C and C++ code as a clean way to consolidate cleanup code
without using exceptions. I imagine that's the main use case they wanted to
preserve.

~~~
heydenberk
Still, though, goto is considered so harmful that it's inspiration for
"considered harmful" phrasing. Apple's goto-related SSL vulnerability this
week is a blatant, high-profile reminder of how harmful it is.

~~~
mrbrowning
Apple's goto-related SSL vulnerability this week is a blatant, high-profile
reminder of how harmful _unbraced conditionals_ are. The same bug could have
happened with two return statements in a row.

~~~
bjz_
I'm really thankful Rust does away with them. Static analysis can catch these
things, but it should be prevented in the grammar from the start.

~~~
renox
I'm not sure, I get your point: Rust has return..

~~~
bjz_
I meant re. unbraced conditionals.

------
TylerE
Are there any plans to cut a new version of Andrei's book at some point? I
keep meaning to find some time to work thorugh it, but it's getting quite out
of date (Was current with 2.010 or something, I think)

~~~
eco
I don't think the language has really changed enough to warrant a new version
of The D Programming Language[1]. I highly recommend reading Andrei's book
even for people who have no intention of actually using D. It's just a really
good read for anyone that has even the slightest interest in programming
language design because its filled with the rationale behind every design
decision and Andrei is a good writer.

I'm doing a technical review of an upcoming book on D that I believe should be
coming out the latter half of this year.

1\. Jonathan Davis' list of changes since TDPL came out:
[http://forum.dlang.org/post/mailman.647.1327135415.16222.dig...](http://forum.dlang.org/post/mailman.647.1327135415.16222.digitalmars-
d-learn@puremagic.com)

~~~
TylerE
I think that link rather proves rather than disproves my point...the erratta
list is almost one per page, and the mailing list post you linked to is from
over 2 years ago.

~~~
eco
A new run to fix mistakes would be nice but I don't think the publisher would
jump at that since there isn't much motivation for current owners of the book
to buy a version that is largely the same but with typos and other mistakes
fixed.

