May 13
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 14
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 16
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
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
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 20
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
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
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

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 21
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_channel=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