June 17, 2016
On 2016-06-17 00:30, Walter Bright wrote:

> Andrei is in charge of the library and has my full support.

We have to make it very clear, somewhere, exactly what requires Andrei's approval and what doesn't. No, I cannot do that because I don't know the requirements.

-- 
/Jacob Carlborg
June 17, 2016
On 6/17/2016 1:58 AM, Jacob Carlborg wrote:
> On 2016-06-17 00:30, Walter Bright wrote:
>
>> Andrei is in charge of the library and has my full support.
>
> We have to make it very clear, somewhere, exactly what requires Andrei's
> approval and what doesn't. No, I cannot do that because I don't know the
> requirements.
>

Certainly, adding new modules would.
June 17, 2016
On Friday, 17 June 2016 at 08:58:51 UTC, Jacob Carlborg wrote:
> On 2016-06-17 00:30, Walter Bright wrote:
>
>> Andrei is in charge of the library and has my full support.
>
> We have to make it very clear, somewhere, exactly what requires Andrei's approval and what doesn't. No, I cannot do that because I don't know the requirements.

What caught me off guard here isn't that Andrei had to approve it in some sense - it's that the judgment of everyone else who approved my design seemingly became irrelevant the moment that Andrei decided he could do better.

This implies that the only safe way to go about design a new module, is to collaborate closely with Andrei from the start.

June 17, 2016
On Friday, 17 June 2016 at 14:52:27 UTC, tsbockman wrote:
>
> What caught me off guard here isn't that Andrei had to approve it in some sense - it's that the judgment of everyone else who approved my design seemingly became irrelevant the moment that Andrei decided he could do better.

I hope you don't get too discouraged. Even if not in phobos, the project is still worth having.
June 17, 2016
On 6/17/2016 7:52 AM, tsbockman wrote:
> What caught me off guard here isn't that Andrei had to approve it in some sense
> - it's that the judgment of everyone else who approved my design seemingly
> became irrelevant the moment that Andrei decided he could do better.

History is full of examples of individuals who decide they can do better, against all conventional wisdom, and are eventually proven correct. Andrei has an enviable track record in the industry of having disruptive ideas that later became mainstream. He's also very well paid as a consultant to give advice to the programming teams of companies. His comments are worthy of serious consideration.


> This implies that the only safe way to go about design a new module, is to
> collaborate closely with Andrei from the start.

The goal is to have only the best in Phobos, even if the process of getting there is inefficient, frustrating, and slow. D has moved beyond the point where we can accept anything less.

A beneficial, leveraging side effect is improving the skills of the people doing the work by coaching, reviewing, and critiquing the work. Andrei's review of SafeInt has elements that apply to just about everything in Phobos - things we all need to get better at.

I'd like to see his review here morphed into a best practices checklist others can use when reviewing Phobos code.
June 17, 2016
What you said is true, but IMO you're missing the point.

IMO the current D Process is just backward. Having people working on stuff openly, with intend for phobos inclusion, for a lot of months and that putting it up for review clearly does not work.
And if you and/or Andrei at that point say "Na". That is just frustrating, no matter how good the reasons are.

So I propose that you and Andrei create a list of high level goals for the compiler as well as for phobos/druntime. Nothing abstract, specific stuff properly also design specifics. And attach explanations why those things should be done.

For example:

Stuff that needs to be in phobos:
* sync/async Database abstraction that is nogc
* Value Range Integer type
* ....

I think you get the idea about the list.
Than you write in big letters.
"To everybody that wants to contribute a modules to phobos look at the above list and pick you module. All other module ideas may be rejected for whatever reason by Andrei. If you have an idea for a module not on the list get the design approved by Andrei before you start coding to avoid frustration later."

I know, this is an open source project and you can't tell people what to do because you don't pay us any money. But you could tell us what you think is important to make D number one. At least then people know what the lay of the land is and don't have to guess. And by saying "yes" or "no" at the end of the development of new stuff, you're actually doing this already. Only at the wrong point in time, IMO.


Additionally, IMO at some point you two have to delegate/trust other people/lieutenants. You two simply don't have the time to do all the necessary reviewing to make the D Process scale. And you two make mistakes as well. core.checkedint and etc.c.odbc is just deadbeef. (Please nobody start a discussion about that here. Even if those two module are a success, last time I checked Walter and Andrei are human so they make mistakes. And Andrei actually said so at DConf as well.)


So an action list from my POV.
* Andrei, Walter create a specific task list and designs
* make this list obvious to find. github README (See comment above) !!!!
* disable the auto quote feature of the forum. This feature is just poisonous for the discussion culture of this forum. Everybody is just trying to disprove the other without actually trying to bring the discussion/D forward.
* something like https://github.com/facebook/mention-bot would be nice. It will properly also help finding lieutenants.

rant off

p.s. Warning: Parent post is not quoted. Ignore Explain Fit it for me
I f****** hate it.

June 17, 2016
On Friday, 17 June 2016 at 20:49:54 UTC, Walter Bright wrote:
> On 6/17/2016 7:52 AM, tsbockman wrote:
>> What caught me off guard here isn't that Andrei had to approve it in some sense
>> - it's that the judgment of everyone else who approved my design seemingly
>> became irrelevant the moment that Andrei decided he could do better.
>
> History is full of examples of individuals who decide they can do better, against all conventional wisdom, and are eventually proven correct.

That has nothing to do with my point: "better" is subjective, and I thought the judgment and goals of others would be given more weight.

> Andrei has an enviable track record in the industry of having disruptive ideas that later became mainstream. He's also very well paid as a consultant to give advice to the programming teams of companies. His comments are worthy of serious consideration.

I have a finite amount of time, energy, and motivation to work on this.

I might have considered his proposed expansion of the scope of the project if it had come earlier, when I was actively seeking input from people about what features were important to them. That connection did not happen, though.

Regardless, it is not clear to me that his requirements are actually compatible with mine; I don't really care how wonderful his ideas are if he's trying to solve a (subtly) different problem than I am. As far as I can tell, Andrei is perfectly willing to sacrifice my requirements to make room in his complexity "budget" for his own.

This is, of course, his prerogative as lead designer for Phobos, but it also kills any interest I have in working on the project for free.

June 17, 2016
On 6/17/2016 3:17 PM, Robert burner Schadek wrote:
> * Andrei, Walter create a specific task list and designs

I do all the time. The net result - nothing happens.

People do what they want to do when it's volunteer work. Presenting people with a list of things to work on does not result in work getting done on it.


> you two have to delegate/trust other people/lieutenants

We've done a lot of that. For example, Andrei is in charge of the library. Several people are empowered to pull stuff. Brad is in charge of the autotester and bugzilla. Martin handles releases. Mike is in charge of the blog. Dicebot recently took charge of DIPs. Etc. etc.

A common theme there, however, is they are self-selected. Assigning people to do things has never worked.

Realistically, however, the review of SafeInt was delegated. tsbockman received a lot of feedback, advice, and ideas from the community. If Andrei's comments are all wrong-headed, that's one thing. But if they are on target, then we as a community need to get better when we advise and comment on proposals. Including me.


> rant off

So please excuse my counter-rant :-)
June 17, 2016
On 6/17/2016 4:38 PM, tsbockman wrote:
> This is, of course, his prerogative as lead designer for Phobos, but it also
> kills any interest I have in working on the project for free.


You know, I do sympathize, even if I don't agree. One big motivation for D in the first place was the C++ community not being interested in my contributions. Ironically, they're adopting them one by one anyway :-)

If you're not interested in continuing with this, I suggest packaging it up and making it available via Dub. Sort of let the marketplace decide.
June 18, 2016
On Saturday, 18 June 2016 at 01:28:38 UTC, Walter Bright wrote:
> On 6/17/2016 4:38 PM, tsbockman wrote:
>> This is, of course, his prerogative as lead designer for Phobos, but it also
>> kills any interest I have in working on the project for free.
>
>
> You know, I do sympathize, even if I don't agree. One big motivation for D in the first place was the C++ community not being interested in my contributions. Ironically, they're adopting them one by one anyway :-)

Indeed, D has many excellent ideas. I hope that some day you'll consider allowing a breaking "D3" though, as the D language design also has a great deal of technical debt accumulated from the blitz of feature additions in D2.

If that debt can be payed off, I don't think that any of the currently popular languages could compete with it.

> If you're not interested in continuing with this, I suggest packaging it up and making it available via Dub. Sort of let the marketplace decide.

It's been on DUB since before this review started, and I plan to support it (including incorporating some of the feedback from this thread).