March 19
On Wednesday, 19 March 2025 at 07:54:43 UTC, Meta wrote:
> On Wednesday, 19 March 2025 at 07:17:37 UTC, Manu wrote:
>> [...]
>
> Just from this video alone, I completely agree with you.
>
> To Walter: whatever technical reasons you might have for not accepting .h files, I recommend you watch the video for 10 minutes or so, starting at this timestamp:
>
> https://youtu.be/Gj5310KnUTQ?si=ObpRmsHQO96oCpO8&t=55m27s
>
> This shows you how close D is to really blowing people away with ImportC, and how much friction is introduced by not allowing .h files. From a marketing/first impressions perspective, it's a no brainer in my opinion.
>
> The "wow!" factor of being able to download a big, well-known C library like Raylib and simply do `import raylib` (plus linker flags) and start using it in your D code is huge.

I don’t think Walter was the bottleneck on the .h .c issue. The problem was that it was breaking code in the other compilers.

March 19

On Wednesday, 19 March 2025 at 07:54:43 UTC, Meta wrote:

>

To Walter: whatever technical reasons you might have for not accepting .h files, I recommend you watch the video for 10 minutes or so, starting at this timestamp:

You can't blame Walter for this one. He opened the bug report to enable it! It was others that killed it: https://github.com/dlang/dmd/issues/20184

March 19

On Wednesday, 19 March 2025 at 06:05:24 UTC, Manu wrote:

>

On Wed, 19 Mar 2025 at 11:36, Meta via Digitalmars-d < Why didn't his operator overloading experiment work?

struct S {
int x;
}

// non-member opBinary
S opBinary(string s : "+")(S lh, S rh) {
return S(lh.x + rh.x);
}

void main()
{
S a, b;
S s1 = a.opBinary!"+"(b); // <- UFCS works, as expected
S s2 = a + b; // ERROR: doesn't work! why not? the rewrite should work
via UFCS as above...
}

I can't imagine any good reason his experiment should have failed. I would want this too when extern to a C lib; it hasn't come up for me before, but if it did, I would log a bug instantly.

operator overloads must be member functions.

I think this fits into Walter's vision that you should not be able to abuse operator overloads to build your own semantics with already-defined types.

e.g. you shouldn't be able to define a + b to be something other than what a or b intended.

This already is allowed via UFCS, I guess Walter thinks operator overloads are more intimate for the types.

Take note that UFCS did not exist for D1 (except for arrays), so this vision was more consistent back then.

I don't know if this is one of those "will never happen" stances, or "maybe I can be convinced" stances.

-Steve

March 19

On Wednesday, 19 March 2025 at 11:32:01 UTC, Lance Bachmeier wrote:

>

On Wednesday, 19 March 2025 at 07:54:43 UTC, Meta wrote:

>

To Walter: whatever technical reasons you might have for not accepting .h files, I recommend you watch the video for 10 minutes or so, starting at this timestamp:

You can't blame Walter for this one. He opened the bug report to enable it! It was others that killed it: https://github.com/dlang/dmd/issues/20184

This is the first time I'm seeing Walter's proposal to use -revert=hfiles. He's absolutely right on that.

March 19
On Wednesday, 19 March 2025 at 02:29:00 UTC, Jonathan M Davis wrote:
> On Tuesday, March 18, 2025 8:18:13 PM MDT Meta via Digitalmars-d wrote:
>> "This language is garbage collected, and they're fucking ashamed of that!"
>>
>> This guy is surprisingly perceptive and 100% accurate with his cutting observations hahaha.
>
> Plenty of us aren't (in fact, personally, I'd never have gotten into D if it didn't have a GC), but it certainly comes across that way a lot of the time because of attempts to make the folks happy who don't want the GC. IMHO, while being able to do stuff without using the GC is great, we've harmed ourselves by continually trying to make C/C++ people who hate the GC happy with D. And we keep getting into arguments about how to do stuff because there's a divide between those folks who are happy that D has a GC and those who don't want anything to do with the GC. The result is kind of schizophrenic.
>
> - Jonathan M Davis

Same here, hence why I hang around D, use C# and Java professionally, Go occasionally even if not freely, and love the work being done in Swift, Chapel, Linear Haskell, OCaml effects, Idris, Dafny, FStar....

Alongside all those folks that aren't asking for forgiveness selling selling bare metal managed IoT platforms.

What D has missed versus those other ecosystems, is drawing the line that if that isn't what someone is looking for in a language, they can gladly look elsewhere, thus the schizophrenic outcome.
March 19
Wed, 19 Mar 2025 at 21:25, jmh530 via Digitalmars-d < digitalmars-d@puremagic.com> wrote:

> On Wednesday, 19 March 2025 at 07:54:43 UTC, Meta wrote:
> > On Wednesday, 19 March 2025 at 07:17:37 UTC, Manu wrote:
> >> [...]
> >
> > Just from this video alone, I completely agree with you.
> >
> > To Walter: whatever technical reasons you might have for not accepting .h files, I recommend you watch the video for 10 minutes or so, starting at this timestamp:
> >
> > https://youtu.be/Gj5310KnUTQ?si=ObpRmsHQO96oCpO8&t=55m27s
> >
> > This shows you how close D is to really blowing people away with ImportC, and how much friction is introduced by not allowing .h files. From a marketing/first impressions perspective, it's a no brainer in my opinion.
> >
> > The "wow!" factor of being able to download a big, well-known C library like Raylib and simply do `import raylib` (plus linker flags) and start using it in your D code is huge.
>
> I don’t think Walter was the bottleneck on the .h .c issue. The problem was that it was breaking code in the other compilers.
>

How so? I don't remember anything on that matter.


March 19
On Wed, 19 Mar 2025 at 21:36, Lance Bachmeier via Digitalmars-d < digitalmars-d@puremagic.com> wrote:

> On Wednesday, 19 March 2025 at 07:54:43 UTC, Meta wrote:
>
> > To Walter: whatever technical reasons you might have for not accepting .h files, I recommend you watch the video for 10 minutes or so, starting at this timestamp:
>
> You can't blame Walter for this one. He opened the bug report to enable it! It was others that killed it: https://github.com/dlang/dmd/issues/20184
>

Sorry Walter, I apologise.
I just recall him giving detailed usage explanations including to make a
1-line .c file as if that was a cool and intended design... and this was
always in response to complaints that it didn't import .h files.


March 19
On Wednesday, 19 March 2025 at 12:56:04 UTC, Paulo Pinto wrote:
> What D has missed versus those other ecosystems, is drawing the line that if that isn't what someone is looking for in a language, they can gladly look elsewhere, thus the schizophrenic outcome.

Disagree, D is the a language that "doesn't get in the way" precisely because it gives a lot of choice to users.

Tsoding being able to work roughly like he's accustomed in C with a lot of familiarity, implementing his favourite pattern then modifying the compiler in less than 2 hours, is precisely because D isn't very prescriptive.

Yes there are two ways to do a lot of things (polymorphism, errors, aggregates, memory management) but this is precisely the point no?
March 19

On Wednesday, 19 March 2025 at 11:37:21 UTC, Steven Schveighoffer wrote:

>

e.g. you shouldn't be able to define a + b to be something other than what a or b intended.

My first thought was, why would anyone do such an evil thing. Then I realized how tempting it would be to circumvent integer promotion rules with operator overloading…

“With that power I should have power too great and terrible. And over me the Ring would gain a power still greater and more deadly.”

March 19
On Wednesday, 19 March 2025 at 13:18:57 UTC, Guillaume Piolat wrote:
> On Wednesday, 19 March 2025 at 12:56:04 UTC, Paulo Pinto wrote:
>> What D has missed versus those other ecosystems, is drawing the line that if that isn't what someone is looking for in a language, they can gladly look elsewhere, thus the schizophrenic outcome.
>
> Disagree, D is the a language that "doesn't get in the way" precisely because it gives a lot of choice to users.
>
> Tsoding being able to work roughly like he's accustomed in C with a lot of familiarity, implementing his favourite pattern then modifying the compiler in less than 2 hours, is precisely because D isn't very prescriptive.
>
> Yes there are two ways to do a lot of things (polymorphism, errors, aggregates, memory management) but this is precisely the point no?

How helpful has that been regarding adoption, versus the other ecosystems that do draw the line?