December 13, 2012
On Thursday, 13 December 2012 at 21:37:07 UTC, Walter Bright wrote:
> On 12/13/2012 12:46 PM, Jacob Carlborg wrote:
>> On 2012-12-13 18:27, Iain Buclaw wrote:
>>
>>> I am confused at this commit also.
>>
>> Walter argues that people are already using it so it can't just be removed. I
>> say, they're using an unreleased version of DMD, this is to be expected.
>>
>
> They have a large code base, and are using it heavily.

If they used a development compiler to write their code, they should be able to continue doing that. This feature needs testing before being rock solid and good to release.

Please, lets not release something not thoroughly tested when we are in the middle of the new development process discussion, we are trying to avoid exactly this kind of thing. Even if the feature is not introducing backwards incompatible changes, this will cause problems when we discover, in the future, that we made some bad decision and won't be able to change it anymore.
December 13, 2012
On 12/13/2012 1:44 PM, deadalnix wrote:
> You are engaging the whole community into something you dropped here by surprise
> and then claiming that some people uses. We don't even know who they are ! How
> can we support your point ?

It's Remedy Games. It's a big deal for them, and their use of D is a big deal for us, big enough that we can bend our procedure for them. They were also under severe time pressure. They began using UDAs the same day I implemented them. Remedy could very well be the tipping point for D, and I'm not going to allow them to fail.

It's also not a conflict of interest - what they want from D is really what we all want from it.

I understand that some of you may be frustrated by my giving their needs priority, but I hope that the end result will be better for all of us than if I didn't, and that you'll indulge me with this.
December 14, 2012
On 12/13/12 6:02 PM, Denis Koroskin wrote:
> On Thu, 13 Dec 2012 13:37:07 -0800, Walter Bright
> <newshound2@digitalmars.com> wrote:
>
>> On 12/13/2012 12:46 PM, Jacob Carlborg wrote:
>>> On 2012-12-13 18:27, Iain Buclaw wrote:
>>>
>>>> I am confused at this commit also.
>>>
>>> Walter argues that people are already using it so it can't just be
>>> removed. I
>>> say, they're using an unreleased version of DMD, this is to be expected.
>>>
>>
>> They have a large code base, and are using it heavily.
>
>
> Why must the rest of the world suffer just because someone decided to
> use an experimental feature?

Just talked to Walter and I think it's safe to drop this, although I clearly agree with the principle.

We have a strategic potential user who could make a large difference in terms of corporate D adoption. We've been advised to not divulge much information so far because they only want to announce after they've committed and in a specific setting.

Clearly that shouldn't mean the community's views and needs should be neglected! However, given our commitment to better process in the future, we hope to get agreement on letting this one rushed feature be.

I count on your understanding.


Thanks,

Andrei
December 14, 2012
On Thursday, 13 December 2012 at 23:47:56 UTC, Walter Bright wrote:
> On 12/13/2012 1:44 PM, deadalnix wrote:
>> You are engaging the whole community into something you dropped here by surprise
>> and then claiming that some people uses. We don't even know who they are ! How
>> can we support your point ?
>
> It's Remedy Games. It's a big deal for them, and their use of D is a big deal for us, big enough that we can bend our procedure for them. They were also under severe time pressure. They began using UDAs the same day I implemented them. Remedy could very well be the tipping point for D, and I'm not going to allow them to fail.
>
> It's also not a conflict of interest - what they want from D is really what we all want from it.
>
> I understand that some of you may be frustrated by my giving their needs priority, but I hope that the end result will be better for all of us than if I didn't, and that you'll indulge me with this.

Maybe this is a special occasion.

To have such a big enterprise starting to use D, maybe there are more pros than cons.
December 14, 2012
On Thursday, 13 December 2012 at 23:47:56 UTC, Walter Bright wrote:
> It's Remedy Games. It's a big deal for them, and their use of D is a big deal for us, big enough that we can bend our procedure for them. They were also under severe time pressure. They began using UDAs the same day I implemented them. Remedy could very well be the tipping point for D, and I'm not going to allow them to fail.
>
> It's also not a conflict of interest - what they want from D is really what we all want from it.
>
> I understand that some of you may be frustrated by my giving their needs priority, but I hope that the end result will be better for all of us than if I didn't, and that you'll indulge me with this.

You have to understand that this isn't their need that is important here. They need stuff that we mostly all need, so I tend to agree. The fact is that you unilaterally decide to give that priority, when we are not even aware of them or of their needs. And that is the problem.

I understand that this game is a big deal for D and I'm all for supporting that effort. But, it can't be done against the community, or you'll alienate everybody here.

We all here are trying to support D in different ways, but if we are not aware of the goals, it simply will not work. You will ends up with a fork continuing that way, and I think phobos vs Tango for D1 was already enough.

Isn't it preferable to help them to migrate to the new syntax rather than bringing everybody in the same boat ? The feature hasn't been released, so I'm pretty sure most D actor don't have a lot of them in their codebase, which make the support into the transition easy.

Introducing new deprecated feature into a release seems completely backward to me, and reading other comment, it seems that I'm not the only one. We should consider other solutions before sticking to that one. And you have to work with D community on that one, or you'll loose it.
December 14, 2012
On Thursday, 13 December 2012 at 23:47:56 UTC, Walter Bright wrote:
> They began using UDAs the same day I implemented them.

I intend to start using them the day 2.061 comes out... the UDA feature is going to be incredibly useful for me too, and the implementation you've made is substantially identical to what I've asked for and discussed here in the past, so I expect it will work very well.
December 14, 2012
On Thursday, 13 December 2012 at 23:47:56 UTC, Walter Bright wrote:
> I understand that some of you may be frustrated by my giving their needs priority, […]

It's *not* your choice of priorities which strikes me as odd, it's that the situations seems like you made an objectively bad technical decision for no good reason, and refuse to back off after other people have made you aware of the consequences.

In order to make your reasoning easier to understand for other people, could you maybe answer the following questions, setting aside all the other previously mentioned points (supporting an unreleased version, etc.) for the moment?

1. How much work would it be for the guys at Remedy Games to convert their codebase from [] to @()?

2. What is your plan moving forward, i.e. how to you intend to handle deprecation/removal of the feature?

3. Why is the message you introduced a warning instead of a normal deprecation error?

———

For 1., I would guess at most something like half an hour for a large codebase where the feature is used pervasively (you just keep editing/compiling until there are no more syntax errors), which is why I can't quite understand the fuzz you are making about keeping the feature. And even if they cannot switch right now, as the Remedy guys are obviously willing to use experimental compiler versions, can't they just use a patched version until they have made the switch?

I'm pretty much in the dark about 2. and 3., but let me note that the questions don't even arise if we just remove the syntax and call it a day.

Let me also repeat the most important point: If we release 2.061 like this, DMD will silently accept the old syntax, so your decision will actually lead to *more* breakage when the feature is removed in the future.

David
December 14, 2012
On 12/13/2012 4:05 PM, deadalnix wrote:
> You have to understand that this isn't their need that is important here. They
> need stuff that we mostly all need, so I tend to agree. The fact is that you
> unilaterally decide to give that priority, when we are not even aware of them or
> of their needs. And that is the problem.

Remedy only recently allowed me to talk about it.


> Isn't it preferable to help them to migrate to the new syntax rather than
> bringing everybody in the same boat ? The feature hasn't been released, so I'm
> pretty sure most D actor don't have a lot of them in their codebase, which make
> the support into the transition easy.
>
> Introducing new deprecated feature into a release seems completely backward to
> me, and reading other comment, it seems that I'm not the only one. We should
> consider other solutions before sticking to that one. And you have to work with
> D community on that one, or you'll loose it.

It was the D community that selected the @(attribute) syntax, and the overall design was based on extensive public discussion threads here about it.

December 14, 2012
On 12/13/2012 4:17 PM, David Nadlinger wrote:
> 1. How much work would it be for the guys at Remedy Games to convert their
> codebase from [] to @()?

I don't know. All I know is it's a lot of code.


> 2. What is your plan moving forward, i.e. how to you intend to handle
> deprecation/removal of the feature?

Warning, then deprecation, then removal. The usual.


> 3. Why is the message you introduced a warning instead of a normal deprecation
> error?

Because skipping the warning phase has historically been too abrupt for people.


> For 1., I would guess at most something like half an hour for a large codebase
> where the feature is used pervasively (you just keep editing/compiling until
> there are no more syntax errors), which is why I can't quite understand the fuzz
> you are making about keeping the feature. And even if they cannot switch right
> now, as the Remedy guys are obviously willing to use experimental compiler
> versions, can't they just use a patched version until they have made the switch?

Like any major user of a language, they want confidence in our full support of them. Asking them to use a patched or branch version of the compiler does not inspire confidence.


> Let me also repeat the most important point: If we release 2.061 like this, DMD
> will silently accept the old syntax, so your decision will actually lead to
> *more* breakage when the feature is removed in the future.

The [ ] syntax was never documented and won't be, so I doubt there'll be any new use of it, nor does it interfere with anything else.


What I'm doing is hardly unique in business history. When Boeing designed the 707, they showed the prototype to Pan Am, their biggest potential customer. Pan Am wanted a slightly wider fuselage. At enormous expense, Boeing threw out their tooling and built all new tooling and a new design, all just to make the sale to Pan Am. It paid off enormously for Boeing, because with Pan Am buying 707s, the other airlines all couldn't wait to buy them, too.

When Westinghouse had AC and Edison had DC, they competed for the Niagra power project. Both knew that would be the lynchpin of their industry, and both did whatever it took to get that design win. Westinghouse got the contract, and that's why our electrical grid is 60 Hz AC.

Ok, we're not Boeing or Westinghouse. But we have an opportunity to go big time, and I'm not going to let that get away from us.
December 14, 2012
On Friday, 14 December 2012 at 00:42:58 UTC, Walter Bright wrote:
>> For 1., I would guess at most something like half an hour for a large codebase
>> where the feature is used pervasively (you just keep editing/compiling until
>> there are no more syntax errors), which is why I can't quite understand the fuzz
>> you are making about keeping the feature. And even if they cannot switch right
>> now, as the Remedy guys are obviously willing to use experimental compiler
>> versions, can't they just use a patched version until they have made the switch?
>
> Like any major user of a language, they want confidence in our full support of them. Asking them to use a patched or branch version of the compiler does not inspire confidence.

This is WHAT THEY ARE DOING ALREADY.