Jump to page: 1 2
Thread overview
Clarification on D.
Mar 08, 2017
aberba
Mar 08, 2017
deadalnix
Mar 08, 2017
XavierAP
Mar 09, 2017
aberba
Mar 09, 2017
XavierAP
Mar 09, 2017
thedeemon
Mar 09, 2017
Paulo Pinto
Mar 09, 2017
bachmeier
Mar 09, 2017
Paulo Pinto
Mar 09, 2017
Guillaume Piolat
Mar 09, 2017
Guillaume Piolat
Mar 09, 2017
Guillaume Piolat
Mar 09, 2017
dewitt
Mar 09, 2017
bachmeier
March 08, 2017
I don't really have much experience with large code base, so spare me.

From a technical and experience point of view (those with experience in large D code-base), how is only D's GC & optional MMM a significant production-use blocker?

 (To make my problem clear, how is D's current state not going to allow / make it so difficult for developers (who know what they are doing) to write say Photoshop-scale software: excluding those *so* realtime use cases?)

Note: I understand that D is never going without critics: perfection is impossible. And, in my line of work, I highly prefer the safety of GC compared to MMM... so I don't see myself worried about GC pauses.

I hope my question makes sense.
March 08, 2017
On Wednesday, 8 March 2017 at 20:00:54 UTC, aberba wrote:
> I don't really have much experience with large code base, so spare me.
>
> From a technical and experience point of view (those with experience in large D code-base), how is only D's GC & optional MMM a significant production-use blocker?
>
>  (To make my problem clear, how is D's current state not going to allow / make it so difficult for developers (who know what they are doing) to write say Photoshop-scale software: excluding those *so* realtime use cases?)
>
> Note: I understand that D is never going without critics: perfection is impossible. And, in my line of work, I highly prefer the safety of GC compared to MMM... so I don't see myself worried about GC pauses.
>
> I hope my question makes sense.

D's GC doesn't have great performances. However it works great and generally you don't depend as much on the GC as you would in other languages. If you don't have real time constraints, you should be fine.

March 08, 2017
On Wednesday, 8 March 2017 at 20:00:54 UTC, aberba wrote:
>
>  (To make my problem clear, how is D's current state not going to allow / make it so difficult for developers (who know what they are doing) to write say Photoshop-scale software:

This is probably a common question, and it would be easy to answer by pointing to an actually existing piece of software.

D needs for publicity a "killer app" [1] and this would be at the same time a driver to fully develop the necessary library modules (GUI, 3D graphics, whatever).

What is the currently most impressive application made in D?


[1] https://en.wikipedia.org/wiki/Killer_application
March 09, 2017
On Wednesday, 8 March 2017 at 22:13:26 UTC, XavierAP wrote:
> On Wednesday, 8 March 2017 at 20:00:54 UTC, aberba wrote:
>>
>>  (To make my problem clear, how is D's current state not going to allow / make it so difficult for developers (who know what they are doing) to write say Photoshop-scale software:
>
> This is probably a common question, and it would be easy to answer by pointing to an actually existing piece of software.
>
> D needs for publicity a "killer app" [1] and this would be at the same time a driver to fully develop the necessary library modules (GUI, 3D graphics, whatever).
>
> What is the currently most impressive application made in D?
>
>
> [1] https://en.wikipedia.org/wiki/Killer_application

So technically and from experience, the current state of D is not the primary issue?
March 09, 2017
On Thursday, 9 March 2017 at 07:24:12 UTC, aberba wrote:
> So technically and from experience, the current state of D is not the primary issue?

I don't have enough experience with D yet, hopefully someone else can tell you better. But my two cents.

"Current state" is a very general thing. Going back to your original post, I would not really think memory management performance to be an issue at all (in the hands or a competent programmer who avoids 'new' inside loops etc); specially for the kind of software you have in mind, or even for the most demanding real-time applications, where D provides some possibilities -- maybe not as idiomatic as the GC 'new', but much better than getting void pointers from malloc().

Even in C# for example one's able to make things like this,[1] granted it's not quite Photoshop but quite nice; and there must be more impressive examples. So I don't think application developers should worry so much about GC pauses of death.

Also regarding the "current state", another issue is the availability of libraries that you can use in your project. Of course D can't yet compare to C++, Java, Python, or .NET in this regard, even though there are lots of nice things around (plus you can call C and C++ and the bindings are often already available[2]). However I think that providing the demand from a killer app project could get a lot of support from the existing community in completing useful library projects.

I get the impression that most people in the D community are computer scientists or engineers who use it for backends, or more often for pet weekend projects.[3] At work they are constrained to work in another, more commercially successful language. Just like Andrei at Facebook.


[1] https://en.wikipedia.org/wiki/Paint.NET
[2] https://github.com/filcuc/dqml
[3] http://code.dlang.org
March 09, 2017
On Thursday, 9 March 2017 at 08:57:39 UTC, XavierAP wrote:
> Just like Andrei at Facebook.

Just a FYI, Andrei *used* to work at Facebook.

https://www.reddit.com/r/programming/comments/3ioy9b/andrei_alexandrescu_c_guru_leaves_facebook_to/
March 09, 2017
On Wednesday, 8 March 2017 at 20:00:54 UTC, aberba wrote:
> From a technical and experience point of view (those with experience in large D code-base), how is only D's GC & optional MMM a significant production-use blocker?

This is mostly a psychological effect of C++ folks having aversion to any GC.

>  (To make my problem clear, how is D's current state not going to allow / make it so difficult for developers (who know what they are doing) to write say Photoshop-scale software: excluding those *so* realtime use cases?)

I don't think there's really a problem there. Although not quite Photoshop-scale, but these video and photo processing apps were made in D without any problems:
http://www.infognition.com/VideoEnhancer/
http://www.infognition.com/blogsort/

(and they aren't even @nogc)
March 09, 2017
On Thursday, 9 March 2017 at 11:52:42 UTC, thedeemon wrote:
> On Wednesday, 8 March 2017 at 20:00:54 UTC, aberba wrote:
>> From a technical and experience point of view (those with experience in large D code-base), how is only D's GC & optional MMM a significant production-use blocker?
>
> This is mostly a psychological effect of C++ folks having aversion to any GC.
>

You should watch last year's CppCon 2016 talk by Herb Sutter, “Leak-Freedom in C++... By Default.”

https://www.youtube.com/watch?v=JfmTagWcqoE

He goes the extra mile to avoid saying the GC word, until he fully explains what his library solution for "collecting resources" is doing, with the sole purpose to avoid loosing the crowd's attention.


March 09, 2017
On Wednesday, 8 March 2017 at 20:00:54 UTC, aberba wrote:
>  (To make my problem clear, how is D's current state not going to allow / make it so difficult for developers (who know what they are doing) to write say Photoshop-scale software: excluding those *so* realtime use cases?)

Well, I don't think there is such problem. I make medium-size real-time programs in D (example: https://www.auburnsounds.com/products/Panagement.html) and they don't require much more attention to detail than similar programs in C++. They require understanding though.

The real problem is perception. Our competition uses persuasion techniques like moral high-ground, word-thinking and plain marketing. While the D community tries to address technical problems.

For example in D target market, the word "GC" is associated with a bad "weight" (and I tried to change perception with articles but it doesn't change anything) so _by association_ D inherits this bad weight, whatever the rational response could be.

The other thing you'll hear about when you are doing D is that D is not *new* enough, so it couldn't be any good. Else swathes of people would have adopted it, right?

Marketing works this way because we tend to rate each concept positively or negatively, and our intuitive brain is really good with effortless weighted sums.

is-good("D") = Weight0 * is-good("GC") + Weight1 * is-good(watever-it-makes-me-think-of) + ...


The competition is clever enough to emphasize that D is 14 years old and has a GC, so they don't even try it.

March 09, 2017
On Thursday, 9 March 2017 at 12:27:30 UTC, Guillaume Piolat wrote:
> The competition is clever enough to emphasize that D is 14 years old and has a GC, so they don't even try it.

The competition doesn't smack talk D, I think. If they mention D they tend to do so in  a friendly way. It's not like  D is threat to them anyway.

Past or current D users might complain though.


« First   ‹ Prev
1 2