www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Thoughts on replacement languages (Reddit + D)

reply "MattCoder" <stop spam.com> writes:
I saw this post: 
http://www.reddit.com/r/programming/comments/2s0c3e/thoughts_on_replacement_languages/

And there this comment: 
http://www.reddit.com/r/programming/comments/2s0c3e/thoughts_on_replacement_languages/cnkzzq7

Comparing Go and D, but some replies are getting a bit harsh 
against D! So I'm just posting this to call your attention and 
maybe some experts could reply there too.

Matheus.
Jan 10 2015
next sibling parent "MattCoder" <stop spam.com> writes:
PS: I'm not posting this to see any flamewar between languages 
there, but maybe some could enlighten the discussion with some 
nice facts.

Matheus.
Jan 10 2015
prev sibling next sibling parent reply "thedeemon" <dlang thedeemon.com> writes:
On Sunday, 11 January 2015 at 04:31:29 UTC, MattCoder wrote:
 Comparing Go and D, but some replies are getting a bit harsh 
 against D! So I'm just posting this to call your attention and 
 maybe some experts could reply there too.
At this moment I only see some popularity comparisons and I think they're generally correct. No matter how much I like D it won't change the fact of Go attracting more users (thanks to its simplicity and more polished runtime and tools).
Jan 10 2015
parent reply "MattCoder" <stop spam.com> writes:
On Sunday, 11 January 2015 at 06:56:02 UTC, thedeemon wrote:
 At this moment I only see some popularity comparisons
Yes in fact they are talking more about popularity between both languages.
 and I think they're generally correct...
Since I'm relative new here, I want know from you agree with this statement: " [–]clay_davis_sheeit 4 points 17 hours ago* get real. D is more dead now than it was a year ago. if you won't accept repo counts, look at how many people attended D con vs Gophercon " Matheus.
Jan 11 2015
next sibling parent reply "Ola Fosheim =?UTF-8?B?R3LDuHN0YWQi?= writes:
On Sunday, 11 January 2015 at 12:57:17 UTC, MattCoder wrote:
 Since I'm relative new here, I want know from you agree with 
 this statement:

 "
 [–]clay_davis_sheeit 4 points 17 hours ago*

 get real. D is more dead now than it was a year ago. if you 
 won't accept repo counts, look at how many people attended D 
 con vs Gophercon
 "
"more dead" is a very subjective term. It is "more dead" in the sense that you got nogc and there was a sense of movement towards getting to a workable memory model, but since then nothing has happend. One step forward, then stagnation. The Rust team have announced that they are moving towards a non-breaking stability situation within 6 weeks. And they have a working memory model. Andrei and Walter need to stop focusing on details for a moment and focus more on presenting "a great plan" within 2 months. Meaning stating goals and plans which gives D a direction that developers want and can believe in. If no clear statements on where D is heading appears in the near future... Well, then I am pretty sure that many of those who prefer D will give Rust a spin when Rust hits 1.0, out of boredom. Rust is not complete feature wise, but a working memory model and stability is more important than having single inheritance and other convenience features... So D is not dead, but is currently in a position where it can be hit by both Go and Rust. The space between Rust (system programming) and Go (server programming) is very tiny.
Jan 11 2015
parent reply "ponce" <contact gam3sfrommars.fr> writes:
On Sunday, 11 January 2015 at 13:37:33 UTC, Ola Fosheim Grøstad 
wrote:
 On Sunday, 11 January 2015 at 12:57:17 UTC, MattCoder wrote:
 Since I'm relative new here, I want know from you agree with 
 this statement:

 "
 [–]clay_davis_sheeit 4 points 17 hours ago*

 get real. D is more dead now than it was a year ago. if you 
 won't accept repo counts, look at how many people attended D 
 con vs Gophercon
 "
"more dead" is a very subjective term. It is "more dead" in the sense that you got nogc and there was a sense of movement towards getting to a workable memory model, but since then nothing has happend. One step forward, then stagnation. The Rust team have announced that they are moving towards a non-breaking stability situation within 6 weeks. And they have a working memory model. Andrei and Walter need to stop focusing on details for a moment and focus more on presenting "a great plan" within 2 months. Meaning stating goals and plans which gives D a direction that developers want and can believe in. If no clear statements on where D is heading appears in the near future... Well, then I am pretty sure that many of those who prefer D will give Rust a spin when Rust hits 1.0, out of boredom. Rust is not complete feature wise, but a working memory model and stability is more important than having single inheritance and other convenience features... So D is not dead, but is currently in a position where it can be hit by both Go and Rust. The space between Rust (system programming) and Go (server programming) is very tiny.
The problem with Rust and Go is that they only deliver in theory, while D kicks some asses in practice. How? Eg: at this very moment, D is more stable than Rust, ground truth. D has backends for GCC/LLVM/custom, Go has backends for GCC / Plan9, Rust only for LLVM. None of Rust+Go can link with binaries produced by eg. the Microsoft compiler. None of them has Visual Studio integration with debugging support and that is pretty important for native and enterprise programmers. Go is actively behind the times by preventing shared libraries and discouraging exceptions, let alone generics. None of the C++ programmers I know give Go any credit, cause it would make their work more difficult, and it's already pretty difficult. Despite efforts, Rust don't get syntax right. They will enjoy huge amount of complaining as soon as people actually use the language, only to discover it is not fun enough and fun is more important than "memory safety without GC". Looks like it inherited its boringness from Ocaml. I don't buy in the Rust team stability guarantees, you can't go from pondering about removing "box" this very week (the syntax is from this year) then promising stability forever starting next month. But for some reason everything they say has a ring of truth, because it's Mozilla they only do Good Things right? They will come to the same model as D, minimizing code breakage but do it anyway, because it's way more practical. And as soon as Servo is interrupted because of internal politics at Mozilla or rebudgeting (ie. very high probability), Rust will be halted in a heartbeat since loosing its purpose. Ever noticed the Rust original designer jumped off ship long ago? That won't happen with D, whatever the ratio of github projects in the fashion industry.
Jan 11 2015
next sibling parent reply "Ola Fosheim =?UTF-8?B?R3LDuHN0YWQi?= writes:
On Sunday, 11 January 2015 at 14:10:56 UTC, ponce wrote:
 The problem with Rust and Go is that they only deliver in 
 theory, while D kicks some asses in practice. How?

 Eg: at this very moment, D is more stable than Rust, ground 
 truth.
I think Rust will hit non-breaking stability (or close to it) because they need it for Servo. What I dislike is that they plan on having a "train-schedule" where they release every 6 weeks because "that model works for browsers". IMO it does not work for browsers. Last week I fixed two browser related bugs, introduced recently by both IE and Chrome. What I want from a programming tool is a stable release that lasts for years, not weeks. Python is at 3.5, yet most people are using Python 2.7, for a reason... In some sense, I think Rust is in a self-indulgent bubble... On the other hand, Rust has somewhat better semantics than D and a working memory model, for those features that Rust do have. Yet, the syntax is... too alien for most C++ programmers IMO. Maybe we should do a comparison thread between D and Rust. It might be interesting, and perhaps encourage some improvements to D.
 Go is actively behind the times by preventing shared libraries 
 and discouraging exceptions, let alone generics. None of the 
 C++ programmers I know give Go any credit, cause it would make 
 their work more difficult, and it's already pretty difficult.
Isn't static linking good enough for servers? When using Go with app engine the code is compiled by Google, seems to be a good model if the language is transparently portable. Go is not a system programming language.
 next month. But for some reason everything they say has a ring 
 of truth, because it's Mozilla they only do Good Things right?
No, but you gotta admit that it is an advantage that Mozilla needs the tool for doing real work. So if they make mistakes, they will suffer from it too. If D was funded for doing real work, then the memory model issues would have been addressed a long time ago.
 They will come to the same model as D, minimizing code breakage 
 but do it anyway, because it's way more practical.
Maybe, but Go has actually done a good job out of it. C was also quite minimal (like Rust), so they might do ok with stability if they make it a "principle".
 And as soon as Servo is interrupted because of internal 
 politics at Mozilla or rebudgeting (ie. very high probability), 
 Rust will be halted in a heartbeat since loosing its purpose. 
 Ever noticed the Rust original designer jumped off ship long 
 ago?
I didn't know that, but I've noticed with some unease that Chrome is growing towards "monopoly" (except in Germany where Firefox is big).
 That won't happen with D, whatever the ratio of github projects 
 in the fashion industry.
Yes, but D depends too much on a single person. Rust and Go does not.
Jan 11 2015
next sibling parent "ponce" <contact gam3sfrommars.fr> writes:
On Sunday, 11 January 2015 at 14:43:08 UTC, Ola Fosheim Grøstad
wrote:
 And as soon as Servo is interrupted because of internal 
 politics at Mozilla or rebudgeting (ie. very high 
 probability), Rust will be halted in a heartbeat since loosing 
 its purpose. Ever noticed the Rust original designer jumped 
 off ship long ago?
I didn't know that, but I've noticed with some unease that Chrome is growing towards "monopoly" (except in Germany where Firefox is big).
Yep and Mozilla depends almost entirely on Google financially. Scary.
Jan 11 2015
prev sibling parent reply "Dicebot" <public dicebot.lv> writes:
On Sunday, 11 January 2015 at 14:43:08 UTC, Ola Fosheim Grøstad 
wrote:
 Maybe we should do a comparison thread between D and Rust. It 
 might be interesting, and perhaps encourage some improvements 
 to D.
I am actually writing a "Rust guide as read by D developer" article now making random notes on topic. But I don't see this affecting D much as most of the things I liked in Rust more were also things I complained about in D for ages before.
Jan 11 2015
next sibling parent "Ola Fosheim =?UTF-8?B?R3LDuHN0YWQi?= writes:
On Sunday, 11 January 2015 at 15:29:45 UTC, Dicebot wrote:
 On Sunday, 11 January 2015 at 14:43:08 UTC, Ola Fosheim Grøstad 
 wrote:
 Maybe we should do a comparison thread between D and Rust. It 
 might be interesting, and perhaps encourage some improvements 
 to D.
I am actually writing a "Rust guide as read by D developer" article now making random notes on topic. But I don't see this affecting D much as most of the things I liked in Rust more were also things I complained about in D for ages before.
Looking forward to reading it, I hope you publish it on a website so that it can draw in non-D people too.
Jan 11 2015
prev sibling next sibling parent reply Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> writes:
On 1/11/15 7:29 AM, Dicebot wrote:
 On Sunday, 11 January 2015 at 14:43:08 UTC, Ola Fosheim Grøstad wrote:
 Maybe we should do a comparison thread between D and Rust. It might be
 interesting, and perhaps encourage some improvements to D.
I am actually writing a "Rust guide as read by D developer" article now making random notes on topic. But I don't see this affecting D much as most of the things I liked in Rust more were also things I complained about in D for ages before.
That sounds like a very interesting article. Looking forward to it. -- Andrei
Jan 11 2015
parent reply "Dicebot" <public dicebot.lv> writes:
On Sunday, 11 January 2015 at 17:35:19 UTC, Andrei Alexandrescu 
wrote:
 On 1/11/15 7:29 AM, Dicebot wrote:
 On Sunday, 11 January 2015 at 14:43:08 UTC, Ola Fosheim 
 Grøstad wrote:
 Maybe we should do a comparison thread between D and Rust. It 
 might be
 interesting, and perhaps encourage some improvements to D.
I am actually writing a "Rust guide as read by D developer" article now making random notes on topic. But I don't see this affecting D much as most of the things I liked in Rust more were also things I complained about in D for ages before.
That sounds like a very interesting article. Looking forward to it. -- Andrei
http://blog.dicebot.lv/2015/01/thoughts-about-rust-from-d-programmer.html Here it is, as promised. It is not very complete but it was getting pretty damn long so I decided to limit myself to something that caught my eye first. I'd really appreciate someone doing the proof reading of my terrible English before reddit'ing away :)
Jan 12 2015
next sibling parent reply "John Colvin" <john.loughran.colvin gmail.com> writes:
On Monday, 12 January 2015 at 18:11:56 UTC, Dicebot wrote:
 On Sunday, 11 January 2015 at 17:35:19 UTC, Andrei Alexandrescu 
 wrote:
 On 1/11/15 7:29 AM, Dicebot wrote:
 On Sunday, 11 January 2015 at 14:43:08 UTC, Ola Fosheim 
 Grøstad wrote:
 Maybe we should do a comparison thread between D and Rust. 
 It might be
 interesting, and perhaps encourage some improvements to D.
I am actually writing a "Rust guide as read by D developer" article now making random notes on topic. But I don't see this affecting D much as most of the things I liked in Rust more were also things I complained about in D for ages before.
That sounds like a very interesting article. Looking forward to it. -- Andrei
http://blog.dicebot.lv/2015/01/thoughts-about-rust-from-d-programmer.html Here it is, as promised. It is not very complete but it was getting pretty damn long so I decided to limit myself to something that caught my eye first. I'd really appreciate someone doing the proof reading of my terrible English before reddit'ing away :)
There's a lot of missing articles (the/an/a), but other than that it's quite readable. The import example misses that in D you can just do: import mod1 = my.long.mod1; import mod2 = my.long.mod2;
Jan 12 2015
parent reply "Dicebot" <public dicebot.lv> writes:
On Monday, 12 January 2015 at 18:55:49 UTC, John Colvin wrote:
 The import example misses that in D you can just do:

 import mod1 = my.long.mod1;
 import mod2 = my.long.mod2;
I was originally intending to mention how this is possible but not pushed by language/compiler as the standard import approach and thus effectively ignored. But it is the longest part already. Do you thing it is important?
Jan 12 2015
next sibling parent "John Colvin" <john.loughran.colvin gmail.com> writes:
On Monday, 12 January 2015 at 19:01:06 UTC, Dicebot wrote:
 On Monday, 12 January 2015 at 18:55:49 UTC, John Colvin wrote:
 The import example misses that in D you can just do:

 import mod1 = my.long.mod1;
 import mod2 = my.long.mod2;
I was originally intending to mention how this is possible but not pushed by language/compiler as the standard import approach and thus effectively ignored. But it is the longest part already. Do you thing it is important?
I think so. It might not be compiler-enforced but it's both possible and I would recommend people doing it.
Jan 12 2015
prev sibling next sibling parent reply "Zach the Mystic" <reachzach gggmail.com> writes:
On Monday, 12 January 2015 at 19:01:06 UTC, Dicebot wrote:
 On Monday, 12 January 2015 at 18:55:49 UTC, John Colvin wrote:
 The import example misses that in D you can just do:

 import mod1 = my.long.mod1;
 import mod2 = my.long.mod2;
I was originally intending to mention how this is possible but not pushed by language/compiler as the standard import approach and thus effectively ignored. But it is the longest part already. Do you thing it is important?
I do, because the article gives the impression D has no answer to this problem. Why don't you use this feature yourself?
Jan 12 2015
parent "Dicebot" <public dicebot.lv> writes:
On Monday, 12 January 2015 at 19:13:40 UTC, Zach the Mystic wrote:
 On Monday, 12 January 2015 at 19:01:06 UTC, Dicebot wrote:
 On Monday, 12 January 2015 at 18:55:49 UTC, John Colvin wrote:
 The import example misses that in D you can just do:

 import mod1 = my.long.mod1;
 import mod2 = my.long.mod2;
I was originally intending to mention how this is possible but not pushed by language/compiler as the standard import approach and thus effectively ignored. But it is the longest part already. Do you thing it is important?
I do, because the article gives the impression D has no answer to this problem. Why don't you use this feature yourself?
http://www.reddit.com/r/programming/comments/2s70mm/thoughts_about_rust_from_a_d_programmer/cnmsnip
Jan 12 2015
prev sibling parent reply Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> writes:
On 1/12/15 11:01 AM, Dicebot wrote:
 On Monday, 12 January 2015 at 18:55:49 UTC, John Colvin wrote:
 The import example misses that in D you can just do:

 import mod1 = my.long.mod1;
 import mod2 = my.long.mod2;
I was originally intending to mention how this is possible but not pushed by language/compiler as the standard import approach and thus effectively ignored. But it is the longest part already. Do you thing it is important?
http://www.reddit.com/r/programming/comments/2s70mm/thoughts_about_rust_from_a_d_programmer/ Andrei
Jan 12 2015
next sibling parent reply "Dicebot" <public dicebot.lv> writes:
On Monday, 12 January 2015 at 19:25:28 UTC, Andrei Alexandrescu 
wrote:
 On 1/12/15 11:01 AM, Dicebot wrote:
 On Monday, 12 January 2015 at 18:55:49 UTC, John Colvin wrote:
 The import example misses that in D you can just do:

 import mod1 = my.long.mod1;
 import mod2 = my.long.mod2;
I was originally intending to mention how this is possible but not pushed by language/compiler as the standard import approach and thus effectively ignored. But it is the longest part already. Do you thing it is important?
http://www.reddit.com/r/programming/comments/2s70mm/thoughts_about_rust_from_a_d_programmer/ Andrei
I have asked to not post on reddit right now for a reason >_<
Jan 12 2015
parent reply Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> writes:
On 1/12/15 12:13 PM, Dicebot wrote:
 On Monday, 12 January 2015 at 19:25:28 UTC, Andrei Alexandrescu wrote:
 On 1/12/15 11:01 AM, Dicebot wrote:
 On Monday, 12 January 2015 at 18:55:49 UTC, John Colvin wrote:
 The import example misses that in D you can just do:

 import mod1 = my.long.mod1;
 import mod2 = my.long.mod2;
I was originally intending to mention how this is possible but not pushed by language/compiler as the standard import approach and thus effectively ignored. But it is the longest part already. Do you thing it is important?
http://www.reddit.com/r/programming/comments/2s70mm/thoughts_about_rust_from_a_d_programmer/ Andrei
I have asked to not post on reddit right now for a reason >_<
Apologies, haven't seen that part. -- Andrei
Jan 12 2015
parent reply "deadalnix" <deadalnix gmail.com> writes:
On Monday, 12 January 2015 at 20:58:50 UTC, Andrei Alexandrescu 
wrote:
 I have asked to not post on reddit right now for a reason >_<
Apologies, haven't seen that part. -- Andrei
I noticed you usually are quick to fire links on reddit. You should probably be more careful with this. Double checking with the author seems like a good idea.
Jan 12 2015
parent reply Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> writes:
On 1/12/15 7:20 PM, deadalnix wrote:
 On Monday, 12 January 2015 at 20:58:50 UTC, Andrei Alexandrescu wrote:
 I have asked to not post on reddit right now for a reason >_<
Apologies, haven't seen that part. -- Andrei
I noticed you usually are quick to fire links on reddit. You should probably be more careful with this. Double checking with the author seems like a good idea.
Once something is on this forum, it's public so anyone can post it. That said it's good to hold off while typos are being fixed. -- Andrei
Jan 12 2015
parent "deadalnix" <deadalnix gmail.com> writes:
On Tuesday, 13 January 2015 at 06:18:35 UTC, Andrei Alexandrescu 
wrote:
 On 1/12/15 7:20 PM, deadalnix wrote:
 On Monday, 12 January 2015 at 20:58:50 UTC, Andrei 
 Alexandrescu wrote:
 I have asked to not post on reddit right now for a reason >_<
Apologies, haven't seen that part. -- Andrei
I noticed you usually are quick to fire links on reddit. You should probably be more careful with this. Double checking with the author seems like a good idea.
Once something is on this forum, it's public so anyone can post it. That said it's good to hold off while typos are being fixed. -- Andrei
Yes this forum and reddit are 2 VERY different public, and it seems like a good strategy to get feedback here in friendly land before showing up in front of the world.
Jan 12 2015
prev sibling parent "Nemanja Boric" <4burgos gmail.com> writes:
It's also on /r/rust

http://www.reddit.com/r/rust/comments/2s7bnt/thoughts_about_rust_from_d_programmer/

On Monday, 12 January 2015 at 19:25:28 UTC, Andrei Alexandrescu 
wrote:
 On 1/12/15 11:01 AM, Dicebot wrote:
 On Monday, 12 January 2015 at 18:55:49 UTC, John Colvin wrote:
 The import example misses that in D you can just do:

 import mod1 = my.long.mod1;
 import mod2 = my.long.mod2;
I was originally intending to mention how this is possible but not pushed by language/compiler as the standard import approach and thus effectively ignored. But it is the longest part already. Do you thing it is important?
http://www.reddit.com/r/programming/comments/2s70mm/thoughts_about_rust_from_a_d_programmer/ Andrei
Jan 13 2015
prev sibling parent reply "Zach the Mystic" <reachzach gggmail.com> writes:
On Monday, 12 January 2015 at 18:11:56 UTC, Dicebot wrote:
 I'd really appreciate someone doing the proof reading of my 
 terrible English before reddit'ing away :)
I wrote these down, which will get you through the introduction: My job is all about D programming language  --> the D Programming. find time to try it in more details. --> more detail. reading official guide --> the official guide notes on that topic with sort --> with a sort reasonably short from. --> form. I have come to opinion --> the opinion especially transitive ones, most --> the most (The rest of the article is well-written and bad English is not noticeable.)
Jan 12 2015
parent reply "Dicebot" <public dicebot.lv> writes:
On Monday, 12 January 2015 at 19:09:37 UTC, Zach the Mystic wrote:
 On Monday, 12 January 2015 at 18:11:56 UTC, Dicebot wrote:
 I'd really appreciate someone doing the proof reading of my 
 terrible English before reddit'ing away :)
I wrote these down, which will get you through the introduction: My job is all about D programming language  --> the D Programming. find time to try it in more details. --> more detail. reading official guide --> the official guide notes on that topic with sort --> with a sort reasonably short from. --> form. I have come to opinion --> the opinion especially transitive ones, most --> the most (The rest of the article is well-written and bad English is not noticeable.)
Thanks, updated
Jan 12 2015
parent reply "Zach the Mystic" <reachzach gggmail.com> writes:
On Monday, 12 January 2015 at 20:31:33 UTC, Dicebot wrote:
 Thanks, updated
The section under "Uncertain" has a huge font size now and repeats what was just said.
Jan 12 2015
parent reply "Dicebot" <public dicebot.lv> writes:
On Monday, 12 January 2015 at 21:02:54 UTC, Zach the Mystic wrote:
 On Monday, 12 January 2015 at 20:31:33 UTC, Dicebot wrote:
 Thanks, updated
The section under "Uncertain" has a huge font size now and repeats what was just said.
Have just fixed, beg my pardon. Please check again.
Jan 12 2015
next sibling parent "Zach the Mystic" <reachzach gggmail.com> writes:
On Monday, 12 January 2015 at 21:13:10 UTC, Dicebot wrote:
 The section under "Uncertain" has a huge font size now and 
 repeats what was just said.
Have just fixed, beg my pardon. Please check again.
Looks good. You're clear for launch! Oh wait... (looks up in the sky...)
Jan 12 2015
prev sibling parent reply "MattCoder" <stop spam.com> writes:
On Monday, 12 January 2015 at 21:13:10 UTC, Dicebot wrote:
 On Monday, 12 January 2015 at 21:02:54 UTC, Zach the Mystic 
 wrote:
 On Monday, 12 January 2015 at 20:31:33 UTC, Dicebot wrote:
 Thanks, updated
The section under "Uncertain" has a huge font size now and repeats what was just said.
Have just fixed, beg my pardon. Please check again.
/r/programming! Congratulations. :) Matheus.
Jan 12 2015
parent reply "Dicebot" <public dicebot.lv> writes:
On Monday, 12 January 2015 at 22:31:46 UTC, MattCoder wrote:
 On Monday, 12 January 2015 at 21:13:10 UTC, Dicebot wrote:
 On Monday, 12 January 2015 at 21:02:54 UTC, Zach the Mystic 
 wrote:
 On Monday, 12 January 2015 at 20:31:33 UTC, Dicebot wrote:
 Thanks, updated
The section under "Uncertain" has a huge font size now and repeats what was just said.
Have just fixed, beg my pardon. Please check again.
/r/programming! Congratulations. :) Matheus.
Oops, 100+ comments in that thread now, keeping with it will probably take as much time as writing article itself :X
Jan 13 2015
parent "eles" <eles eles.com> writes:
On Tuesday, 13 January 2015 at 13:10:49 UTC, Dicebot wrote:
 On Monday, 12 January 2015 at 22:31:46 UTC, MattCoder wrote:
 On Monday, 12 January 2015 at 21:13:10 UTC, Dicebot wrote:
 On Monday, 12 January 2015 at 21:02:54 UTC, Zach the Mystic 
 wrote:
 On Monday, 12 January 2015 at 20:31:33 UTC, Dicebot wrote:
 Oops, 100+ comments in that thread now, keeping with it will 
 probably take as much time as writing article itself :X
The price of be(com)ing famous...
Jan 13 2015
prev sibling parent Walter Bright <newshound2 digitalmars.com> writes:
On 1/11/2015 7:29 AM, Dicebot wrote:
 I liked in Rust more were also things I complained about in D for ages before.
I know the feeling. My internal state of "the right way to write programs" evolves constantly.
Jan 11 2015
prev sibling next sibling parent "Paulo Pinto" <pjmlp progtools.org> writes:
On Sunday, 11 January 2015 at 14:10:56 UTC, ponce wrote:
 On Sunday, 11 January 2015 at 13:37:33 UTC, Ola Fosheim Grøstad 
 wrote:
 On Sunday, 11 January 2015 at 12:57:17 UTC, MattCoder wrote:
 Since I'm relative new here, I want know from you agree with 
 this statement:

 "
 [–]clay_davis_sheeit 4 points 17 hours ago*

 get real. D is more dead now than it was a year ago. if you 
 won't accept repo counts, look at how many people attended D 
 con vs Gophercon
 "
"more dead" is a very subjective term. It is "more dead" in the sense that you got nogc and there was a sense of movement towards getting to a workable memory model, but since then nothing has happend. One step forward, then stagnation. The Rust team have announced that they are moving towards a non-breaking stability situation within 6 weeks. And they have a working memory model. Andrei and Walter need to stop focusing on details for a moment and focus more on presenting "a great plan" within 2 months. Meaning stating goals and plans which gives D a direction that developers want and can believe in. If no clear statements on where D is heading appears in the near future... Well, then I am pretty sure that many of those who prefer D will give Rust a spin when Rust hits 1.0, out of boredom. Rust is not complete feature wise, but a working memory model and stability is more important than having single inheritance and other convenience features... So D is not dead, but is currently in a position where it can be hit by both Go and Rust. The space between Rust (system programming) and Go (server programming) is very tiny.
The problem with Rust and Go is that they only deliver in theory, while D kicks some asses in practice. How? Eg: at this very moment, D is more stable than Rust, ground truth. D has backends for GCC/LLVM/custom, Go has backends for GCC / Plan9, Rust only for LLVM. None of Rust+Go can link with binaries produced by eg. the Microsoft compiler. None of them has Visual Studio integration with debugging support and that is pretty important for native and enterprise programmers. Go is actively behind the times by preventing shared libraries and discouraging exceptions, let alone generics. None of the C++ programmers I know give Go any credit, cause it would make their work more difficult, and it's already pretty difficult. Despite efforts, Rust don't get syntax right. They will enjoy huge amount of complaining as soon as people actually use the language, only to discover it is not fun enough and fun is more important than "memory safety without GC". Looks like it inherited its boringness from Ocaml. I don't buy in the Rust team stability guarantees, you can't go from pondering about removing "box" this very week (the syntax is from this year) then promising stability forever starting next month. But for some reason everything they say has a ring of truth, because it's Mozilla they only do Good Things right? They will come to the same model as D, minimizing code breakage but do it anyway, because it's way more practical. And as soon as Servo is interrupted because of internal politics at Mozilla or rebudgeting (ie. very high probability), Rust will be halted in a heartbeat since loosing its purpose. Ever noticed the Rust original designer jumped off ship long ago? That won't happen with D, whatever the ratio of github projects in the fashion industry.
I am known to complain about some of the Go missing features. However I am closer to use Go than D at work alongside .NET and JVM. Why? Because of Docker. Now with big names adopting Docker, our enterprise customers are looking into it for cloud deployments. D really needs a some kind of killer application/framework. -- Paulo
Jan 11 2015
prev sibling parent reply "francesco.cattoglio" <francesco.cattoglio gmail.com> writes:
On Sunday, 11 January 2015 at 14:10:56 UTC, ponce wrote:
 None of them has Visual Studio integration with debugging 
 support and that is pretty important for native and enterprise 
 programmers.
If I remember correctly, just 2 month ago someone was explaining how they lost a commercial user because D debugging experience was still not good enough by a long shot. And in my daily use, debug experience is still subpar on windows.
 only to discover it is not fun enough and fun is more important 
 than "memory safety without GC".
WHAT? Syntax is boring, but I don't get the sense of the sentence
 I don't buy in the Rust team stability guarantees, you can't go 
 from pondering about removing "box" this very week.
They have not broken any promise just yet! :P And I somehow hope they can really manage a high level of stability after discussing throughtly this much about every bikeshed topic (including the recent int/uint change).
 And as soon as Servo is interrupted because of internal 
 politics at Mozilla or rebudgeting (ie. very high probability), 
 Rust will be halted in a heartbeat since loosing its purpose. 
 Ever noticed the Rust original designer jumped off ship long 
 ago?
I do agree that this might be a real risk. But the bus factor for the D project ain't the smallest either. D development could grind to a halt if a handful of developers retire from the project. I'm obviously being the devil's advocate here, but we can't just say "D is much more far ahead, we have nothing to fear from Go and Rust", because it's just not true. And I say it as a daily D user, daily facing issues like the horrible invalidMemoryOperationError exception.
Jan 11 2015
next sibling parent reply "ponce" <contact gamesfrommars.fr> writes:
On Sunday, 11 January 2015 at 18:25:39 UTC, francesco.cattoglio 
wrote:
 On Sunday, 11 January 2015 at 14:10:56 UTC, ponce wrote:
 None of them has Visual Studio integration with debugging 
 support and that is pretty important for native and enterprise 
 programmers.
If I remember correctly, just 2 month ago someone was explaining how they lost a commercial user because D debugging experience was still not good enough by a long shot. And in my daily use, debug experience is still subpar on windows.
 only to discover it is not fun enough and fun is more 
 important than "memory safety without GC".
WHAT? Syntax is boring, but I don't get the sense of the sentence
Right, might be personal judgement, at this point I was in rant-mode. :) Rust is supposed to replace C++, and it happens working in C++ since years, I can't help but notice we actually have very few memory safety problems, to the point that I question that it's something worth worrying about. At least, more than D does with .init and bound checking. Bjarne himself talks about how language users ask for different things that what they actually want here: http://channel9.msdn.com/Events/Lang-NEXT/Lang-NEXT-2014/Keynote (see 27:40) Has this changed fundamentally?
 I'm obviously being the devil's advocate here, but we can't 
 just say "D is much more far ahead, we have nothing to fear 
 from Go and Rust", because it's just not true. And I say it as 
 a daily D user, daily facing issues like the horrible 
 invalidMemoryOperationError exception.
When does invalidMemoryOperationError happen and how do you avoid it?
Jan 11 2015
next sibling parent reply "bearophile" <bearophileHUGS lycos.com> writes:
ponce:

 Rust is supposed to replace C++, and it happens working in C++ 
 since years, I can't help but notice we actually have very few 
 memory safety problems,
Are you always able to detect them? I think languages (and programmers) that don't have a strict attitude toward memory safety will be slowly left behind in the few next years. D is lacking in this (and the scoping management should be able to plug some holes, and in the meantime there is this: https://github.com/D-Programming-Language/dmd/pull/4277 ). Bye, bearophile
Jan 11 2015
next sibling parent reply "ponce" <contact gamesfrommars.fr> writes:
On Sunday, 11 January 2015 at 19:38:12 UTC, bearophile wrote:
 Are you always able to detect them? I think languages (and 
 programmers) that don't have a strict attitude toward memory 
 safety will be slowly left behind in the few next years. D is 
 lacking in this (and the scoping management should be able to 
 plug some holes, and in the meantime there is this: 
 https://github.com/D-Programming-Language/dmd/pull/4277 ).
There are tools to do that: https://software.intel.com/en-us/intel-inspector-xe When we do have a memory safety bug, these tools help, and then I think "this wouldn't have happened in D" even without safe. So I don't think D lacking in this.
Jan 11 2015
parent reply "weaselcat" <weaselcat gmail.com> writes:
On Sunday, 11 January 2015 at 19:42:38 UTC, ponce wrote:
 On Sunday, 11 January 2015 at 19:38:12 UTC, bearophile wrote:
 Are you always able to detect them? I think languages (and 
 programmers) that don't have a strict attitude toward memory 
 safety will be slowly left behind in the few next years. D is 
 lacking in this (and the scoping management should be able to 
 plug some holes, and in the meantime there is this: 
 https://github.com/D-Programming-Language/dmd/pull/4277 ).
There are tools to do that: https://software.intel.com/en-us/intel-inspector-xe When we do have a memory safety bug, these tools help, and then I think "this wouldn't have happened in D" even without safe. So I don't think D lacking in this.
Recently both Clang and GCC(? I think GCC has all of them now, maybe not) have integrated address,memory,thread, and undefined behavior sanitizer tools directly into their compiler aswell. http://clang.llvm.org/docs/UsersManual.html#controlling-code-generation I don't think the memory safety issue is as big of an issue for 99% of people as it is for a group like Mozilla. I'm not even sure if Rust is going to replace C++ so much as possibly displace Ada. Rust's lifetimes and borrow checker also really aren't fun, I feel like it really breaks my flow when I use Rust. It's like the opposite of python(or D), where I can get the least amount of scaffolding I need to get my concepts working, then fix it later. Maybe the language just isn't targeted for someone like me though. Rust still has things I'd like to see in D. Just my two cents.
Jan 11 2015
parent "weaselcat" <weaselcat gmail.com> writes:
On Sunday, 11 January 2015 at 20:47:37 UTC, weaselcat wrote:
 On Sunday, 11 January 2015 at 19:42:38 UTC, ponce wrote:
 On Sunday, 11 January 2015 at 19:38:12 UTC, bearophile wrote:
 Are you always able to detect them? I think languages (and 
 programmers) that don't have a strict attitude toward memory 
 safety will be slowly left behind in the few next years. D is 
 lacking in this (and the scoping management should be able to 
 plug some holes, and in the meantime there is this: 
 https://github.com/D-Programming-Language/dmd/pull/4277 ).
There are tools to do that: https://software.intel.com/en-us/intel-inspector-xe When we do have a memory safety bug, these tools help, and then I think "this wouldn't have happened in D" even without safe. So I don't think D lacking in this.
Recently both Clang and GCC(? I think GCC has all of them now, maybe not) have integrated address,memory,thread, and undefined behavior sanitizer tools directly into their compiler aswell. http://clang.llvm.org/docs/UsersManual.html#controlling-code-generation I don't think the memory safety issue is as big of an issue for 99% of people as it is for a group like Mozilla. I'm not even sure if Rust is going to replace C++ so much as possibly displace Ada. Rust's lifetimes and borrow checker also really aren't fun, I feel like it really breaks my flow when I use Rust. It's like the opposite of python(or D), where I can get the least amount of scaffolding I need to get my concepts working, then fix it later. Maybe the language just isn't targeted for someone like me though. Rust still has things I'd like to see in D. Just my two cents.
P.S., the sanitizer tools are built directly ontop of LLVM AFAIK(I haven't looked into how GCC incorporated them,) is there any chance we could ever see them being used for D?
Jan 11 2015
prev sibling parent "Ola Fosheim =?UTF-8?B?R3LDuHN0YWQi?= writes:
On Sunday, 11 January 2015 at 19:38:12 UTC, bearophile wrote:
 ponce:

 Rust is supposed to replace C++, and it happens working in C++ 
 since years, I can't help but notice we actually have very few 
 memory safety problems,
Are you always able to detect them?
When Intel MPX comes you should be able to in debug builds, since you then supposedly cache the bounds for all mallocs. It basically attaches bounds to every pointer with a hardware mechanism for lookups. And you can turn it off at runtime, which turns the MPX instructions into NOP. So you can basically deploy an application with MPX builtin and tell a customer to turn on MPX if there is a problem that is suspected to be memory related. But keep in mind that linear typing also affords safer multi-threading and removes doubts about aliasing which can prevent optimization... How important is it? Time will show && YMMV.
Jan 11 2015
prev sibling next sibling parent reply "Paulo Pinto" <pjmlp progtools.org> writes:
On Sunday, 11 January 2015 at 19:30:59 UTC, ponce wrote:
 On Sunday, 11 January 2015 at 18:25:39 UTC, francesco.cattoglio 
 wrote:
 On Sunday, 11 January 2015 at 14:10:56 UTC, ponce wrote:
 None of them has Visual Studio integration with debugging 
 support and that is pretty important for native and 
 enterprise programmers.
If I remember correctly, just 2 month ago someone was explaining how they lost a commercial user because D debugging experience was still not good enough by a long shot. And in my daily use, debug experience is still subpar on windows.
 only to discover it is not fun enough and fun is more 
 important than "memory safety without GC".
WHAT? Syntax is boring, but I don't get the sense of the sentence
Right, might be personal judgement, at this point I was in rant-mode. :) Rust is supposed to replace C++, and it happens working in C++ since years, I can't help but notice we actually have very few memory safety problems, to the point that I question that it's something worth worrying about....[cutted]
Somehow I feel you are in the very lucky position of having top notch colleagues, with small attrition in team members and budget to buy C++ sanitation tools. Many of the projects I worked for hadn't that luck. Although I have spent part of Sunday doing C++ coding with the Android NDK, I don't miss those long weeks at work, looking for that pointer causing a server core dump, only to find out it was a double free/delete or an out of bounds error in a complete different module several minutes before the crash. -- Paulo
Jan 11 2015
parent "ponce" <contact gamesfrommars.fr> writes:
On Sunday, 11 January 2015 at 21:19:35 UTC, Paulo Pinto wrote:
 On Sunday, 11 January 2015 at 19:30:59 UTC, ponce wrote:
 On Sunday, 11 January 2015 at 18:25:39 UTC, 
 francesco.cattoglio wrote:
 On Sunday, 11 January 2015 at 14:10:56 UTC, ponce wrote:
 None of them has Visual Studio integration with debugging 
 support and that is pretty important for native and 
 enterprise programmers.
If I remember correctly, just 2 month ago someone was explaining how they lost a commercial user because D debugging experience was still not good enough by a long shot. And in my daily use, debug experience is still subpar on windows.
 only to discover it is not fun enough and fun is more 
 important than "memory safety without GC".
WHAT? Syntax is boring, but I don't get the sense of the sentence
Right, might be personal judgement, at this point I was in rant-mode. :) Rust is supposed to replace C++, and it happens working in C++ since years, I can't help but notice we actually have very few memory safety problems, to the point that I question that it's something worth worrying about....[cutted]
Somehow I feel you are in the very lucky position of having top notch colleagues, with small attrition in team members and budget to buy C++ sanitation tools.
Accurate. Actually C++ is pretty much a non-problem around here, not my experience in other C++ shops.
Jan 11 2015
prev sibling parent reply "francesco.cattoglio" <francesco.cattoglio gmail.com> writes:
On Sunday, 11 January 2015 at 19:30:59 UTC, ponce wrote:

 When does invalidMemoryOperationError happen and how do you 
 avoid it?
Typical example: using (a slightly outdated version of) gfm library, I have few gfm objects lying around on which I forget to call a close() function. When the GC collects them the destructor runs close(), which in turn calls for some allocation (e.g: allocates for a string to send to the logger), invalidMemoryOperationError pops up. This usually only happens at the end of execution, sometimes however it happens randomly during program execution due to the randomness of GC operations. The only way out of this is manually closing everything correctly. I.e: I'm almost back to C++ manual memory management. Catching the exception is an unsatisfactory solution because I would still be leaking resources[1]. If possible, things are made even worse in that RefCounted doesn't work for classes, but that you can work around that (class instance into refcounted struct, not really elegant and requires lots of discipline, since it's easy to escape an extra reference). [1] For everyone who doesn't know: non trivial destructors are really useful in gfm because it wraps some C libraries, and cleaning up C allocated resources is usually important. Proper execution of gfm's close() for every class would be ideal.
Jan 12 2015
next sibling parent reply "ponce" <contact gam3sfrommars.fr> writes:
On Monday, 12 January 2015 at 11:04:45 UTC, francesco.cattoglio 
wrote:
 On Sunday, 11 January 2015 at 19:30:59 UTC, ponce wrote:

 When does invalidMemoryOperationError happen and how do you 
 avoid it?
Typical example: using (a slightly outdated version of) gfm library, I have few gfm objects lying around on which I forget to call a close() function. When the GC collects them the destructor runs close(), which in turn calls for some allocation (e.g: allocates for a string to send to the logger), invalidMemoryOperationError pops up. This usually only happens at the end of execution, sometimes however it happens randomly during program execution due to the randomness of GC operations. The only way out of this is manually closing everything correctly. I.e: I'm almost back to C++ manual memory management. Catching the exception is an unsatisfactory solution because I would still be leaking resources[1]. If possible, things are made even worse in that RefCounted doesn't work for classes, but that you can work around that (class instance into refcounted struct, not really elegant and requires lots of discipline, since it's easy to escape an extra reference). [1] For everyone who doesn't know: non trivial destructors are really useful in gfm because it wraps some C libraries, and cleaning up C allocated resources is usually important. Proper execution of gfm's close() for every class would be ideal.
Yeah the current situation force much discipline vs C++, and I made it worse by having class destructors call close() which turn things to work sometimes only by chance. I think more and more that I should have class destructors that don't call close(), and simply don't do anything. It's what glamour does (https://github.com/Dav1dde/glamour/blob/master/glamour/shader.d#L207) and it seems way more practical. Especially since destructors called by GC would release resources from the wrong thread, at the wrong moment, etc. It would be great if we settle on a name for this releasing function, whether it is close(), release(), dispose()... it seems it is a blocker for owning pointers of class instances.
Jan 12 2015
parent "francesco.cattoglio" <francesco.cattoglio gmail.com> writes:
On Monday, 12 January 2015 at 12:23:51 UTC, ponce wrote:
 Especially since destructors called by GC would release 
 resources from the wrong thread, at the wrong moment, etc.
Yeah, I almost forgot about this: destructing GC resources interacting with OpenGL was sooooooo fun :P
Jan 12 2015
prev sibling next sibling parent "aldanor" <i.s.smirnov gmail.com> writes:
On Monday, 12 January 2015 at 11:04:45 UTC, francesco.cattoglio 
wrote:
 On Sunday, 11 January 2015 at 19:30:59 UTC, ponce wrote:

 When does invalidMemoryOperationError happen and how do you 
 avoid it?
Typical example: using (a slightly outdated version of) gfm library, I have few gfm objects lying around on which I forget to call a close() function. When the GC collects them the destructor runs close(), which in turn calls for some allocation (e.g: allocates for a string to send to the logger), invalidMemoryOperationError pops up. This usually only happens at the end of execution, sometimes however it happens randomly during program execution due to the randomness of GC operations. The only way out of this is manually closing everything correctly. I.e: I'm almost back to C++ manual memory management. Catching the exception is an unsatisfactory solution because I would still be leaking resources[1]. If possible, things are made even worse in that RefCounted doesn't work for classes, but that you can work around that (class instance into refcounted struct, not really elegant and requires lots of discipline, since it's easy to escape an extra reference). [1] For everyone who doesn't know: non trivial destructors are really useful in gfm because it wraps some C libraries, and cleaning up C allocated resources is usually important. Proper execution of gfm's close() for every class would be ideal.
Sounds like an exact same problem I have run into recently: class wrappers around HDF5 C library need to do something not nogc in a destructor and also have to call the C-level releasing functions. Can't do that in a destructor since then you get the invalidMemoryOperationError; can't make classes structs and use refcounted since there's an implied type hierarchy which becomes a mess with alias this... the only way is to put that in close() and then not forget to call it manually. Wish there was a standardized way of running non- nogc user code before the dtor actually runs (and anytime after it's known to be guaranteed to run).
Jan 12 2015
prev sibling parent reply "Adam D. Ruppe" <destructionator gmail.com> writes:
On Monday, 12 January 2015 at 11:04:45 UTC, francesco.cattoglio 
wrote:
 When the GC collects them the destructor runs close(), which in 
 turn calls for some allocation (e.g: allocates for a string to 
 send to the logger),
Do you have to log? I've never had a problem calling C free functions in a class destructor in D.
Jan 12 2015
parent reply "francesco.cattoglio" <francesco.cattoglio gmail.com> writes:
On Monday, 12 January 2015 at 13:27:55 UTC, Adam D. Ruppe wrote:
 On Monday, 12 January 2015 at 11:04:45 UTC, francesco.cattoglio 
 wrote:
 When the GC collects them the destructor runs close(), which 
 in turn calls for some allocation (e.g: allocates for a string 
 to send to the logger),
Do you have to log? I've never had a problem calling C free functions in a class destructor in D.
Not me personally, but gfm does that, and I'm not going to remove all the logging from the destructors :P I know the log example is weak, but I really think this issue is still valid. To be completely honest, it is my only real gripe with D.
Jan 12 2015
parent reply "eles" <eles eles.com> writes:
On Monday, 12 January 2015 at 14:34:41 UTC, francesco.cattoglio 
wrote:
 On Monday, 12 January 2015 at 13:27:55 UTC, Adam D. Ruppe wrote:
 On Monday, 12 January 2015 at 11:04:45 UTC, 
 francesco.cattoglio wrote:
 To be completely honest, it is my only real gripe with D.
Yes, but it's at the very root of the language.
Jan 12 2015
parent "francesco.cattoglio" <francesco.cattoglio gmail.com> writes:
On Monday, 12 January 2015 at 15:22:41 UTC, eles wrote:
 On Monday, 12 January 2015 at 14:34:41 UTC, francesco.cattoglio 
 wrote:
 On Monday, 12 January 2015 at 13:27:55 UTC, Adam D. Ruppe 
 wrote:
 On Monday, 12 January 2015 at 11:04:45 UTC, 
 francesco.cattoglio wrote:
 To be completely honest, it is my only real gripe with D.
Yes, but it's at the very root of the language.
Not sure about it. Things used to work differently some time ago, if I understand correctly. The GC was changed in order to avoid some memory corruption issues IIRC, before you could allocate during GC cycles.
Jan 12 2015
prev sibling next sibling parent reply Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> writes:
On 1/11/15 10:25 AM, francesco.cattoglio wrote:
 I'm obviously being the devil's advocate here, but we can't just say "D
 is much more far ahead, we have nothing to fear from Go and Rust",
 because it's just not true.
Totally agreed. It's a competitive climate out there, and we need to mind our competition.
 And I say it as a daily D user, daily facing
 issues like the horrible invalidMemoryOperationError exception.
What is that? Andrei
Jan 11 2015
parent "Adam D. Ruppe" <destructionator gmail.com> writes:
On Sunday, 11 January 2015 at 19:49:32 UTC, Andrei Alexandrescu 
wrote:
 On 1/11/15 10:25 AM, francesco.cattoglio wrote:
 And I say it as a daily D user, daily facing
 issues like the horrible invalidMemoryOperationError exception.
What is that?
It happens if you try to do a GC operation while the GC is running. The typical cause is allocating in a destructor. (Accessing reference type member variables from class destructor is another way to get a crash, since the GC might collect them first.) There's a handful of memory issues in D, some with the GC and some when you try to avoid the GC, but they typically don't bother me.... perhaps because I've learned to avoid problematic areas, like non-trivial class destructors.
Jan 11 2015
prev sibling parent "Ola Fosheim =?UTF-8?B?R3LDuHN0YWQi?= writes:
On Sunday, 11 January 2015 at 18:25:39 UTC, francesco.cattoglio 
wrote:
 They have not broken any promise just yet! :P And I somehow hope
 they can really manage a high level of stability after
 discussing throughtly this much about every bikeshed
 topic (including the recent int/uint change).
Yes... And whether to embed 2K of poetry in the runtime or not... https://github.com/rust-lang/rust/issues/13871
Jan 12 2015
prev sibling next sibling parent reply "Kiith-Sa" <kiithsacmp gmail.com> writes:
On Sunday, 11 January 2015 at 12:57:17 UTC, MattCoder wrote:
 On Sunday, 11 January 2015 at 06:56:02 UTC, thedeemon wrote:
 At this moment I only see some popularity comparisons
Yes in fact they are talking more about popularity between both languages.
 and I think they're generally correct...
Since I'm relative new here, I want know from you agree with this statement: " [–]clay_davis_sheeit 4 points 17 hours ago* get real. D is more dead now than it was a year ago. if you won't accept repo counts, look at how many people attended D con vs Gophercon " Matheus.
That guy has been trolling every D thread in the last year. Either way, D is definitely way more popular/active than it was a year ago, especially with a large jump around last summer, but not nearly as much as Go nor Rust at the moment. (D << Rust << Go at the moment as far as popularity is concerned).
Jan 11 2015
parent reply "MattCoder" <stop spam.com> writes:
On Sunday, 11 January 2015 at 13:57:54 UTC, Kiith-Sa wrote:
 That guy has been trolling every D thread in the last year.
I didn't know that. Glad you said!
 Either way, D is definitely way more popular/active than it was 
 a year ago, especially with a large jump around last summer but 
 not nearly as much as Go nor Rust at the moment...
Yes, that was what I saw on this thread: http://forum.dlang.org/thread/lu6mhc$t2k$1 digitalmars.com Matheus.
Jan 11 2015
parent "Ola Fosheim =?UTF-8?B?R3LDuHN0YWQi?= writes:
On Sunday, 11 January 2015 at 16:30:09 UTC, MattCoder wrote:
 Yes, that was what I saw on this thread: 
 http://forum.dlang.org/thread/lu6mhc$t2k$1 digitalmars.com
I don't think such statistics matters much. Downloads is a bad measure, retention rate is what you want to measure (the ratio of people trying vs using). Just focus on what works for your projects and whether the maturity level of the tool and the ecosystem supports what you want to do. Different languages appeal to different domains, but with the less popular tools you have to do a lot yourself or create C/C++ bindings. Compare eco-system repositories and you'll get an idea of what profiles different languages have: http://code.dlang.org/ http://godoc.org/-/index https://github.com/search?q=stars%3A%3E10&l=rust
Jan 11 2015
prev sibling parent reply "thedeemon" <dlang thedeemon.com> writes:
On Sunday, 11 January 2015 at 12:57:17 UTC, MattCoder wrote:

 Since I'm relative new here, I want know from you agree with 
 this statement:

 "
 [–]clay_davis_sheeit 4 points 17 hours ago*

 get real. D is more dead now than it was a year ago. if you 
 won't accept repo counts, look at how many people attended D 
 con vs Gophercon "
I understand he's talking not about absolute numbers but about relative popularity/mindshare. And as other languages grow (like Rust) total mindshare of D might decrease. In some metrics absolute numbers also decrease. For example, compare these stats: http://www.code2014.com/ http://code2013.herokuapp.com/
Jan 11 2015
parent reply "MattCoder" <stop spam.com> writes:
On Sunday, 11 January 2015 at 15:44:42 UTC, thedeemon wrote:
 ...For example, compare these stats:
 http://www.code2014.com/
 http://code2013.herokuapp.com/
Interesting charts. But on the other hand, I remember that sometime ago Andrei posted ( http://forum.dlang.org/thread/lu6mhc$t2k$1 digitalmars.com ) some numbers: DL | Month 5886 2013-01 5525 2013-02 22799 2013-03 11717 2013-04 6214 2013-05 9614 2013-06 11455 2013-07 16803 2013-08 20835 2013-09 19009 2013-10 20569 2013-11 15742 2013-12 18002 2014-01 20191 2014-02 18651 2014-03 19600 2014-04 21015 2014-05 20962 2014-06 34979 2014-07 34288 2014-08 1088 2014-09-01 ( Just 3 days ). Matheus.
Jan 11 2015
parent reply Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> writes:
On 1/11/15 8:27 AM, MattCoder wrote:
 On Sunday, 11 January 2015 at 15:44:42 UTC, thedeemon wrote:
 ...For example, compare these stats:
 http://www.code2014.com/
 http://code2013.herokuapp.com/
Interesting charts. But on the other hand, I remember that sometime ago Andrei posted ( http://forum.dlang.org/thread/lu6mhc$t2k$1 digitalmars.com ) some numbers: DL | Month 5886 2013-01 5525 2013-02 22799 2013-03 11717 2013-04 6214 2013-05 9614 2013-06 11455 2013-07 16803 2013-08 20835 2013-09 19009 2013-10 20569 2013-11 15742 2013-12 18002 2014-01 20191 2014-02 18651 2014-03 19600 2014-04 21015 2014-05 20962 2014-06 34979 2014-07 34288 2014-08 1088 2014-09-01 ( Just 3 days ).
I just regenerated the 28-day moving average graph: erdani.com/d/downloads.daily.png Andrei
Jan 11 2015
parent reply Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> writes:
On 1/11/15 9:43 AM, Andrei Alexandrescu wrote:
 I just regenerated the 28-day moving average graph:
 erdani.com/d/downloads.daily.png
http://erdani.com/d/downloads.daily.png that is. -- Andrei
Jan 11 2015
next sibling parent "Ola Fosheim =?UTF-8?B?R3LDuHN0YWQi?= writes:
On Sunday, 11 January 2015 at 17:44:59 UTC, Andrei Alexandrescu 
wrote:
 On 1/11/15 9:43 AM, Andrei Alexandrescu wrote:
 I just regenerated the 28-day moving average graph:
 erdani.com/d/downloads.daily.png
http://erdani.com/d/downloads.daily.png that is. -- Andrei
Considered doing a scatter plot of geolocations (based on ip)?
Jan 11 2015
prev sibling next sibling parent reply "Ulrich =?UTF-8?B?S8O8dHRsZXIi?= <kuettler gmail.com> writes:
On Sunday, 11 January 2015 at 17:44:59 UTC, Andrei Alexandrescu 
wrote:
 http://erdani.com/d/downloads.daily.png that is. -- Andrei
You could go a long way with a little tracking code on dlang.org. Just saying.
Jan 11 2015
parent reply Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> writes:
On 1/11/15 12:28 PM, "Ulrich =?UTF-8?B?S8O8dHRsZXIi?= 
<kuettler gmail.com>" wrote:
 On Sunday, 11 January 2015 at 17:44:59 UTC, Andrei Alexandrescu wrote:
 http://erdani.com/d/downloads.daily.png that is. -- Andrei
You could go a long way with a little tracking code on dlang.org. Just saying.
What do you mean? -- Andrei
Jan 11 2015
parent reply "Ulrich =?UTF-8?B?S8O8dHRsZXIi?= <kuettler gmail.com> writes:
On Sunday, 11 January 2015 at 20:56:51 UTC, Andrei Alexandrescu 
wrote:
 On 1/11/15 12:28 PM, "Ulrich =?UTF-8?B?S8O8dHRsZXIi?= 
 <kuettler gmail.com>" wrote:
 On Sunday, 11 January 2015 at 17:44:59 UTC, Andrei 
 Alexandrescu wrote:
 http://erdani.com/d/downloads.daily.png that is. -- Andrei
You could go a long way with a little tracking code on dlang.org. Just saying.
What do you mean? -- Andrei
Using google analytics or something of that kind you would get proper visitor counts (plus metadata) on all pages. The basic setup is very simple (a little tag on all pages) and provides a lot of insight: https://support.google.com/analytics/answer/1008080?hl=en#GA The sky is the limit with these kinds of tools, but you probably do not want to go there. There might be ethical objections. Both golang.org and www.rust-lang.org track their users. Just search for google-analytics in the page source. Uli
Jan 11 2015
parent Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> writes:
On 1/11/15 1:39 PM, "Ulrich =?UTF-8?B?S8O8dHRsZXIi?= 
<kuettler gmail.com>" wrote:
 On Sunday, 11 January 2015 at 20:56:51 UTC, Andrei Alexandrescu wrote:
 On 1/11/15 12:28 PM, "Ulrich =?UTF-8?B?S8O8dHRsZXIi?=
 <kuettler gmail.com>" wrote:
 On Sunday, 11 January 2015 at 17:44:59 UTC, Andrei Alexandrescu wrote:
 http://erdani.com/d/downloads.daily.png that is. -- Andrei
You could go a long way with a little tracking code on dlang.org. Just saying.
What do you mean? -- Andrei
Using google analytics or something of that kind you would get proper visitor counts (plus metadata) on all pages. The basic setup is very simple (a little tag on all pages) and provides a lot of insight: https://support.google.com/analytics/answer/1008080?hl=en#GA The sky is the limit with these kinds of tools, but you probably do not want to go there. There might be ethical objections. Both golang.org and www.rust-lang.org track their users. Just search for google-analytics in the page source.
We have such. -- Andrei
Jan 11 2015
prev sibling parent reply "Nick B" <nick.barbalich gmail.com> writes:
On Sunday, 11 January 2015 at 17:44:59 UTC, Andrei Alexandrescu 
wrote:
 On 1/11/15 9:43 AM, Andrei Alexandrescu wrote:
 I just regenerated the 28-day moving average graph:
 erdani.com/d/downloads.daily.png
http://erdani.com/d/downloads.daily.png that is. -- Andrei
Looking at the chart it is showing a sustained 36,000 downloads (1200 x 30) per month, currently. Perhaps a interesting question is how often an average user, does a download ? Nick
Jan 11 2015
parent reply Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> writes:
On 1/11/15 2:54 PM, Nick B wrote:
 On Sunday, 11 January 2015 at 17:44:59 UTC, Andrei Alexandrescu wrote:
 On 1/11/15 9:43 AM, Andrei Alexandrescu wrote:
 I just regenerated the 28-day moving average graph:
 erdani.com/d/downloads.daily.png
http://erdani.com/d/downloads.daily.png that is. -- Andrei
Looking at the chart it is showing a sustained 36,000 downloads (1200 x 30) per month, currently. Perhaps a interesting question is how often an average user, does a download ?
Ionno how to measure that with the data we have. -- Andrei
Jan 11 2015
parent reply "Nick B" <nick.barbalich gmail.com> writes:
On Sunday, 11 January 2015 at 22:55:52 UTC, Andrei Alexandrescu 
wrote:
 On 1/11/15 2:54 PM, Nick B wrote:
 On Sunday, 11 January 2015 at 17:44:59 UTC, Andrei 
 Alexandrescu wrote:
 Ionno how to measure that with the data we have. -- Andrei
Perhaps its better to have a number (average or mean) than no number. Just ask 50 or 100 uers (or more) for their number of downloads for the last 12 or 18 months. This is turn will give you a guess-estimate as to the size of the community. If the number is small, say 4, then this will indicate that the community is near 100,000 users. Nick
Jan 11 2015
next sibling parent "weaselcat" <weaselcat gmail.com> writes:
On Sunday, 11 January 2015 at 23:27:34 UTC, Nick B wrote:
 On Sunday, 11 January 2015 at 22:55:52 UTC, Andrei Alexandrescu 
 wrote:
 On 1/11/15 2:54 PM, Nick B wrote:
 On Sunday, 11 January 2015 at 17:44:59 UTC, Andrei 
 Alexandrescu wrote:
 Ionno how to measure that with the data we have. -- Andrei
Perhaps its better to have a number (average or mean) than no number. Just ask 50 or 100 uers (or more) for their number of downloads for the last 12 or 18 months. This is turn will give you a guess-estimate as to the size of the community. If the number is small, say 4, then this will indicate that the community is near 100,000 users. Nick
Still inaccurate because many D users use linux and get their compiler from their distro's package manager.
Jan 11 2015
prev sibling parent reply "MattCoder" <stop spam.com> writes:
On Sunday, 11 January 2015 at 23:27:34 UTC, Nick B wrote:
 Perhaps its better to have a number (average or mean) than no 
 number.  Just ask 50 or 100 uers (or more) for their number of 
 downloads for the last 12 or 18 months. This is turn will give 
 you a guess-estimate as to the size of the community. If the 
 number is small, say 4, then this will indicate that the 
 community is near 100,000 users.
Interesting for example, in my case I downloaded twice on the last 12 months (2.062 and 2.066). Matheus.
Jan 11 2015
parent reply Andrei Alexandrescu <SeeWebsiteForEmail erdani.org> writes:
On 1/11/15 4:33 PM, MattCoder wrote:
 On Sunday, 11 January 2015 at 23:27:34 UTC, Nick B wrote:
 Perhaps its better to have a number (average or mean) than no number.
 Just ask 50 or 100 uers (or more) for their number of downloads for
 the last 12 or 18 months. This is turn will give you a guess-estimate
 as to the size of the community. If the number is small, say 4, then
 this will indicate that the community is near 100,000 users.
Interesting for example, in my case I downloaded twice on the last 12 months (2.062 and 2.066).
Answers from others would be helpful. Thanks! -- Andrei
Jan 11 2015
next sibling parent "Kiith-Sa" <kiithsacmp gmail.com> writes:
On Monday, 12 January 2015 at 00:33:52 UTC, Andrei Alexandrescu 
wrote:
 On 1/11/15 4:33 PM, MattCoder wrote:
 On Sunday, 11 January 2015 at 23:27:34 UTC, Nick B wrote:
 Perhaps its better to have a number (average or mean) than no 
 number.
 Just ask 50 or 100 uers (or more) for their number of 
 downloads for
 the last 12 or 18 months. This is turn will give you a 
 guess-estimate
 as to the size of the community. If the number is small, say 
 4, then
 this will indicate that the community is near 100,000 users.
Interesting for example, in my case I downloaded twice on the last 12 months (2.062 and 2.066).
Answers from others would be helpful. Thanks! -- Andrei
About 3-5 per release on average in my case. (I have 3 machines and often change distros on 2 of them). If I count D workshops, +30, but most of those are not likely to become D users.
Jan 11 2015
prev sibling next sibling parent "Meta" <jared771 gmail.com> writes:
On Monday, 12 January 2015 at 00:33:52 UTC, Andrei Alexandrescu 
wrote:
 Answers from others would be helpful. Thanks! -- Andrei
Usually once per beta and once per release.
Jan 11 2015
prev sibling next sibling parent "Szymon Gatner" <noemail gmail.com> writes:
On Monday, 12 January 2015 at 00:33:52 UTC, Andrei Alexandrescu 
wrote:
 On 1/11/15 4:33 PM, MattCoder wrote:
 On Sunday, 11 January 2015 at 23:27:34 UTC, Nick B wrote:
 Perhaps its better to have a number (average or mean) than no 
 number.
 Just ask 50 or 100 uers (or more) for their number of 
 downloads for
 the last 12 or 18 months. This is turn will give you a 
 guess-estimate
 as to the size of the community. If the number is small, say 
 4, then
 this will indicate that the community is near 100,000 users.
Interesting for example, in my case I downloaded twice on the last 12 months (2.062 and 2.066).
Answers from others would be helpful. Thanks! -- Andrei
3-4 times per release (have 3 windows machines and on mac)
Jan 12 2015
prev sibling parent "ponce" <contact gamesfrommars.fr> writes:
On Monday, 12 January 2015 at 00:33:52 UTC, Andrei Alexandrescu 
wrote:
 On 1/11/15 4:33 PM, MattCoder wrote:
 On Sunday, 11 January 2015 at 23:27:34 UTC, Nick B wrote:
 Perhaps its better to have a number (average or mean) than no 
 number.
 Just ask 50 or 100 uers (or more) for their number of 
 downloads for
 the last 12 or 18 months. This is turn will give you a 
 guess-estimate
 as to the size of the community. If the number is small, say 
 4, then
 this will indicate that the community is near 100,000 users.
Interesting for example, in my case I downloaded twice on the last 12 months (2.062 and 2.066).
Answers from others would be helpful. Thanks! -- Andrei
~3 times per release for me.
Jan 12 2015
prev sibling parent reply "Adam D. Ruppe" <destructionator gmail.com> writes:
Reddit seems to have a constant stream of "random project in Go" 
posts. There was one this week that was a "command line 
websocket" and it was like 40 lines of code. Come on.

I'm tempted to start posting every little thing I write in D to 
it too, but it'd just be spam!
Jan 11 2015
next sibling parent reply "Bauss" <jj_1337 live.dk> writes:
On Sunday, 11 January 2015 at 14:03:05 UTC, Adam D. Ruppe wrote:
 Reddit seems to have a constant stream of "random project in 
 Go" posts. There was one this week that was a "command line 
 websocket" and it was like 40 lines of code. Come on.

 I'm tempted to start posting every little thing I write in D to 
 it too, but it'd just be spam!
I still think the best one was the stackoverflow comparison.
Jan 11 2015
parent "Jack" <jack somemail.com> writes:
On Sunday, 11 January 2015 at 14:12:08 UTC, Bauss wrote:
 On Sunday, 11 January 2015 at 14:03:05 UTC, Adam D. Ruppe wrote:
 Reddit seems to have a constant stream of "random project in 
 Go" posts. There was one this week that was a "command line 
 websocket" and it was like 40 lines of code. Come on.

 I'm tempted to start posting every little thing I write in D 
 to it too, but it'd just be spam!
I still think the best one was the stackoverflow comparison.
Correct me if I am wrong, but I think the stackoverflow comparison is in error, as Go has no forum like D's (http://forum.dlang.org).
Jan 11 2015
prev sibling next sibling parent reply "Ola Fosheim =?UTF-8?B?R3LDuHN0YWQi?= writes:
On Sunday, 11 January 2015 at 14:03:05 UTC, Adam D. Ruppe wrote:
 Reddit seems to have a constant stream of "random project in 
 Go" posts. There was one this week that was a "command line 
 websocket" and it was like 40 lines of code. Come on.

 I'm tempted to start posting every little thing I write in D to 
 it too, but it'd just be spam!
You know what, if you push out the projects which are tiny utilities that solves real world problems, then you might get people interested. If you can solve such real world problems in 40 lines of code it is good marketing. Isn't that the foundation of Python's popularity? And perl before that? And php? Just do it! :)
Jan 11 2015
parent reply Walter Bright <newshound2 digitalmars.com> writes:
On 1/11/2015 6:48 AM, "Ola Fosheim =?UTF-8?B?R3LDuHN0YWQi?= 
<ola.fosheim.grostad+dlang gmail.com>" wrote:
 You know what, if you push out the projects which are tiny utilities that
solves
 real world problems, then you might get people interested.

 If you can solve such real world problems in 40 lines of code it is good
marketing.

 Isn't that the foundation of Python's popularity?
 And perl before that?
 And php?

 Just do it! :)
For once, I agree with you :-D I often enjoy reading short programs that illustrate something clever. Some large project, I'm unlikely to start browsing its source.
Jan 11 2015
parent "Ola Fosheim =?UTF-8?B?R3LDuHN0YWQi?= writes:
On Sunday, 11 January 2015 at 18:37:31 UTC, Walter Bright wrote:
 For once, I agree with you :-D
You're in denial, you meant "like always". ;ˆ]
Jan 11 2015
prev sibling parent "Paulo Pinto" <pjmlp progtools.org> writes:
On Sunday, 11 January 2015 at 14:03:05 UTC, Adam D. Ruppe wrote:
 Reddit seems to have a constant stream of "random project in 
 Go" posts. There was one this week that was a "command line 
 websocket" and it was like 40 lines of code. Come on.

 I'm tempted to start posting every little thing I write in D to 
 it too, but it'd just be spam!
At least it would rise awareness. -- Paulo
Jan 11 2015