February 10, 2014
On Monday, 10 February 2014 at 08:58:29 UTC, Manu wrote:
> If we wanted to spend that time+manpower (read, money & overtime/sanity) on
> bullshit like that, we have no reason to adopt D; we already have C/C++,
> and we already have decades of experience mitigating that nightmare.
> The point is, we are REALLY sick of it. Why would we sign up to replace it
> with more of the same thing.

What I meant: you can't get a language that performs at its best without doing your homework. Ideal performance requires time and money, no matter the tools. This doesn't mean I expect you to do the same amount of work you have to do in C++.
Perhaps I expressed myself in a bad way, so here is a second try at that: I expect only simpler games to run at ideal speed without efforts. "Simple" here doesn't mean "generic 2D platformer", it should be interpreted as "not cutting edge". If you really need to squeeze every bit of performance, you can't only rely on automation.
February 10, 2014
On 10 February 2014 18:59, <"Ola Fosheim Grøstad\" <ola.fosheim.grostad+dlang@gmail.com>"@puremagic.com> wrote:

> On Monday, 10 February 2014 at 04:26:10 UTC, Manu wrote:
>
>> The only company I know of that has made a commercial commitment to D is a
>>> AAA games company...
>>>
>>
> Unfortunately a AAA games company is not setting down the goal post for D. As long as the leads for the project have as their primary interests: non-real-time stuff and STL-like-libraries things won't develop in your (and mine and Fransescos) direction.
>

I'm confused. A couple of posts ago, you seemed to be annoyed at me for
consistently raising games as a target application space that was
unrealistic, or not 'down to earth', or some fairly niche and irrelevant
target workload.
Video games is a bigger industry than the movie industry. Casual/phones
have captured a large slice in recent years, but the rest of the pie is
almost entirely games consoles, which I don't think is a diminishing
industry so much as the casual/phone space is rather growing the pie in
overall volume. The industry is expanding as a whole.

Yes both subsets of the industry are important, but in the casual space there are already other realistic and established languages as options, and D is much further away from use on those industries; mature cross-compilers, OS support, cross-language support, etc are all requirements for casual/phone games in D.

It won't happen until the leads of the project COMMIT to a MEASURABLE goal
> and a major effort is made to meet that goal. That means putting other goals aside until that measurable goal has been met.


I don't think anyone in the D community really has that power. If Walter were to dictate direction that was unpopular enough, the developer base would promptly dissolve.

I agree in some sense, that I would like to see some set of specific goals
agreed and targeted with each release cycle. Ideally, with a roadmap
towards particular goalposts which may enable new usage spaces.
It may be possible that Walter and Andrei might have that sort of rallying
power, but if the goal is not of interest to the majority of contributors,
it just won't happen regardless how many people post happy thoughts about
the goal. Contributing to D is, in some way, a form of recreation for
contributors.

 Sorry, I obviously mean, "the only *games* company..."
>>
>
> Yeah, but that games company needs to commit to taking a lead role so that the goal post and vision changes in that direction.
>

Are you saying I don't complain enough? :) (at least, last year before I
left)
I would never want to assert authority on the language direction on behalf
of a single company, like you say, it's a niche target, although a very big
niche which I think will really benefit from D.
I just make sure that people never forget that the niche exists, what the
requirements are, and that tends to result in those targets being factored
into conversations and designs.

 And people seem to forget promptly after every single time I repeat myself:
>>  * The GC frequency of execution is directly proportional to the amount of
>> _free memory_. In console games; NONE.
>>  * The length of the associated pause is directly proportional to the
>> amount of memory currently in use. In console games; all of it.
>>
>> This doesn't only describe games, it describes any embedded environment.
>>
>
> I've already stated that I don't believe in using D for anything multi-media.
>

That's a shame, I see that as one of it's greatest (yet unrealised)
potentials. What are some other reasons anyone would reach for a native
language these days?
If it's not an operating system, or some enterprising web service... what
else commands native hardware access and performance than embedded
development in a *highly* aggressive and competitive industry?

It is not part of the project vision to be good at that from what I am
> seeing, and I am not going to believe it is going to be good for that until the project leads commit to measurable goals.
>
> The leads believe in meritocracy, that means the project will flail around in any direction that is fun. That means there are no rails. There is no reason to pull or push a train that is not on rails. To get D to be a true better C++ you need a concerted effort.
>

Yeah, I agree in theory... I think the short-term goals need to be set by the target requirements of the people actually using it, then they can produce stories about how it went well for them.


February 10, 2014
On 10 February 2014 19:17, Francesco Cattoglio < francesco.cattoglio@gmail.com> wrote:

> On Monday, 10 February 2014 at 08:58:29 UTC, Manu wrote:
>
>> If we wanted to spend that time+manpower (read, money & overtime/sanity)
>> on
>> bullshit like that, we have no reason to adopt D; we already have C/C++,
>> and we already have decades of experience mitigating that nightmare.
>> The point is, we are REALLY sick of it. Why would we sign up to replace it
>> with more of the same thing.
>>
>
> What I meant: you can't get a language that performs at its best without
> doing your homework. Ideal performance requires time and money, no matter
> the tools. This doesn't mean I expect you to do the same amount of work you
> have to do in C++.
> Perhaps I expressed myself in a bad way, so here is a second try at that:
> I expect only simpler games to run at ideal speed without efforts. "Simple"
> here doesn't mean "generic 2D platformer", it should be interpreted as "not
> cutting edge". If you really need to squeeze every bit of performance, you
> can't only rely on automation.
>

Fair enough, and I'd say you're right. D will not change the careful
application of region allocators or pools or any number of tightly
controlled, context-specific allocation patterns.
But D has a lot of language features that allocate; closures, strings,
concatenation, AAs, 3rd party libraries that also allocate on your behalf,
and not ALL your code should have to apply carefully controlled allocation
patterns. The existing GC is plainly unacceptable, but some form of GC must
be present, otherwise D doesn't work.

GC backed ARC is a realistic option as far as I can tell, and it's the only
one I've ever heard that ticks all the boxes, and would seem to satisfy
everyone in an acceptable way (ie, no additional complexity for 'don't
care' users).
I'm not married to it by any means, but it seems to be the only horse in
the race. I haven't heard any other options that tick all the boxes.


February 10, 2014
On Monday, 10 February 2014 at 08:59:28 UTC, Ola Fosheim Grøstad wrote:
> It won't happen until the leads of the project COMMIT to a MEASURABLE goal and a major effort is made to meet that goal. That means putting other goals aside until that measurable goal has been met.
I'm sorry, but I think you are misinterpreting how the community works. Don't get me wrong, I've only be here for 2 years and I'm not a guru of social interactions, but to me it's clear that the D "project" is a bit different from your usual "leaders decide, everyone else follows".
The "heads" (read Andrei and Walter) surely have some "powers". Perhaps they have abused those in the past (introducing features without general consensus), they might be able to impose a veto on a feature, but they won't prevent you from contributing, if that contribution is approved by the rest of the user base.

> Yeah, but that games company needs to commit to taking a lead role so that the goal post and vision changes in that direction.
"Leading role" is rather generic in this kind of organization. A "leader" is more or less someone that you listen to, someone you trust because you think what they are asking and proposing rational stuff. Personally, as an example, I listen to Manu and I listen to Daniel Murphy, because they appear to have a nice project that can give some great visibility to D.
There is a problem: most of the times the user of a tool has no time to work on the tool itself. What should Manu do other than going to Dconf, presenting their hard work, and convincing his coworkers?
The "project leaders" have really limited resources. Stating a vision for the D as a language is useless if you don't have the resources to achieve it. Sure, if you have your voice heard (like Andrei) it's easier to convince other people to share your vision, but this doesn't mean you can force people on working on something extremely specific. This nets to having zero "traditional" leader power.
What could be done is doing a massive crowdfunding campaign, get a few full-time hired developers, and change that.

> The leads believe in meritocracy, that means the project will flail around in any direction that is fun. That means there are no rails. There is no reason to pull or push a train that is not on rails. To get D to be a true better C++ you need a concerted effort.
No, first of all you need the same amount of economic backing. The one backing the project will shape it the most. True democracy is pure utopia. People have different interests and different ideas, which are often conflicting. In the end it's all about resources.
February 10, 2014
On Monday, 10 February 2014 at 09:36:53 UTC, Manu wrote:
> Are you saying I don't complain enough? :) (at least, last year before I left)

Just out of curiosity: what do you mean exactly?
February 10, 2014
On 10 February 2014 20:12, Francesco Cattoglio < francesco.cattoglio@gmail.com> wrote:

> On Monday, 10 February 2014 at 09:36:53 UTC, Manu wrote:
>
>> Are you saying I don't complain enough? :) (at least, last year before I
>> left)
>>
>
> Just out of curiosity: what do you mean exactly?
>

I left Remedy a year back, so I don't speak on their behalf anymore. Is that what you mean?

He said "that games company needs to commit to taking a lead role so that the goal post and vision changes in that direction", and I'm not sure what that could mean in terms of tangible action, other than my advocating the things that were of critical importance to our project at the time.


February 10, 2014
On Monday, 10 February 2014 at 10:53:05 UTC, Manu wrote:
> On 10 February 2014 20:12, Francesco Cattoglio <
> francesco.cattoglio@gmail.com> wrote:
> I left Remedy a year back, so I don't speak on their behalf anymore. Is
> that what you mean?
Yes, exactly :) I understood "I stopped complaining because I left the forums" and I was like "wait, what?".

> He said "that games company needs to commit to taking a lead role so that
> the goal post and vision changes in that direction", and I'm not sure what
> that could mean in terms of tangible action, other than my advocating the
> things that were of critical importance to our project at the time.

Reports on previous experience is indeed invaluable for future progression.
February 10, 2014
On Monday, 10 February 2014 at 10:53:05 UTC, Manu wrote:

>
> I left Remedy a year back, so I don't speak on their behalf anymore. Is
> that what you mean?
>

Sorry for being OT, but where do you work now?
February 10, 2014
On Monday, 10 February 2014 at 09:36:53 UTC, Manu wrote:
> I'm confused. A couple of posts ago, you seemed to be annoyed at me for
> consistently raising games as a target application space that was
> unrealistic, or not 'down to earth', or some fairly niche and irrelevant
> target workload.

Sorry about that. I have been following D since 2005, on and off, and kept waiting for the "better C++" to materialize so I can use it to do fun stuff with it (audio, 3D, raytracing etc).

One hobby of mine is to read Intel/AMD CPU docs, raytracing papers and compiler stuff, and discussing those aspects and improving my understanding of those areas is fun. I am loosing hope in that direction for D, because I don't think D has anyone with a strong interest in project management that can drive it in that direction. The responses from the D leads shows signs, not of a lack of skills, but a lack of interest in project management "theory" (and unfortunately, that is an area where I know the theory quite well since I majored in that area).

On the fun side I want what you want. I would love to see you be the third lead on D, to get a person that "falls to sleep thinking real time" into that position would make me believe in the project.

On the "pay for bread" side I am looking at D from the perspective of having an alternative to Go on the server side. I guess that has made me "janus-faced" in this discussion. What would make me tilt in favour of Go instead of D, is that it has corporate backing and therefore give priority to production level stability. Even though I like the semantics of D better. Stability is important to me since I personally pay the price (literally) for technical flaws since I offer fixed priced solutions.

Instead of A.A. and W.B. going defensive (and yes it is painful to see your child get a needle in the foot at the doctor to get that vaccine that will keep the child healthy in the long term) they should try to get someone into the team of leads that has an interest in software development process and software process improvement. Or at the very least, one person with real time focus.

(Please note that I found it quite amusing that you claimed that I was ignorant of long running games, since I studied Anarchy Online from inception to end in a qualitative manner while trying to figure out the design properties of the design domain, from a system development perspective. You don't have to convince me, I do understand where you are coming from and enjoy reading about your perspective. ;^)

> Video games is a bigger industry than the movie industry. Casual/phones
> have captured a large slice in recent years, but the rest of the pie is
> almost entirely games consoles, which I don't think is a diminishing
> industry so much as the casual/phone space is rather growing the pie in
> overall volume. The industry is expanding as a whole.

Yes, unfortunately the revenue in the mobile app space is very low for the majority of developers which requires tools that make them very productive at the cost of technical quality. So lots of stuff is being done with cheap (and not really performant) tech to cut down on dev time.

A more performant and productive language could certainly make a difference, but to get there you need to focus on that niche, otherwise it will take too many years to catch up with the alternatives (with their eco system). And the landscape keeps changing very quickly. Companies that offer 3rd party solutions fold all the time. So mobile devs are "jaded".

> I don't think anyone in the D community really has that power. If Walter
> were to dictate direction that was unpopular enough, the developer base
> would promptly dissolve.

Yes, some would leave, but others would join. Those who today look at D and say:

- "This is kind of cool, but not quite there yet"

- "when can I expect to see it land in the area where it makes me productive"

- "is this cart worth pushing, can we actually make a significant improvement here or do I have to push this cart all by myself"

I would imagine that there are more people sitting on the fence than not.

What made Linux work out was that they were aiming for a well defined vision, Unix. Progress was easy to measure.

What made Linux fail on the desktop that they did not have a well defined vision, so the community spread out on N alternatives and progress was hard to measure.

This is a bit simplistic, but Open Source projects that does not have a strongly projected vision tends to wither and dissolve over time.

> the goal. Contributing to D is, in some way, a form of recreation for contributors.

But you still need a clear vision and well defined goals, because for every "fun" bit there is 2 "unfun" bits. For every "excellent feature", you have to axe "2 nice to haves". (kind of)

> Are you saying I don't complain enough? :) (at least, last year before I left)
> I would never want to assert authority on the language direction on behalf
> of a single company, like you say, it's a niche target, although a very big
> niche which I think will really benefit from D.

Actually, I think you have the passion to put forth a vision that could bring D to real time and thus make it a project that is making "fun" possible.

With no "real time" person on the team I probably will take the "hobby focus" and enjoy discussing technological possibilites (such as the discussion we had about ref counting recently).

If that makes A.A. upset. Great. He should be. I am implying that D needs leadership. He should take leadership. If he does not want to listen. Well, in that case I am not forcing him to read what I write. But pointing to github is pointing in the wrong direction. Github tracks missing bolts and nuts, not a skewed skeleton.

> I just make sure that people never forget that the niche exists, what the
> requirements are, and that tends to result in those targets being factored
> into conversations and designs.

I am perfectly cool with that. If AAA games is the vision. Good. My prime gripe is the lack of a clearly stated vision. I could go with any "system level" vision that is not covered by C++/C#.

> That's a shame, I see that as one of it's greatest (yet unrealised) potentials. What are some other reasons anyone would reach for a native language these days?

Scalable, low resource, servers. Servers that boot up real fast and handle many connections.

I am currently musing at OSv. It is a kernel written in C++ that can run on top of KVM. Having something like Go or D on that platform could be interesting.

Backing caches/databases/web services for low revenue mobile apps.

> If it's not an operating system, or some enterprising web service... what
> else commands native hardware access and performance than embedded
> development in a *highly* aggressive and competitive industry?

Again, I don't disagree.  *smooch*

;)
February 10, 2014
On Monday, 10 February 2014 at 10:04:53 UTC, Francesco Cattoglio wrote:
> I'm sorry, but I think you are misinterpreting how the community works. Don't get me wrong, I've only be here for 2 years and I'm not a guru of social interactions, but to me it's clear that the D "project" is a bit different from your usual "leaders decide, everyone else follows".

I am not going into this, because then I would have to go down to a theoretical dicussion on group dynamics, formal/informal hiearchies and lots of different schools of thought and models.

That would be a long road to walk. ;-)

All groups need to define their boundaries. If they don't do it clearly, each person will define his own boundaries and you will enter a process of negotiation. Then you will have a clash of those boundaries causing various dysfunctional dynamics.

Not defining your boundaries is not an option. It is going to happen.

The question is: how much time do you want to spend on that process before entering a productive state?