December 07, 2016
On Tuesday, 6 December 2016 at 22:23:25 UTC, bachmeier wrote:
> On Tuesday, 6 December 2016 at 22:13:54 UTC, bpr wrote:
>> Those programmers who are comfortable working in a GC-ed language will likely eschew D because D's GC is really not that great.
>
> So someone working with Ruby is not going to want to work with D because of GC performance?

Ruby programmers are probably not concerned with performance at all ever. It's a slow interpreted language with a GIL. But if you're on a Rails project, that's what you'll use.

If I really *want* to use a GC, say I'm writing a server and I believe that a well tuned GC will allow my server to stay alive much longer with less fragmentation, I'll probably skip D and pick Go or maybe (hmmm...) even Java because their GCs have had a lot of engineering effort.

> I wonder what percentage of Ruby programmers have thought about garbage collection ever.

Why would a Ruby or Python programmer unconcerned with performance want to switch to D? I'm sure there are some who would, but I'd imagine they're rare.


December 07, 2016
On Tuesday, 6 December 2016 at 22:47:34 UTC, Jonathan M Davis wrote:
> On Tuesday, December 06, 2016 22:13:54 bpr via Digitalmars-d-learn wrote:
>> On Tuesday, 6 December 2016 at 17:00:35 UTC, Jonathan M Davis
>>
>> wrote:
> Sure, there are folks who would prefer not to have to deal with the GC but throw out the runtime and std lib? You lose out on too much for it to be at all worth it for many folks. At that point, C++11/14/17 looks far more appealing, especially as it continues to improve.

It's a counterfactual at this point, but I would guess that if D had left out the GC in 2010 when D2 came out it would have been ahead of C++ in many ways and perhaps would have been able to peel off more C++ programmers and achieve the momentum that Rust appears to have now. Yes, it would be missing some features on account of omitting GC, but D2 -GC in 2010 is still much better than C++ 2011. As C++ absorbs D features, the case for D seems weaker.

> We get plenty of folks who aren't big C/C++ programmers who are interested in D. Yes, the majority seem to have a C++ background, but we also get folks from C#, python, ruby, etc.

It would be nice to see a breakdown. From where I sit, it appears that most of the interest in D is from C++ users, and it doesn't appear that D popularity is rising so much. Any data that belies that sad assessment?


December 07, 2016
On Wednesday, 7 December 2016 at 02:24:56 UTC, bpr wrote:
> If I really *want* to use a GC, say I'm writing a server and I believe that a well tuned GC will allow my server to stay alive much longer with less fragmentation, I'll probably skip D and pick Go or maybe (hmmm...) even Java because their GCs have had a lot of engineering effort.
>

Writing a server is quite narrow compared to the "programmers who are comfortable working in a GC-ed language" that I was responding to.

>> I wonder what percentage of Ruby programmers have thought about garbage collection ever.
>
> Why would a Ruby or Python programmer unconcerned with performance want to switch to D? I'm sure there are some who would, but I'd imagine they're rare.

Maybe some prefer D as a language? The same argument could be used against any language. Performance is far from the only reason to use D.
December 06, 2016
On Wednesday, December 07, 2016 02:38:50 bpr via Digitalmars-d-learn wrote:
> On Tuesday, 6 December 2016 at 22:47:34 UTC, Jonathan M Davis
> > We get plenty of folks who aren't big C/C++ programmers who are interested in D. Yes, the majority seem to have a C++ background, but we also get folks from C#, python, ruby, etc.
>
> It would be nice to see a breakdown. From where I sit, it appears that most of the interest in D is from C++ users, and it doesn't appear that D popularity is rising so much. Any data that belies that sad assessment?

As I understand it, the downloads have been increasing year over year. At least some years, Andrei has given some statistics on the state of D in his dconf talk. And per his stats, forum/newsgroup activity was going up too, though I get the impression that at least in the main newsgroup, it may have actually dropped off (whereas Learn seems like it's been growing). That's just my impression though. I'm sure github activity has gone up over time though.

It's my understanding that D's usage has continued to grow but that it isn't growing super fast, whereas languages such as Go and Rust do seem to have grown very quickly (probably at least in part due to the companies behind them). But other languages have taken a long time to catch on and still ended up being very successful with large user bases (e.g. that's what happened with python).

It's also hard to gauge how much D is really being used. The number of companies saying that they're using D seems to have increased, but there are who-knows how many folks using D who haven't said anything, and we really don't have much to go on besides the downloads, which only capture a portion of the D's users and even then only tells you how often dmd was downloaded, not how many people it was or if they're new users or whatnot. And downloading dmd from dlang.org is not the only way to get it.

There are definitely things that we can be and should be doing to improve D's traction (like better supporting @nogc in Phobos), but I don't think that we're doing badly. And often, the problem seems to be more of a PR one than anything technical (e.g. I think that we're finally pretty much beyond the issues caused by the confusion over Tango vs Phobos in D1, but it took a long time). And honestly, much as there are technical problems related to the GC, the far bigger problem seems to be the PR issues related to it. Sadly, the simple fact that we _have_ a GC has been a PR problem, regardless of the actual state of things. But regardless, we do seem to be gaining traction, even if it's not as quickly as we might like.

- Jonathan M Davis

December 07, 2016
On Tuesday, 6 December 2016 at 17:00:35 UTC, Jonathan M Davis wrote:
> So, while there are certainly folks who would prefer using D as a better C without druntime or Phobos, I think that you're seriously overestimating how many folks would be interested in that. Certainly, all of the C++ programmers that I've worked with professionally would have _zero_ interest in D as a better C.
>
> - Jonathan M Davis

Considering scientific/numerical applications, I do agree with Ilya: it is mandatory to have zero overhead and a straightforward/direct interoperability with C. I am impressed by the Mir lib results and I think "BetterC" is very attractive/important.

-- Vincent
December 07, 2016
On Wednesday, 7 December 2016 at 02:38:50 UTC, bpr wrote:
> It's a counterfactual at this point, but I would guess that if D had left out the GC in 2010 when D2 came out it would have been ahead of C++ in many ways and perhaps would have been able to peel off more C++ programmers

c++ programmers want c++. anything that is not c++ will be bashed to death. there is absolutely no reason to kill one of the key D features only to attract 2.5 c++ coders. actually, we already have That One C++ Programmer We Need onboard -- Andrei. ;-)
December 07, 2016
On Wednesday, 7 December 2016 at 07:27:53 UTC, ketmar wrote:
> On Wednesday, 7 December 2016 at 02:38:50 UTC, bpr wrote:
>> It's a counterfactual at this point, but I would guess that if D had left out the GC in 2010 when D2 came out it would have been ahead of C++ in many ways and perhaps would have been able to peel off more C++ programmers
>
> c++ programmers want c++. anything that is not c++ will be bashed to death. there is absolutely no reason to kill one of the key D features only to attract 2.5 c++ coders. actually, we already have That One C++ Programmer We Need onboard -- Andrei. ;-)

Let me put My 2 cents too: the goal is not only attracting 2.5 c++ coders, but to expand Dlang using. I like D, and I want to use it wide. And I believe Dlang adepts too. So we must make D to be usefull for small, metal-bare (important for me), embedded things to whatever... We can't do it now with GC.

I'am learning Ada lang now, and understood, that many usefull things Walter took from there.

I think, a good way to step up for Dlang is to be C++ like Ada variant, with possibility to work without GC. And with GC too, to make life easier, if someone wants.
IMO )
December 07, 2016
On Wednesday, 7 December 2016 at 09:45:39 UTC, Andrey wrote:
> I think, a good way to step up for Dlang is to be C++ like Ada variant, with possibility to work without GC.

you do know that you *can* use D without GC even now, do you?
December 07, 2016
On Wednesday, 7 December 2016 at 06:17:17 UTC, Picaud Vincent wrote:
> Considering scientific/numerical applications, I do agree with Ilya: it is mandatory to have zero overhead and a straightforward/direct interoperability with C. I am impressed by the Mir lib results and I think "BetterC" is very attractive/important.

As always, it depends on what you are doing. It is mandatory for some numerical applications. R, Matlab, Python, Mathematica, Gauss, and Julia are used all the time and they are not zero overhead. A fast way to kill their usage would be to force their users to think about those issues. What matters is the available libraries, first and foremost, and whatever is second most important, it is a distant second.

I write D code all the time for my research. I want to write correct code quickly. My time is too valuable to spend weeks writing code to cut the running time by a few minutes. That might be fun for some people, but it doesn't pay the bills. It's close enough to optimized C performance out of the box. But ultimately I need a tool that provides fast code, has libraries to do what I want, and allows me to write a correct program with a limited budget.

This is, of course, not universal, but zero overhead is not important for most of the numerical code that is written.
December 07, 2016
On Wednesday, 7 December 2016 at 11:48:32 UTC, bachmeier wrote:
> On Wednesday, 7 December 2016 at 06:17:17 UTC, Picaud Vincent wrote:
>> Considering scientific/numerical applications, I do agree with Ilya: it is mandatory to have zero overhead and a straightforward/direct interoperability with C. I am impressed by the Mir lib results and I think "BetterC" is very attractive/important.
>
> As always, it depends on what you are doing. It is mandatory for some numerical applications. R, Matlab, Python, Mathematica, Gauss, and Julia are used all the time and they are not zero overhead. A fast way to kill their usage would be to force their users to think about those issues. What matters is the available libraries, first and foremost, and whatever is second most important, it is a distant second.
>
> I write D code all the time for my research. I want to write correct code quickly. My time is too valuable to spend weeks writing code to cut the running time by a few minutes. That might be fun for some people, but it doesn't pay the bills. It's close enough to optimized C performance out of the box. But ultimately I need a tool that provides fast code, has libraries to do what I want, and allows me to write a correct program with a limited budget.
>
> This is, of course, not universal, but zero overhead is not important for most of the numerical code that is written.

R, Matlab, Python, Mathematica, Gauss, and Julia use C libs. --Ilya