digitalmars.D - Thoughts on replacement languages (Reddit + D)
- MattCoder (8/8) Jan 10 2015 I saw this post:
- MattCoder (4/4) Jan 10 2015 PS: I'm not posting this to see any flamewar between languages
- thedeemon (5/8) Jan 10 2015 At this moment I only see some popularity comparisons and I think
- MattCoder (12/14) Jan 11 2015 Yes in fact they are talking more about popularity between both
- "Ola Fosheim =?UTF-8?B?R3LDuHN0YWQi?= (21/29) Jan 11 2015 "more dead" is a very subjective term.
- ponce (32/65) Jan 11 2015 The problem with Rust and Go is that they only deliver in theory,
- "Ola Fosheim =?UTF-8?B?R3LDuHN0YWQi?= (33/52) Jan 11 2015 I think Rust will hit non-breaking stability (or close to it)
- ponce (4/12) Jan 11 2015 Yep and Mozilla depends almost entirely on Google financially.
- Dicebot (6/9) Jan 11 2015 I am actually writing a "Rust guide as read by D developer"
- "Ola Fosheim =?UTF-8?B?R3LDuHN0YWQi?= (3/12) Jan 11 2015 Looking forward to reading it, I hope you publish it on a website
- Andrei Alexandrescu (3/10) Jan 11 2015 That sounds like a very interesting article. Looking forward to it. --
- Dicebot (8/24) Jan 12 2015 http://blog.dicebot.lv/2015/01/thoughts-about-rust-from-d-programmer.htm...
- John Colvin (6/31) Jan 12 2015 There's a lot of missing articles (the/an/a), but other than that
- Dicebot (5/8) Jan 12 2015 I was originally intending to mention how this is possible but
- John Colvin (3/12) Jan 12 2015 I think so. It might not be compiler-enforced but it's both
- Zach the Mystic (3/12) Jan 12 2015 I do, because the article gives the impression D has no answer to
- Dicebot (2/15) Jan 12 2015 http://www.reddit.com/r/programming/comments/2s70mm/thoughts_about_rust_...
- Andrei Alexandrescu (3/12) Jan 12 2015 http://www.reddit.com/r/programming/comments/2s70mm/thoughts_about_rust_...
- Dicebot (3/19) Jan 12 2015 I have asked to not post on reddit right now for a reason >_<
- Andrei Alexandrescu (2/20) Jan 12 2015 Apologies, haven't seen that part. -- Andrei
- deadalnix (5/7) Jan 12 2015 I noticed you usually are quick to fire links on reddit. You
- Andrei Alexandrescu (3/10) Jan 12 2015 Once something is on this forum, it's public so anyone can post it. That...
- deadalnix (5/20) Jan 12 2015 Yes this forum and reddit are 2 VERY different public, and it
- Nemanja Boric (4/20) Jan 13 2015 It's also on /r/rust
- Zach the Mystic (18/20) Jan 12 2015 I wrote these down, which will get you through the introduction:
- Dicebot (2/22) Jan 12 2015 Thanks, updated
- Zach the Mystic (3/4) Jan 12 2015 The section under "Uncertain" has a huge font size now and
- Dicebot (2/6) Jan 12 2015 Have just fixed, beg my pardon. Please check again.
- Zach the Mystic (3/6) Jan 12 2015 Looks good. You're clear for launch! Oh wait... (looks up in the
- MattCoder (4/12) Jan 12 2015 I'd like to add that your reddit post is #2 (hot topics) on
- Walter Bright (3/4) Jan 11 2015 I know the feeling. My internal state of "the right way to write program...
- Paulo Pinto (10/83) Jan 11 2015 I am known to complain about some of the Go missing features.
- francesco.cattoglio (19/31) Jan 11 2015 If I remember correctly, just 2 month ago someone was explaining
- ponce (16/33) Jan 11 2015 Right, might be personal judgement, at this point I was in
- bearophile (9/12) Jan 11 2015 Are you always able to detect them? I think languages (and
- ponce (6/12) Jan 11 2015 There are tools to do that:
- weaselcat (16/28) Jan 11 2015 Recently both Clang and GCC(? I think GCC has all of them now,
- weaselcat (4/34) Jan 11 2015 P.S., the sanitizer tools are built directly ontop of LLVM
- "Ola Fosheim =?UTF-8?B?R3LDuHN0YWQi?= (12/17) Jan 11 2015 When Intel MPX comes you should be able to in debug builds, since
- Paulo Pinto (12/34) Jan 11 2015 Somehow I feel you are in the very lucky position of having top
- ponce (3/31) Jan 11 2015 Accurate. Actually C++ is pretty much a non-problem around here,
- francesco.cattoglio (23/25) Jan 12 2015 Typical example:
- ponce (15/41) Jan 12 2015 Yeah the current situation force much discipline vs C++, and I
- francesco.cattoglio (3/5) Jan 12 2015 Yeah, I almost forgot about this: destructing GC resources
- aldanor (13/39) Jan 12 2015 Sounds like an exact same problem I have run into recently: class
- Adam D. Ruppe (4/7) Jan 12 2015 Do you have to log? I've never had a problem calling C free
- francesco.cattoglio (6/13) Jan 12 2015 Not me personally, but gfm does that, and I'm not going to remove
- eles (3/7) Jan 12 2015 Yes, but it's at the very root of the language.
- francesco.cattoglio (5/13) Jan 12 2015 Not sure about it. Things used to work differently some time ago,
- Andrei Alexandrescu (5/10) Jan 11 2015 Totally agreed. It's a competitive climate out there, and we need to
- Adam D. Ruppe (11/15) Jan 11 2015 It happens if you try to do a GC operation while the GC is
- "Ola Fosheim =?UTF-8?B?R3LDuHN0YWQi?= (4/8) Jan 12 2015 Yes... And whether to embed 2K of poetry in the runtime or not...
- Kiith-Sa (6/20) Jan 11 2015 That guy has been trolling every D thread in the last year.
- MattCoder (5/9) Jan 11 2015 Yes, that was what I saw on this thread:
- "Ola Fosheim =?UTF-8?B?R3LDuHN0YWQi?= (15/17) Jan 11 2015 I don't think such statistics matters much. Downloads is a bad
- thedeemon (7/14) Jan 11 2015 I understand he's talking not about absolute numbers but about
- MattCoder (28/31) Jan 11 2015 Interesting charts. But on the other hand, I remember that
- Andrei Alexandrescu (4/33) Jan 11 2015 I just regenerated the 28-day moving average graph:
- Andrei Alexandrescu (2/4) Jan 11 2015 http://erdani.com/d/downloads.daily.png that is. -- Andrei
- "Ola Fosheim =?UTF-8?B?R3LDuHN0YWQi?= (3/7) Jan 11 2015 Considered doing a scatter plot of geolocations (based on ip)?
- "Ulrich =?UTF-8?B?S8O8dHRsZXIi?= <kuettler gmail.com> (4/5) Jan 11 2015 You could go a long way with a little tracking code on dlang.org.
- Andrei Alexandrescu (3/8) Jan 11 2015 What do you mean? -- Andrei
- "Ulrich =?UTF-8?B?S8O8dHRsZXIi?= <kuettler gmail.com> (13/24) Jan 11 2015 Using google analytics or something of that kind you would get
- Andrei Alexandrescu (3/22) Jan 11 2015 We have such. -- Andrei
- Nick B (7/11) Jan 11 2015 Looking at the chart it is showing a sustained 36,000 downloads
- Andrei Alexandrescu (2/12) Jan 11 2015 Ionno how to measure that with the data we have. -- Andrei
- Nick B (9/13) Jan 11 2015 Perhaps its better to have a number (average or mean) than no
- weaselcat (3/17) Jan 11 2015 Still inaccurate because many D users use linux and get their
- MattCoder (4/10) Jan 11 2015 Interesting for example, in my case I downloaded twice on the
- Andrei Alexandrescu (2/10) Jan 11 2015 Answers from others would be helpful. Thanks! -- Andrei
- Kiith-Sa (6/22) Jan 11 2015 About 3-5 per release on average in my case. (I have 3 machines
- Meta (3/4) Jan 11 2015 Usually once per beta and once per release.
- Szymon Gatner (3/19) Jan 12 2015 3-4 times per release (have 3 windows machines and on mac)
- ponce (3/19) Jan 12 2015 ~3 times per release for me.
- Adam D. Ruppe (5/5) Jan 11 2015 Reddit seems to have a constant stream of "random project in Go"
- Bauss (2/7) Jan 11 2015 I still think the best one was the stackoverflow comparison.
- Jack (4/12) Jan 11 2015 Correct me if I am wrong, but I think the stackoverflow
- "Ola Fosheim =?UTF-8?B?R3LDuHN0YWQi?= (10/15) Jan 11 2015 You know what, if you push out the projects which are tiny
- Walter Bright (5/12) Jan 11 2015 For once, I agree with you :-D
- "Ola Fosheim =?UTF-8?B?R3LDuHN0YWQi?= (2/3) Jan 11 2015 You're in denial, you meant "like always". ;ˆ]
- Paulo Pinto (4/9) Jan 11 2015 At least it would rise awareness.
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
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
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
On Sunday, 11 January 2015 at 06:56:02 UTC, thedeemon wrote:At this moment I only see some popularity comparisonsYes 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
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
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: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.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
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
On Sunday, 11 January 2015 at 14:43:08 UTC, Ola Fosheim Grøstad wrote:Yep and Mozilla depends almost entirely on Google financially. Scary.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).
Jan 11 2015
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
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:Looking forward to reading it, I hope you publish it on a website so that it can draw in non-D people too.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
On 1/11/15 7:29 AM, Dicebot wrote:On Sunday, 11 January 2015 at 14:43:08 UTC, Ola Fosheim Grøstad wrote:That sounds like a very interesting article. Looking forward to it. -- AndreiMaybe 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
On Sunday, 11 January 2015 at 17:35:19 UTC, Andrei Alexandrescu wrote:On 1/11/15 7:29 AM, Dicebot wrote: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 :)On Sunday, 11 January 2015 at 14:43:08 UTC, Ola Fosheim Grøstad wrote:That sounds like a very interesting article. Looking forward to it. -- AndreiMaybe 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 12 2015
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: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;On 1/11/15 7:29 AM, Dicebot wrote: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 :)On Sunday, 11 January 2015 at 14:43:08 UTC, Ola Fosheim Grøstad wrote:That sounds like a very interesting article. Looking forward to it. -- AndreiMaybe 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 12 2015
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
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:I think so. It might not be compiler-enforced but it's both possible and I would recommend people doing it.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
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:I do, because the article gives the impression D has no answer to this problem. Why don't you use this feature yourself?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
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:http://www.reddit.com/r/programming/comments/2s70mm/thoughts_about_rust_from_a_d_programmer/cnmsnipOn Monday, 12 January 2015 at 18:55:49 UTC, John Colvin wrote:I do, because the article gives the impression D has no answer to this problem. Why don't you use this feature yourself?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
On 1/12/15 11:01 AM, Dicebot wrote:On Monday, 12 January 2015 at 18:55:49 UTC, John Colvin wrote:http://www.reddit.com/r/programming/comments/2s70mm/thoughts_about_rust_from_a_d_programmer/ AndreiThe 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
On Monday, 12 January 2015 at 19:25:28 UTC, Andrei Alexandrescu wrote:On 1/12/15 11:01 AM, Dicebot wrote:I have asked to not post on reddit right now for a reason >_<On Monday, 12 January 2015 at 18:55:49 UTC, John Colvin wrote:http://www.reddit.com/r/programming/comments/2s70mm/thoughts_about_rust_from_a_d_programmer/ AndreiThe 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
On 1/12/15 12:13 PM, Dicebot wrote:On Monday, 12 January 2015 at 19:25:28 UTC, Andrei Alexandrescu wrote:Apologies, haven't seen that part. -- AndreiOn 1/12/15 11:01 AM, Dicebot wrote:I have asked to not post on reddit right now for a reason >_<On Monday, 12 January 2015 at 18:55:49 UTC, John Colvin wrote:http://www.reddit.com/r/programming/comments/2s70mm/thoughts_about_rust_from_a_d_programmer/ AndreiThe 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
On Monday, 12 January 2015 at 20:58:50 UTC, Andrei Alexandrescu wrote: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.I have asked to not post on reddit right now for a reason >_<Apologies, haven't seen that part. -- Andrei
Jan 12 2015
On 1/12/15 7:20 PM, deadalnix wrote:On Monday, 12 January 2015 at 20:58:50 UTC, Andrei Alexandrescu wrote: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. -- AndreiI 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.I have asked to not post on reddit right now for a reason >_<Apologies, haven't seen that part. -- Andrei
Jan 12 2015
On Tuesday, 13 January 2015 at 06:18:35 UTC, Andrei Alexandrescu wrote:On 1/12/15 7:20 PM, deadalnix wrote: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.On Monday, 12 January 2015 at 20:58:50 UTC, Andrei Alexandrescu wrote: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. -- AndreiI 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.I have asked to not post on reddit right now for a reason >_<Apologies, haven't seen that part. -- Andrei
Jan 12 2015
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:http://www.reddit.com/r/programming/comments/2s70mm/thoughts_about_rust_from_a_d_programmer/ AndreiThe 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 13 2015
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
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:Thanks, updatedI'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
On Monday, 12 January 2015 at 20:31:33 UTC, Dicebot wrote:Thanks, updatedThe section under "Uncertain" has a huge font size now and repeats what was just said.
Jan 12 2015
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:Have just fixed, beg my pardon. Please check again.Thanks, updatedThe section under "Uncertain" has a huge font size now and repeats what was just said.
Jan 12 2015
On Monday, 12 January 2015 at 21:13:10 UTC, Dicebot wrote:Looks good. You're clear for launch! Oh wait... (looks up in the sky...)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
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:/r/programming! Congratulations. :) Matheus.On Monday, 12 January 2015 at 20:31:33 UTC, Dicebot wrote:Have just fixed, beg my pardon. Please check again.Thanks, updatedThe section under "Uncertain" has a huge font size now and repeats what was just said.
Jan 12 2015
On Monday, 12 January 2015 at 22:31:46 UTC, MattCoder wrote:On Monday, 12 January 2015 at 21:13:10 UTC, Dicebot wrote:Oops, 100+ comments in that thread now, keeping with it will probably take as much time as writing article itself :XOn Monday, 12 January 2015 at 21:02:54 UTC, Zach the Mystic wrote:/r/programming! Congratulations. :) Matheus.On Monday, 12 January 2015 at 20:31:33 UTC, Dicebot wrote:Have just fixed, beg my pardon. Please check again.Thanks, updatedThe section under "Uncertain" has a huge font size now and repeats what was just said.
Jan 13 2015
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 :XThe price of be(com)ing famous...
Jan 13 2015
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
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: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. -- PauloOn Sunday, 11 January 2015 at 12:57:17 UTC, MattCoder 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. 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.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
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 sentenceI 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
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: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?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 sentenceI'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
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
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
On Sunday, 11 January 2015 at 19:42:38 UTC, ponce wrote:On Sunday, 11 January 2015 at 19:38:12 UTC, bearophile wrote: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.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
On Sunday, 11 January 2015 at 20:47:37 UTC, weaselcat wrote:On Sunday, 11 January 2015 at 19:42:38 UTC, ponce wrote: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?On Sunday, 11 January 2015 at 19:38:12 UTC, bearophile wrote: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.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
On Sunday, 11 January 2015 at 19:38:12 UTC, bearophile wrote:ponce: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.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?
Jan 11 2015
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: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. -- PauloOn Sunday, 11 January 2015 at 14:10:56 UTC, ponce wrote: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]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
Jan 11 2015
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:Accurate. Actually C++ is pretty much a non-problem around here, not my experience in other C++ shops.On Sunday, 11 January 2015 at 18:25:39 UTC, francesco.cattoglio wrote: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.On Sunday, 11 January 2015 at 14:10:56 UTC, ponce wrote: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]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
Jan 11 2015
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
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: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.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
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
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: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).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
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
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: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.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
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
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: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.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
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
On Sunday, 11 January 2015 at 19:49:32 UTC, Andrei Alexandrescu wrote:On 1/11/15 10:25 AM, francesco.cattoglio wrote: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.And I say it as a daily D user, daily facing issues like the horrible invalidMemoryOperationError exception.What is that?
Jan 11 2015
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
On Sunday, 11 January 2015 at 12:57:17 UTC, MattCoder wrote:On Sunday, 11 January 2015 at 06:56:02 UTC, thedeemon wrote: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).At this moment I only see some popularity comparisonsYes 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
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
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.comI 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
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
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
On 1/11/15 8:27 AM, MattCoder wrote:On Sunday, 11 January 2015 at 15:44:42 UTC, thedeemon wrote:I just regenerated the 28-day moving average graph: erdani.com/d/downloads.daily.png Andrei...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 ).
Jan 11 2015
On 1/11/15 9:43 AM, Andrei Alexandrescu wrote:I just regenerated the 28-day moving average graph: erdani.com/d/downloads.daily.pnghttp://erdani.com/d/downloads.daily.png that is. -- Andrei
Jan 11 2015
On Sunday, 11 January 2015 at 17:44:59 UTC, Andrei Alexandrescu wrote:On 1/11/15 9:43 AM, Andrei Alexandrescu wrote:Considered doing a scatter plot of geolocations (based on ip)?I just regenerated the 28-day moving average graph: erdani.com/d/downloads.daily.pnghttp://erdani.com/d/downloads.daily.png that is. -- Andrei
Jan 11 2015
On Sunday, 11 January 2015 at 17:44:59 UTC, Andrei Alexandrescu wrote:http://erdani.com/d/downloads.daily.png that is. -- AndreiYou could go a long way with a little tracking code on dlang.org. Just saying.
Jan 11 2015
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:What do you mean? -- Andreihttp://erdani.com/d/downloads.daily.png that is. -- AndreiYou could go a long way with a little tracking code on dlang.org. Just saying.
Jan 11 2015
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: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. UliOn Sunday, 11 January 2015 at 17:44:59 UTC, Andrei Alexandrescu wrote:What do you mean? -- Andreihttp://erdani.com/d/downloads.daily.png that is. -- AndreiYou could go a long way with a little tracking code on dlang.org. Just saying.
Jan 11 2015
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:We have such. -- AndreiOn 1/11/15 12:28 PM, "Ulrich =?UTF-8?B?S8O8dHRsZXIi?= <kuettler gmail.com>" wrote: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.On Sunday, 11 January 2015 at 17:44:59 UTC, Andrei Alexandrescu wrote:What do you mean? -- Andreihttp://erdani.com/d/downloads.daily.png that is. -- AndreiYou could go a long way with a little tracking code on dlang.org. Just saying.
Jan 11 2015
On Sunday, 11 January 2015 at 17:44:59 UTC, Andrei Alexandrescu wrote:On 1/11/15 9:43 AM, Andrei Alexandrescu wrote: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 ? NickI just regenerated the 28-day moving average graph: erdani.com/d/downloads.daily.pnghttp://erdani.com/d/downloads.daily.png that is. -- Andrei
Jan 11 2015
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. -- AndreiOn 1/11/15 9:43 AM, Andrei Alexandrescu wrote: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 ?I just regenerated the 28-day moving average graph: erdani.com/d/downloads.daily.pnghttp://erdani.com/d/downloads.daily.png that is. -- Andrei
Jan 11 2015
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. -- AndreiPerhaps 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
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:Still inaccurate because many D users use linux and get their compiler from their distro's package manager.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. -- AndreiPerhaps 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
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
On 1/11/15 4:33 PM, MattCoder wrote:On Sunday, 11 January 2015 at 23:27:34 UTC, Nick B wrote:Answers from others would be helpful. Thanks! -- AndreiPerhaps 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).
Jan 11 2015
On Monday, 12 January 2015 at 00:33:52 UTC, Andrei Alexandrescu wrote:On 1/11/15 4:33 PM, MattCoder wrote: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.On Sunday, 11 January 2015 at 23:27:34 UTC, Nick B wrote:Answers from others would be helpful. Thanks! -- AndreiPerhaps 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).
Jan 11 2015
On Monday, 12 January 2015 at 00:33:52 UTC, Andrei Alexandrescu wrote:Answers from others would be helpful. Thanks! -- AndreiUsually once per beta and once per release.
Jan 11 2015
On Monday, 12 January 2015 at 00:33:52 UTC, Andrei Alexandrescu wrote:On 1/11/15 4:33 PM, MattCoder wrote:3-4 times per release (have 3 windows machines and on mac)On Sunday, 11 January 2015 at 23:27:34 UTC, Nick B wrote:Answers from others would be helpful. Thanks! -- AndreiPerhaps 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).
Jan 12 2015
On Monday, 12 January 2015 at 00:33:52 UTC, Andrei Alexandrescu wrote:On 1/11/15 4:33 PM, MattCoder wrote:~3 times per release for me.On Sunday, 11 January 2015 at 23:27:34 UTC, Nick B wrote:Answers from others would be helpful. Thanks! -- AndreiPerhaps 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).
Jan 12 2015
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
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
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: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).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
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
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
On Sunday, 11 January 2015 at 18:37:31 UTC, Walter Bright wrote:For once, I agree with you :-DYou're in denial, you meant "like always". ;ˆ]
Jan 11 2015
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