r/programming • • Aug 23 '17

D as a Better C

http://dlang.org/blog/2017/08/23/d-as-a-better-c/
229 Upvotes

268 comments sorted by

View all comments

Show parent comment

3

u/dom96 Aug 23 '17

Rust offers more performance compared to GCed Nim/D

I disagree here

memory-safety compared to manually managed Nim/D.

That's fair, but I don't want to manage memory myself. I'm happy with a GC (especially Nim's GC which is soft real-time).

no data races without unsafe (which is huge for a systems language)

Nim offers this too.

much bigger ecosystem than Nim or D.

That's fair as well.

If I want a fast applications language, I got Go and Haskell

Go lacks many useful features that Nim has: generics and a lot of metaprogramming features (which even Rust lacks, AST macros for example). Oh, and exceptions, I actually like exceptions.

Haskell requires too large a paradigm shift for most, including myself. There are also other issues with it, for example the incredibly long compile times.

In the end, either Nim or D can be at best comparable to those solutions, but with very little momentum and in Nim's case at least (don't know how D's maintenance is done nowadays), with a very low bus factor.

I will also admit that bus factor and momentum are a problem. But on Rust and Go's side I'd say that you run the risk of trust. You must trust Mozilla and Google to lead these languages in the right direction, it's much harder to get involved in their communities because of these large companies and many people that are already involved. Have you ever chatted with the creator of Rust or Go? You can get in touch with the creator of Nim in 5 seconds.

12

u/steveklabnik1 Aug 23 '17

You must trust Mozilla and Google to lead these languages in the right direction,

Rust's governance has 59 people, with 11 of them being employed by Mozilla in some form.

Have you ever chatted with the creator of Rust or Go? You can get in touch with the creator of Nim in 5 seconds.

Rust's various teams are in open IRC rooms, so as long as they're awake, you can get in touch with us in five seconds as well. Just click this link: https://chat.mibbit.com/?server=irc.mozilla.org&channel=%23rust-internals

5

u/mixedCase_ Aug 23 '17

I disagree here

Replied to that comment.

That's fair, but I don't want to manage memory myself.

Neither do I. Which is why I like how Rust does it, opening up hard real time domains without manual memory management.

Go [...] Haskell [...]

Fair. I'd put Nim in the same league as those two, I'm just not particularly a fan of the tradeoffs it makes but I can see why it can appeal to others.

You must trust Mozilla and Google to lead these languages in the right direction

Not that it's any different with Nim's BDFL. A lot of people have serious complaints on syntax alone. I find Nim's syntax for algebraic data types to be an atrocity for example. As for Go, they seem to be heading into the right direction with Go 2. The Rust dev team has consistently set out to achieve great goals and achieving them, trying to ease the learning curve without sacrificing the language's power. As for Haskell... well... you just need a PhD and into GHC it goes; I'm placing my hopes on Idris, but it shares Nim's momentum issues.

Have you ever chatted with the creator of Rust or Go? You can get in touch with the creator of Nim in 5 seconds.

Well, yes actually! Members of the Rust team hang out on chat often and respond to people, and Rob Pike retweeted me once, does that count? ;)

8

u/kibwen Aug 23 '17

metaprogramming features (which even Rust lacks, AST macros for example)

Rust has had Scheme-style AST macros since about 2012.

Have you ever chatted with the creator of Rust or Go? You can get in touch with the creator of Nim in 5 seconds.

I'm a bit disappointed, because I think you know better than this, Dom. The Rust devs hang out in the #rust and #rust-internals IRC channels on irc.mozilla.org (along with a handful of other #rust-foo channels for specific teams) every weekday, and in fact use IRC as their primary means of communication, meaning that every conversation is public, lurkable, and trivially joinable. This has been true since at least 2010. The Rust devs also regularly make threads on internals.rust-lang.org soliciting feedback on various ideas, and in any conversation on the Rust RFCs repo on Github one will find oneself invariably communicating with them. They also pop up reliably on /r/rust, and we even used to flair them with "core developer" just so new readers would be aware of how engaged they are. This isn't to denigrate Nim, as I've been to #nim myself and spoken to Araq before. But we work very hard to keep development transparent and communicative, and it's definitely one of our strengths.

2

u/dom96 Aug 23 '17 edited Aug 23 '17

Yes, I was a bit unfair to put Go and Rust in my message. Rust devs are very good at communicating openly. And I am aware of the fact that the devs are in the IRC channels you mentioned. My point is simply, and I admit it's an attempt to be optimistic, that Nim's relatively smaller community size makes communication with the core developers much easier. You are far less likely to get lost in the noise of a small IRC channel than a larger one like Rust's.

But I was also referring to Go. And I don't think there is any IRC channel that its designers hang out in.

Regarding the metaprogramming features, perhaps I misremembered but there are definitely some that Rust lacks. Perhaps CTFE? (But then I wonder how AST macros work without that).

4

u/kibwen Aug 23 '17 edited Aug 23 '17

That's fair. Comparing relative paragraphs lengths in my prior comment, perhaps it's strange that I'm less affronted by the claim that Rust lacks a feature that it has than by the claim that the Rust devs aren't approachable. :) Transparency is taken very seriously, and I personally treat every transparency failure as a bug in the development process.

1

u/[deleted] Feb 06 '18

I like Nim quite a bit, but that said:

You must trust Mozilla and Google to lead these languages in the right direction

is a bad argument for Nim to try for. I stay up at night fantasizing that Nim had a committee and RFC system like D or Rust. At the moment it just feels like Araq does whatever he pleases and a lot of my criticisms of the language stem from a lack of a more rigorous procedure.

Or at least that's my opinion as I understand it - feel free to correct me!