www.digitalmars.com         C & C++   DMDScript  

digitalmars.D - Talk on D at DORS/CLUC

reply RazvanN <razvan.nitu1305 gmail.com> writes:
Hello everyone,

Next week I'm going to have a talk on D at an open source 
conference in Zagrab [1].
This is a great opportunity to advertise D so I'm going to talk 
about D's strength's. However, the talk is only 30 minutes in 
length and there's a lot of things I could potentially touch on - 
templates, dynamic arrays, safety, C interoperability etc. What 
do you think that I should focus my talk on? Any suggestions or 
cool D snippets are welcome.

Regards,
RazvanN

[1] https://www.dorscluc.org/
May 10
next sibling parent reply Dukc <ajieskola gmail.com> writes:
RazvanN kirjoitti 10.5.2024 klo 11.43:
 What do you think that I should focus my talk on?
The fact that a language needn't have a built-in GC x-or be designed for system-level control. No mainstream language does both but D does. I'm bad at understanding marketing though so don't listen to me if you feel you know better.
May 10
parent reply RazvanN <razvan.nitu1305 gmail.com> writes:
On Friday, 10 May 2024 at 10:26:31 UTC, Dukc wrote:
 RazvanN kirjoitti 10.5.2024 klo 11.43:
 What do you think that I should focus my talk on?
The fact that a language needn't have a built-in GC x-or be designed for system-level control. No mainstream language does both but D does. I'm bad at understanding marketing though so don't listen to me if you feel you know better.
I want to structure my talk in 2 parts: - one "theoretical" part where I enumerate all the cool stuff D does (this is where I will mention the GC and no-GC part) - one practical part where I show snippets of D code which should prompt a "wow" reaction. I have the first part covered, I'm more interested in the second part if folks have any suggestions.
May 10
next sibling parent reply Atila Neves <atila.neves gmail.com> writes:
On Friday, 10 May 2024 at 10:59:37 UTC, RazvanN wrote:
 On Friday, 10 May 2024 at 10:26:31 UTC, Dukc wrote:
 RazvanN kirjoitti 10.5.2024 klo 11.43:
 What do you think that I should focus my talk on?
The fact that a language needn't have a built-in GC x-or be designed for system-level control. No mainstream language does both but D does. I'm bad at understanding marketing though so don't listen to me if you feel you know better.
I want to structure my talk in 2 parts: - one "theoretical" part where I enumerate all the cool stuff D does (this is where I will mention the GC and no-GC part) - one practical part where I show snippets of D code which should prompt a "wow" reaction. I have the first part covered, I'm more interested in the second part if folks have any suggestions.
I'm not sure I know what will wow people either. I thought my blog post showing how easy (2 lines) it is to call nanomsg from Python via D got all sorts of pushback, which wasn't what I was expecting. For me at least the wow factor in D is how much gets done with so little.
May 10
parent reply Martyn <martyn.developer googlemail.com> writes:
On Friday, 10 May 2024 at 13:05:28 UTC, Atila Neves wrote:
 ...

 I'm not sure I know what will wow people either. I thought my 
 blog post showing how easy (2 lines) it is to call nanomsg from 
 Python via D got all sorts of pushback, which wasn't what I was 
 expecting. For me at least the wow factor in D is how much gets 
 done with so little.
I really enjoyed this blog when it was released. It really demonstrates the power of D. I do think this is a great example of `wowing` but I guess it all depends on who is in the room. Anyway.. apologies for diverting the topic. I have used ZeroMQ for past projects. Loved it! However, I have not got round to using nanomsg. Have you used the later NNG? https://nng.nanomsg.org/ Be interesting to hear your thoughts (if you have any) - as you might be sticking with nanomsg for a reason. Cheers.
May 16
parent Atila Neves <atila.neves gmail.com> writes:
On Thursday, 16 May 2024 at 12:52:45 UTC, Martyn wrote:
 On Friday, 10 May 2024 at 13:05:28 UTC, Atila Neves wrote:
 [...]
I really enjoyed this blog when it was released. It really demonstrates the power of D. I do think this is a great example of `wowing` but I guess it all depends on who is in the room. Anyway.. apologies for diverting the topic. I have used ZeroMQ for past projects. Loved it! However, I have not got round to using nanomsg. Have you used the later NNG? https://nng.nanomsg.org/ Be interesting to hear your thoughts (if you have any) - as you might be sticking with nanomsg for a reason. Cheers.
I think we updated to nng but I don't know for sure. I haven't used it in a while though.
May 16
prev sibling parent reply JN <666total wp.pl> writes:
On Friday, 10 May 2024 at 10:59:37 UTC, RazvanN wrote:
 On Friday, 10 May 2024 at 10:26:31 UTC, Dukc wrote:
 RazvanN kirjoitti 10.5.2024 klo 11.43:
 What do you think that I should focus my talk on?
The fact that a language needn't have a built-in GC x-or be designed for system-level control. No mainstream language does both but D does. I'm bad at understanding marketing though so don't listen to me if you feel you know better.
I want to structure my talk in 2 parts: - one "theoretical" part where I enumerate all the cool stuff D does (this is where I will mention the GC and no-GC part) - one practical part where I show snippets of D code which should prompt a "wow" reaction. I have the first part covered, I'm more interested in the second part if folks have any suggestions.
I think this might have the opposite effects. What would wow people in the D community might have the opposite effect on the outsiders. For example, where you see GC and no-GC parts as cool stuff, for people outside of D it will look like a confused language with multiple identities, next question will be "does it still have two standard libraries?". Similarly templates. Outside of C++/D circles templates are not viewed as positively, because of potential slow compilation times, breaking autocomplete and infamous template errors spanning multiple screens (cough STL cough). Also, these days I think ecosystem matters more than the language itself. Just the fact that D actually has a standard package manager/build tool in form of dub is enough to wow some C/C++ programmers. Showing that bindings to many popular libraries are readily available is also a good thing to show.
May 13
parent Monkyyy <crazymonkyyy gmail.com> writes:
On Monday, 13 May 2024 at 20:08:29 UTC, JN wrote:
 Similarly templates. Outside of C++/D circles templates are not 
 viewed as positively, because of potential slow compilation 
 times, breaking autocomplete and infamous template errors 
 spanning multiple screens (cough STL cough).
Then good compile times with templates is an amazing feature?
May 14
prev sibling next sibling parent reply aberba <karabutaworld gmail.com> writes:
On Friday, 10 May 2024 at 08:43:14 UTC, RazvanN wrote:
 Hello everyone,

 Next week I'm going to have a talk on D at an open source 
 conference in Zagrab [1].
 This is a great opportunity to advertise D so I'm going to talk 
 about D's strength's. However, the talk is only 30 minutes in 
 length and there's a lot of things I could potentially touch on 
 - templates, dynamic arrays, safety, C interoperability etc. 
 What do you think that I should focus my talk on? Any 
 suggestions or cool D snippets are welcome.

 Regards,
 RazvanN

 [1] https://www.dorscluc.org/
A product sells more when you talk about it's impact or benefits to potential customer. We've been talking about the list of features, which we have more than any of the other languages making headlines, but that alone isn't a strong enough call to action. I personally would be more convinced by projects in D rather than JUST a list of features. Gtkd, vibe.d, severino, dub, dlib, dplug, bindbc-*, mir libraries, and the like. These are direct results of what D can and is capable of doing. Also projects that are as a result of D's interoperability with other languages. Selling D by the list of features and not by it's impact IMO isn't a good enough strategy.
May 10
parent rkompass <rkompass gmx.de> writes:
On Friday, 10 May 2024 at 13:23:01 UTC, aberba wrote:
 On Friday, 10 May 2024 at 08:43:14 UTC, RazvanN wrote:
 Hello everyone,

 Next week I'm going to have a talk on D at an open source 
 conference in Zagrab [1].
 This is a great opportunity to advertise D so I'm going to 
 talk about D's strength's. However, the talk is only 30 
 minutes in length and there's a lot of things I could 
 potentially touch on - templates, dynamic arrays, safety, C 
 interoperability etc. What do you think that I should focus my 
 talk on? Any suggestions or cool D snippets are welcome.
You could start by demonstrating a C interpreter, (which under the hood is a `alias cint="dmd -run"`, which you don't reveal yet). Then surprise the audience with associative arrays, working out of the box, and perhaps CTFE working on a file. Explain then that you are still in the same "interpreter" but in a slightly better language (D). Give more demonstrations of Ds features then reveal that the interpreter is in fact a very fast compiler. Perhaps then present the EBay table processing code for a commercial application using CTFE.
May 10
prev sibling next sibling parent Hipreme <msnmancini hotmail.com> writes:
On Friday, 10 May 2024 at 08:43:14 UTC, RazvanN wrote:
 Hello everyone,

 Next week I'm going to have a talk on D at an open source 
 conference in Zagrab [1].
 This is a great opportunity to advertise D so I'm going to talk 
 about D's strength's. However, the talk is only 30 minutes in 
 length and there's a lot of things I could potentially touch on 
 - templates, dynamic arrays, safety, C interoperability etc. 
 What do you think that I should focus my talk on? Any 
 suggestions or cool D snippets are welcome.

 Regards,
 RazvanN

 [1] https://www.dorscluc.org/
I have some cool features which is quite hard to see in other languages: ```d module hip.systems.input; import hip.jni.jni; import hip.jni.helper.jnicall; ///Setups an Android Package for HipremeEngine alias HipAndroidInput = javaGetPackage!("com.hipremeengine.app.HipInput"); alias HipAndroidRenderer = javaGetPackage!("com.hipremeengine.app.Hip_GLES30_Renderer"); JavaFunc!(HipAndroidInput) void onMotionEventActionMove(int pointerId, float x, float y) { HipEventQueue.post(0, HipEventQueue.EventType.touchMove, HipEventQueue.Touch(cast(ushort)pointerId, x,y)); } JavaFunc!(HipAndroidInput) void onMotionEventActionPointerDown(int pointerId, float x, float y) { HipEventQueue.post(0, HipEventQueue.EventType.touchDown, HipEventQueue.Touch(cast(ushort)pointerId, x,y)); } mixin javaGenerateModuleMethodsForPackage!(HipAndroidInput, hip.systems.input); ``` This code exposes functions on Java/Android, they iterate the current module, looking for ` JavaFunc` (I could have written ExternJava). They will generate based on the java package: ```d // file com/hipremeengine/app/HipInput.java public static class HipInput { public static native void onMotionEventActionMove(int pointerId, float x, float y); public static native void onMotionEventActionPointerDown(int pointerId, float x, float y); } ``` Not only that, but you can also pretty easily call Java functions from D: ```d alias HipAndroid = javaGetPackage!("com.hipremeengine.app.HipremeEngine"); int[2] wsize = HipAndroid.javaCall!(int[2], "getWindowSize"); AAssetManager* aaMgr = cast(AAssetManager*)HipAndroid.javaCall!(Object, "getAssetManager"); ``` Beyond that, I have also written code that auto translates to Lua and Objective-C. So D is quite flexible into that. The main 2 packages I know from dub that does that are: 1. arsd.jni 2. objc_meta
May 10
prev sibling next sibling parent monkyyy <crazymonkyyy gmail.com> writes:
On Friday, 10 May 2024 at 08:43:14 UTC, RazvanN wrote:
 Hello everyone,

 Next week I'm going to have a talk on D at an open source 
 conference in Zagrab [1].
 This is a great opportunity to advertise D so I'm going to talk 
 about D's strength's. However, the talk is only 30 minutes in 
 length and there's a lot of things I could potentially touch on 
 - templates, dynamic arrays, safety, C interoperability etc. 
 What do you think that I should focus my talk on? Any 
 suggestions or cool D snippets are welcome.

 Regards,
 RazvanN

 [1] https://www.dorscluc.org/
explaining this code ```d template toggle(bool defualt=false,alias discriminator=void, int i=__LINE__){ static bool __toggle=defualt; bool toggle(bool input){ if(input){ __toggle= ! __toggle; } return __toggle; } bool toggle(){ return __toggle; } } ```
May 10
prev sibling parent reply Walter Bright <newshound2 digitalmars.com> writes:
Here's one I like:

https://github.com/dlang/dmd/blob/master/compiler/src/dmd/backend/var.d#L188

This table used to be generated by a separate C program. The C program would 
build the table, and write a .c file with the initializer for the table.

The code now demonstrates a lambda that is executed at compile time to generate 
the table. There are several examples in the file.

1. there is no need for constexpr
2. the lambda code is not emitted to the executable

The cool thing is you've got the full power of D available to generate static 
tables.
May 11
parent reply RazvanN <razvan.nitu1305 gmail.com> writes:
On Sunday, 12 May 2024 at 01:47:51 UTC, Walter Bright wrote:
 Here's one I like:

 https://github.com/dlang/dmd/blob/master/compiler/src/dmd/backend/var.d#L188

 This table used to be generated by a separate C program. The C 
 program would build the table, and write a .c file with the 
 initializer for the table.

 The code now demonstrates a lambda that is executed at compile 
 time to generate the table. There are several examples in the 
 file.

 1. there is no need for constexpr
 2. the lambda code is not emitted to the executable

 The cool thing is you've got the full power of D available to 
 generate static tables.
Thanks everyone for your suggestions. I will how I can put everything together in a 30 min talk. I'll keep you updated on how it went! Regards, RazvanN
May 13
parent reply Martyn <martyn.developer googlemail.com> writes:
On Monday, 13 May 2024 at 09:10:58 UTC, RazvanN wrote:
 ...

 Thanks everyone for your suggestions. I will how I can put 
 everything together in a 30 min talk. I'll keep you updated on 
 how it went!

 Regards,
 RazvanN
Please do. I think templates is definitely an area to cover (and wow!)
May 16
parent reply RazvanN <razvan.nitu1305 gmail.com> writes:
On Thursday, 16 May 2024 at 12:51:06 UTC, Martyn wrote:
 On Monday, 13 May 2024 at 09:10:58 UTC, RazvanN wrote:
 ...

 Thanks everyone for your suggestions. I will how I can put 
 everything together in a 30 min talk. I'll keep you updated on 
 how it went!

 Regards,
 RazvanN
Please do. I think templates is definitely an area to cover (and wow!)
Hello all, I had the talk on Friday and I think it went pretty well. Looking back, I think that if you have the chance to have such talks it's definitely a good idea to do them because it really sparks some interest. I'm going to describe a bit how things went in the idea that this may help other people promoting D. Since the time was short I included only 3 code examples: - one small program that showcased nice things like dynamic arrays, UFCS, CTFE, local imports etc. - one small program that presented some template features like template constraints, is expressions, __traits(compiles), static if. The example used some DbI to reflect on some arrays and classes. - one small example of importC. All in all, it seemed that folks were pretty impressed with the language. UFCS and and __traits(compiles) are definitely brow raisers among the audience, however, the coolest moment that had the biggest impact factor was when I compiled and ran a C program using the D compiler - I asked the audience if someone noticed something weird and people were definitely impressed by this. Templates are quite cool and they do appeal the inner nerd, but the reality is that not so many people use templates. If you're not a library writer, chances are you'll stick to using normal functions. After my talk, some people that were using C++ came to talk to me. They're biggest problem was they were having buffer overflows which corrupted memory that were not caught by their linters. They liked the idea of automatic bounds checks and the fact that you can incrementally transition to D, however, they were wondering how safe is D when you are not using the GC. They also mentioned that they considered using Rust, however, it's pretty much an overkill for their use case. I told them that for their use case they can simply manually allocate memory and then create an array which contains the size information. The compiler will then check every access to the array for out of bounds indexes, however, they will still need to manage the memory manually. All in all, they seemed willing to try D, however, we cannot since if they will actually do it. In conclusion: - templates are impressive, however, it might be that audiences are not that fond of them - UFCS and CTFE are good concepts to start a presentation with - easy to understand and impressive - importC was the star of my show - GC is something that C++ people worry about when thinking about D. Hope this helps, RazvanN
May 20
next sibling parent reply Martyn <martyn.developer googlemail.com> writes:
On Monday, 20 May 2024 at 08:03:12 UTC, RazvanN wrote:
 ...
 ...
 ...

 In conclusion:
 - templates are impressive, however, it might be that audiences 
 are not that fond of them
 - UFCS and CTFE are good concepts to start a presentation with 
 - easy to understand and
 impressive
 - importC was the star of my show
 - GC is something that C++ people worry about when thinking 
 about D.

 Hope this helps,
 RazvanN
I appreciate the feedback. Sounds like a good talk with some positive feedback in the room! I think it is worth noting what people have to say and concerns + their background (ie C++) Also -- glad to see ImportC getting some love. It really is good!
May 20
parent reply Mike Shah <mshah.475 gmail.com> writes:
On Monday, 20 May 2024 at 12:36:29 UTC, Martyn wrote:
 On Monday, 20 May 2024 at 08:03:12 UTC, RazvanN wrote:
 ...
 ...
 ...

 In conclusion:
 - templates are impressive, however, it might be that 
 audiences are not that fond of them
 - UFCS and CTFE are good concepts to start a presentation with 
 - easy to understand and
 impressive
 - importC was the star of my show
 - GC is something that C++ people worry about when thinking 
 about D.

 Hope this helps,
 RazvanN
I appreciate the feedback. Sounds like a good talk with some positive feedback in the room! I think it is worth noting what people have to say and concerns + their background (ie C++) Also -- glad to see ImportC getting some love. It really is good!
Well done Razvan! I hope the talk will be posted. I agree giving talks is an excellent way to get the word out about D. I find a good number of folks have heard of D, but then when I poll few have tried it. ImportC and several other features most do not know about -- they are big selling features to try the language!
May 20
parent RazvanN <razvan.nitu1305 gmail.com> writes:
On Monday, 20 May 2024 at 12:44:55 UTC, Mike Shah wrote:
 On Monday, 20 May 2024 at 12:36:29 UTC, Martyn wrote:
 On Monday, 20 May 2024 at 08:03:12 UTC, RazvanN wrote:
 ...
 ...
 ...

 In conclusion:
 - templates are impressive, however, it might be that 
 audiences are not that fond of them
 - UFCS and CTFE are good concepts to start a presentation 
 with - easy to understand and
 impressive
 - importC was the star of my show
 - GC is something that C++ people worry about when thinking 
 about D.

 Hope this helps,
 RazvanN
I appreciate the feedback. Sounds like a good talk with some positive feedback in the room! I think it is worth noting what people have to say and concerns + their background (ie C++) Also -- glad to see ImportC getting some love. It really is good!
Well done Razvan! I hope the talk will be posted.
They posted the video for the entire day: https://www.youtube.com/watch?v=d95fFC0tqpQ&t=7277s&ab_channe =DORSCLUCconference (1:05:20 is when my talk starts) . Unfortunately, they only had hand-mics and at some point I start doing demos so I just close the microphone and don't use it anymore (I can be pretty loud) so that I can use both of my hands. For that reason you can't hear anything from that point - I just had not thought about the livestream and no one told me about it.
 I agree giving talks is an excellent way to get the word out 
 about D. I find a good number of folks have heard of D, but 
 then when I poll few have tried it. ImportC and several other 
 features most do not know about -- they are big selling 
 features to try the language!
I had the same experience. I want to take this chance to note that I watched your FOSDEM talk (very nice talk!) and picked this polling idea from it (thanks!). It's funny how even before watching your talk I had kind of the same layout in mind : a few things about myself, a few details about D and then just put a program out there and try to surprise people with some of D's features. I saw that you also used a lot of real life examples where D makes your life easier, however, I thought that those might be a bit confusing for newcomers, so I simply sticked with some small examples that are easily understandable. RazvanN
May 21
prev sibling parent reply Lance Bachmeier <no spam.net> writes:
On Monday, 20 May 2024 at 08:03:12 UTC, RazvanN wrote:

 Templates are quite cool and they do appeal the inner nerd, but 
 the reality is that not so many people use templates. If you're 
 not a library writer, chances are you'll stick to using normal 
 functions.
The complexity of templates is probably more important (though I agree with your point). Maybe after years of using the language they will have uses here and there, but templates are not a positive when showing off the language. Same for ranges.
 After my talk, some people that were using C++ came to talk to 
 me. They're biggest problem was they were having buffer 
 overflows which corrupted memory that were not caught by their 
 linters. They liked the idea of automatic bounds checks and the 
 fact that you can incrementally transition to D, however, they 
 were wondering how safe is D when you are not using the GC. 
 They also mentioned that they considered using Rust, however, 
 it's pretty much an overkill for their use case. I told them 
 that for their use case they can simply manually allocate 
 memory and then create an array which contains the size 
 information. The compiler will then check every access to the 
 array for out of bounds indexes, however, they will still need 
 to manage the memory manually. All in all, they seemed willing 
 to try D, however, we cannot since if they will actually do it.
D has a GC that is the source of many complaints, but it also has SafeRefCounted. Maybe I don't keep up with the C++ community, but I thought they were fans of RC, based on the repeated claims that you should seldom need to do manual memory management in C++. SafeRefCounted is part of Phobos so it's not like you're relying on a third-party package author to maintain it.
May 20
next sibling parent RazvanN <razvan.nitu1305 gmail.com> writes:
On Monday, 20 May 2024 at 15:43:46 UTC, Lance Bachmeier wrote:
 On Monday, 20 May 2024 at 08:03:12 UTC, RazvanN wrote:

 Templates are quite cool and they do appeal the inner nerd, 
 but the reality is that not so many people use templates. If 
 you're not a library writer, chances are you'll stick to using 
 normal functions.
The complexity of templates is probably more important (though I agree with your point). Maybe after years of using the language they will have uses here and there, but templates are not a positive when showing off the language. Same for ranges.
Actually, what D can do with templates impresses people (especially the __traits and template constraints), however, it's not something that actually solves the problems they have in other languages. As for ranges, I did not include any examples in my talk as I don't see them as a very big selling point.
May 21
prev sibling parent reply aberba <karabutaworld gmail.com> writes:
On Monday, 20 May 2024 at 15:43:46 UTC, Lance Bachmeier wrote:
 On Monday, 20 May 2024 at 08:03:12 UTC, RazvanN wrote:
 D has a GC that is the source of many complaints, ...
 community, but I thought they were fans of RC, based on the 
 repeated claims that you should seldom need to do manual memory 
 management in C++.
The chase after C++ devs for the past 20yrs hasn't yielded that much adoption by them so I'm not sure it's worth pressing primarily in that direction. Those who like D like myself do that Python devs than there are of hardline C++ devs
May 21
next sibling parent Lance Bachmeier <no spam.net> writes:
On Tuesday, 21 May 2024 at 09:14:57 UTC, aberba wrote:

 The chase after C++ devs for the past 20yrs hasn't yielded that 
 much adoption by them so I'm not sure it's worth pressing 
 primarily in that direction. Those who like D like myself do 

 and Python devs than there are of hardline C++ devs
The thing is, SafeRefCounted is already in Phobos, so it's not like additional effort would be expended going after that group. It provides reference counting and memory safety, and importantly IMO, works with memory managed by the GC.
May 21
prev sibling parent reply Jonathan M Davis <newsgroup.d jmdavisprog.com> writes:
On Tuesday, May 21, 2024 3:14:57 AM MDT aberba via Digitalmars-d wrote:
 On Monday, 20 May 2024 at 15:43:46 UTC, Lance Bachmeier wrote:
 On Monday, 20 May 2024 at 08:03:12 UTC, RazvanN wrote:

 D has a GC that is the source of many complaints, ...
 community, but I thought they were fans of RC, based on the
 repeated claims that you should seldom need to do manual memory
 management in C++.
The chase after C++ devs for the past 20yrs hasn't yielded that much adoption by them so I'm not sure it's worth pressing primarily in that direction. Those who like D like myself do that Python devs than there are of hardline C++ devs
A lot of the major contributors to D over the years have come from a C++ background, but we've historically attracted folks from all over the place. I don't know how valuable it is to try to attract a specific set of folks, though I'm terrible at evangalizing or marketing the language anyway. Plenty of folks I've dealt with over the years (including plenty of cowokers) know full-well that I like D, but I'm not sure that _any_ of them have decided to actually try it. I get the impression that a lot of the folks who end up using D long term are folks who were sufficiently unhappy with some aspect of what they were using before that they were willing to put up with D's shortcomings (be they perceived or actual), and they ultimately liked the benefits enough to stick around. But anyone looking for a pure win or who was already pretty happy with what they have generally doesn't stick around, if they give it a chance at all. And I don't know if there's much that we can do to fix that. For better or worse, in general, I just try to make D the best that I can and don't worry all that much about trying to convince anyone to use it, though we obviously need better marketing in general, since that's never been something that we've been good at. - Jonathan M Davis
May 21
parent aberba <karabutaworld gmail.com> writes:
On Tuesday, 21 May 2024 at 16:33:32 UTC, Jonathan M Davis wrote:
 On Tuesday, May 21, 2024 3:14:57 AM MDT aberba via 
 Digitalmars-d wrote:
 On Monday, 20 May 2024 at 15:43:46 UTC, Lance Bachmeier wrote:
 On Monday, 20 May 2024 at 08:03:12 UTC, RazvanN wrote:

 D has a GC that is the source of many complaints, ... 
 community, but I thought they were fans of RC, based on the 
 repeated claims that you should seldom need to do manual 
 memory management in C++.
The chase after C++ devs for the past 20yrs hasn't yielded that much adoption by them so I'm not sure it's worth pressing primarily in that direction. Those who like D like myself do and Python devs than there are of hardline C++ devs
A lot of the major contributors to D over the years have come from a C++ background, but we've historically attracted folks from all over the place.
I can see why C, C++,... folks might be the ones interested in compiler and language stuff.
 I don't know how valuable it is to try to attract a specific 
 set of folks, though I'm terrible at evangalizing or marketing 
 the language anyway. Plenty of folks I've dealt with over the 
 years (including plenty of cowokers) know full-well that I like 
 D, but I'm not sure that _any_ of them have decided to actually 
 try it.
As I mentioned somewhere, IMO a cool language alone isn't convincing enough. Results are what sell. D has got everything needed to deliver every results and it already has to an intent judging by the testimonies of devs using it in the companies as seen from the D blog posts. I wished we'd sell more of those.
 I get the impression that a lot of the folks who end up using D 
 long term are folks who were sufficiently unhappy with some 
 aspect of what they were using before that they were willing to 
 put up with D's shortcomings (be they perceived or actual), and 
 they ultimately liked the benefits enough to stick around. But 
 anyone looking for a pure win or who was already pretty happy 
 with what they have generally doesn't stick around, if they 
 give it a chance at all. And I don't know if there's much that 
 we can do to fix that. For better or worse, in general, I just 
 try to make D the best that I can and don't worry all that much 
 about trying to convince anyone to use it, though we obviously 
 need better marketing in general, since that's never been 
 something that we've been good at.

 - Jonathan M Davis
I think for those of us who don't necessarily care much about low-level language specifics (coming from GC languages), the hindrance will be the ecosystem of tools and libraries as we are "spoilt" by other language ecosystem. Although recently D has gotten far better. VSCode seems to be the most dominant code editor and it's fairly good. For areas such as game dev, data science, and web dev, I've seen the numbers of well maintained libraries increase. Most people who try D (including those I've recommended it to) agree the language looks good but that alone isn't enough, the question then become "what can I build with it?". So unless you're willing to build a lot from scratch, the options are limited outside the above mentioned (I could be wrong). At least that's my observation... I've only got experience in web dev and a little bit of Linux desktop GUI. Things are progressing nicely with D, I'm very confident the adoption is only going up from here. I'm so happy about the recent leadership momentum. Will be interesting to find out what folks in the community build with D. I miss those D annual surveys.
May 22