January 19

On Friday, 19 January 2024 at 20:22:07 UTC, H. S. Teoh wrote:

>

D has always been closer to the closed development model where Walter has final say over what goes in and what doesn't. Not quite as closed as Lua (devs don't even grant access to the code repo, you only get the code snapshot at release time, they may or may not listen to community feedback and are not obligated to explain why), but still pretty near the closed end of the spectrum than your average open source project where the community's voice plays a bigger role.

This is a bit far. Development of the compiler and the libraries are very open. In as far as Phobos (and to a great extent druntime) is concerned, Walter is not even involved. 3rd party projects that are essential to D's ecosystem are not actually even owned by DLF, but are still considered critical infrastructure.

Adding features to the language is a different story. It is very easy to "just add this new thing" without thinking about the far-reaching consequences. That will lead to a disaster IMO. I'm actually glad that DIP1036 (not the most latest thing, which was a modified version) did not just make it in on the first round, and we worked through the debates and came to 1036e. I've had other features that I invented that got added which are less than ideal and hard to correct (inout for instance).

I think D has done pretty well with Walter at the helm, and I'm not convinced the alternative would have been better. I don't want to make excuses, because I know what it's like to be on the receiving end of dismissal (it's one of the reasons I really don't try to make any sweeping changes to Phobos any more), but I think the current leadership situation is fixable, and we are better off trying to fix it than seceding.

>

There are pros and cons whichever way you take. I have my opinion on where on the spectrum things are more ideal, but it's not possible to know for sure without actually doing it. It's not an easy issue.

I would expect most open source to be designed and modified with one person or a small team at the top dictating what is OK and what is not, with many others who are trusted contributors. D is not any different.

-Steve

January 19
On Friday, 19 January 2024 at 18:52:15 UTC, Walter Bright wrote:
> I get a constant stream of requests for attention. There's only so much I can respond to. Adding another source will likely just make me less productive.

In Linux world, the leads just review and merge. It is difficult to both be the main compiler developer and also the project lead who must review PRs.
January 28
On Friday, 19 January 2024 at 15:05:28 UTC, Walter Bright wrote:
> ..
> ImportC is not a language change, and so did not require a DIP. ... It had no impact on anyone who wasn't interested in it.
> ...
> ...
> ... A good proxy for how useful a feature is is the quantity of bugzilla issues submitted, and ImportC has had a lot of them! (317 submitted, 274 resolved)

A feature pulled in, essentially without any community involvement at the time, has resulted in 317+ bugs being summitted, and in addition, peoples time (perhaps mostly yours) spent resolving at least 274 of them.

And you're justification is.. "ImportC is not a language change, and so did not require a DIP."

As a developer in the team at my business, if you had done this, then you would have been promptly shown the door.

btw. None of the above is a comment about the usefulness of ImportC, or not. It's about the impact of change that was never presented to the community before it got pulled.

And those that pulled it are as much to blame.

Would such a thing still occur today? (that is a question I don't know the answer to).
January 27
On 1/27/2024 8:20 PM, FairEnough wrote:
> A feature pulled in, essentially without any community involvement at the time, has resulted in 317+ bugs being summitted, and in addition, peoples time (perhaps mostly yours) spent resolving at least 274 of them.

Those issues were about ImportC, not the rest of the compiler. As compilers go, this is a remarkably small number.

As for the time, it is mine to spend as I see fit. Nobody is paying me.


> And you're justification is.. "ImportC is not a language change, and so did not require a DIP."

Phobos additions don't require a DIP. Code gen improvements do not. Dub does not. C++ header file generation did not. Druntime changes do not. Build system does not. Infrastructure does not. Web site changes do not. And so on. Only language changes involve a DIP.


> As a developer in the team at my business, if you had done this, then you would have been promptly shown the door.

I've done bootleg projects at the companies I've worked at. They were all eventually mainlined into the official products.


> btw. None of the above is a comment about the usefulness of ImportC, or not.

It's fair to consider the result. ImportC elicited more or less no interest from anybody. I expected that. Over time, though, its detractors who have tried it have found it to be a game-changing time saver. ImportC is a huge win for D.

I've implemented a C compiler before, and knew ImportC was going to work. In fact, it worked much better than I anticipated.


> It's about the impact of change that was never presented to the community before it got pulled.

As a proposal, it was not. As a prototype, it was, it just was pulled shortly thereafter.


> And those that pulled it are as much to blame.

The fellow that pulled it, Atila, is the author of dpp, a program to import C headers to D. Atila understood the potential of ImportC, probably better than anyone else.


> Would such a thing still occur today? (that is a question I don't know the answer to).

I thought many times about doing an ImportC++, but ran away screaming. Maybe ImportCwithClasses :-)
January 28
On Sunday, 28 January 2024 at 05:29:54 UTC, Walter Bright wrote:
>
> I thought many times about doing an ImportC++, but ran away screaming. Maybe ImportCwithClasses :-)

One funny thing... C doesn't even need classes. It only needs UFCS.

January 28
On Sunday, 28 January 2024 at 04:20:12 UTC, FairEnough wrote:
> On Friday, 19 January 2024 at 15:05:28 UTC, Walter Bright wrote:
>> ..
>> ImportC is not a language change, and so did not require a DIP. ... It had no impact on anyone who wasn't interested in it.
>> ...
>> ...
>> ... A good proxy for how useful a feature is is the quantity of bugzilla issues submitted, and ImportC has had a lot of them! (317 submitted, 274 resolved)
>
> A feature pulled in, essentially without any community involvement at the time, has resulted in 317+ bugs being summitted, and in addition, peoples time (perhaps mostly yours) spent resolving at least 274 of them.
>
> And you're justification is.. "ImportC is not a language change, and so did not require a DIP."
>
> As a developer in the team at my business, if you had done this, then you would have been promptly shown the door.
>

But this where you get it wrong. This is not a business. The thing about D is that everyone works on what they want to work on. and its perfectly valid for Walter to work on whatever motivates him.

It took me a while to grasp this about the D eco-system, but its key to getting your expectations right. If you want a business like focused approach that managed top-down, this is not it.
January 28
On Sunday, 28 January 2024 at 11:23:45 UTC, Dibyendu Majumdar wrote:

> But this where you get it wrong. This is not a business. The thing about D is that everyone works on what they want to work on. and its perfectly valid for Walter to work on whatever motivates him.
>

I don't know if I am right but part of the motivation of import C seems to have been competition - Zig added the ability to compile C. It seems the idea of import C came up after and maybe as a consequence of this.

January 28

On Sunday, 28 January 2024 at 05:29:54 UTC, Walter Bright wrote:

>

On 1/27/2024 8:20 PM, FairEnough wrote:

>

A feature pulled in, essentially without any community involvement at the time, has resulted in 317+ bugs being summitted, and in addition, peoples time (perhaps mostly yours) spent resolving at least 274 of them.

Those issues were about ImportC, not the rest of the compiler. As compilers go, this is a remarkably small number.

As for the time, it is mine to spend as I see fit. Nobody is paying me.

>

And you're justification is.. "ImportC is not a language change, and so did not require a DIP."

Phobos additions don't require a DIP. Code gen improvements do not. Dub does not. C++ header file generation did not. Druntime changes do not. Build system does not. Infrastructure does not. Web site changes do not. And so on. Only language changes involve a DIP.

>

As a developer in the team at my business, if you had done this, then you would have been promptly shown the door.

I've done bootleg projects at the companies I've worked at. They were all eventually mainlined into the official products.

>

btw. None of the above is a comment about the usefulness of ImportC, or not.

It's fair to consider the result. ImportC elicited more or less no interest from anybody. I expected that. Over time, though, its detractors who have tried it have found it to be a game-changing time saver. ImportC is a huge win for D.

I've implemented a C compiler before, and knew ImportC was going to work. In fact, it worked much better than I anticipated.

>

It's about the impact of change that was never presented to the community before it got pulled.

As a proposal, it was not. As a prototype, it was, it just was pulled shortly thereafter.

>

And those that pulled it are as much to blame.

The fellow that pulled it, Atila, is the author of dpp, a program to import C headers to D. Atila understood the potential of ImportC, probably better than anyone else.

>

Would such a thing still occur today? (that is a question I don't know the answer to).

I thought many times about doing an ImportC++, but ran away screaming. Maybe ImportCwithClasses :-)

And i thank you a lot for ImportC, just last week it saved me a ton of time

I needed a voronoi library for some proc-gen, i could have wrote it myself but would take me too long, so instead went to C land, and simply just imported this library:

https://github.com/JCash/voronoi

#define JC_VORONOI_IMPLEMENTATION
#include "jc_voronoi.h"

And in D:

import jc_voronoi;

And voila, everything works out of the box

January 28
On 1/28/2024 4:41 AM, ryuukk_ wrote:
> And i thank you a lot for ImportC, just last week it saved me a ton of time
> 
> I needed a voronoi library for some proc-gen, i could have wrote it myself but would take me too long, so instead went to C land, and simply just imported this library:
> 
> https://github.com/JCash/voronoi
> 
> ```c
> #define JC_VORONOI_IMPLEMENTATION
> #include "jc_voronoi.h"
> ```
> 
> And in D:
> 
> ```d
> import jc_voronoi;
> ```
> 
> And voila, everything works out of the box

Your post makes me happy! Thank you for letting me know this.

January 28
On 1/28/2024 3:27 AM, Dibyendu Majumdar wrote:
> I don't know if I am right but part of the motivation of import C seems to have been competition - Zig added the ability to compile C. It seems the idea of import C came up after and maybe as a consequence of this.

I didn't know Zig did that until after I did ImportC.