April 20, 2012
On 20 April 2012 17:28, Sean Kelly <sean@invisibleduck.org> wrote:

> For what it's worth, Mikola Lysenko did a talk on coroutines in D at a D conference a few years ago. It's on video, if you're interested in looking for it.
>

Awesome , I certainly am. Did he have a working implementation?


April 20, 2012
On Apr 20, 2012, at 7:49 AM, Manu <turkeyman@gmail.com> wrote:

> On 20 April 2012 17:28, Sean Kelly <sean@invisibleduck.org> wrote:
> For what it's worth, Mikola Lysenko did a talk on coroutines in D at a D conference a few years ago. It's on video, if you're interested in looking for it.
> 
> Awesome , I certainly am. Did he have a working implementation?

Yup. I dunno if his website is still up (assertfalse IIRC) but he's still reachable. Working on a masters/phd I believe.

April 20, 2012
On Friday, 20 April 2012 at 13:44:55 UTC, Manu wrote:
> It's a bit of a chicken and egg problem, but I suspect there is interest :)

Maybe if Walter and Andrei were to define some sort of consortium like there is for Java, companies would be interested in participating in the development ? I have no idea how it would look like though, as that would mean a lot more organization and overhead. We clearly don't work like that right now.

>
> If IBM for example was helping D like they did for eclipse, the traction
>> would be huge and the toolchain would stabilize so much faster. :(
>>
>
> What exactly would mainstream developers do to stimulate such traction, and
> stabilise the toolchain as you are suggesting?

IBM has largely contributed to the development of the eclipse environment. In fact, it started as one of their products, Visual Age, that they open sourced, and this move was very successful.
April 20, 2012
On Friday, 20 April 2012 at 03:42:01 UTC, Andrei Alexandrescu wrote:
> On 4/19/12 3:05 PM, H. S. Teoh wrote:
>
> This is interesting. We use C++ at Facebook all over the place, and gainfully. If we were to use C, we'd have major difficulties with e.g. containers. The thought of using a hashtable in C... ouch.
>
> Andrei

I did use a C hashtable (the kazlib) implementation in an embedded product, once.
I think in some blog I always forget (one interested in D), the author compares many implementations of hashtable in C and C++, and provides his own.
April 20, 2012
On 20 April 2012 18:09, SomeDude <lovelydear@mailmetrash.com> wrote:

> On Friday, 20 April 2012 at 13:44:55 UTC, Manu wrote:
>
>> It's a bit of a chicken and egg problem, but I suspect there is interest :)
>>
>
> Maybe if Walter and Andrei were to define some sort of consortium like there is for Java, companies would be interested in participating in the development ? I have no idea how it would look like though, as that would mean a lot more organization and overhead. We clearly don't work like that right now.
>

How does that work in Java's case? It doesn't seem to me that there is the manpower here to do that.


If IBM for example was helping D like they did for eclipse, the traction
>>
>>> would be huge and the toolchain would stabilize so much faster. :(
>>>
>>>
>> What exactly would mainstream developers do to stimulate such traction,
>> and
>> stabilise the toolchain as you are suggesting?
>>
>
> IBM has largely contributed to the development of the eclipse environment. In fact, it started as one of their products, Visual Age, that they open sourced, and this move was very successful.
>

Okay so you're talking about mega-companies who can afford to invest
significant time and money into the language?
I think that's very unlikely to happen these days. But it would still be
nice to be attractive to mid-large sized businesses to get their hands
dirty.
The most significant factor here is to see these entities as customers, and
not necessarily community participants or contributors. Is the community
ready to have those sorts of users?
Their advertising potential may be valuable in bringing other interest and
contributors into the community, but other than that, what can those
entities bring to the community that isn't expressed in terms of manpower?


April 20, 2012
On Apr 20, 2012, at 8:09 AM, SomeDude wrote:
> 
> IBM has largely contributed to the development of the eclipse environment. In fact, it started as one of their products, Visual Age, that they open sourced, and this move was very successful.

Eclipse started as VisualAge?  No wonder I hate it so much :-)  That was a powerful IDE, but utterly impenetrable.
April 20, 2012
On 20/04/2012 15:49, Manu wrote:
> On 20 April 2012 17:28, Sean Kelly <sean@invisibleduck.org
> <mailto:sean@invisibleduck.org>> wrote:
>
>     For what it's worth, Mikola Lysenko did a talk on coroutines in D at
>     a D conference a few years ago. It's on video, if you're interested
>     in looking for it.
>
>
> Awesome , I certainly am. Did he have a working implementation?

http://prowiki.org/wiki4d/wiki.cgi?Videos

Video: http://vimeo.com/1873969
Slides: http://replay.waybackmachine.org/20081010074222/http://team0xf.com/conference/fibers.pdf

It's been a couple of years since I watched the video, I'm pretty sure it's what you can find in core.thread.Fiber that he's talking about (it used to be part of Tango).

-- 
Robert
http://octarineparrot.com/
April 20, 2012
On Friday, 20 April 2012 at 15:38:40 UTC, Manu wrote:
> On 20 April 2012 18:09, SomeDude <lovelydear@mailmetrash.com> wrote:
>
>> On Friday, 20 April 2012 at 13:44:55 UTC, Manu wrote:
>>
>>> It's a bit of a chicken and egg problem, but I suspect there is interest
>>> :)
>>>
>>
>> Maybe if Walter and Andrei were to define some sort of consortium like
>> there is for Java, companies would be interested in participating in the
>> development ? I have no idea how it would look like though, as that would
>> mean a lot more organization and overhead. We clearly don't work like that
>> right now.
>>
>
> How does that work in Java's case? It doesn't seem to me that there is the
> manpower here to do that.
>

Through the Java Community Process (http://jcp.org). Basically, it's where the proposals for APIs are reviewed. It started after many people found that the Sun APIs sucked (basically, Sun didn't have the manpower to follow all the requests of their users) and founded the Apache and Spring projects to compensate for some missing parts (the logging API for instance).
Afterwards, key developers of those open source projects became active part of the JCP, and companies followed.

There is the list of JSR:
http://jcp.org/en/jsr/all
You can see there is quite a lot of people involved in each specification, a leader and then a review group formed of a number of experts representing each interested party.

> Okay so you're talking about mega-companies who can afford to invest significant time and money into the language?

Yes.

> I think that's very unlikely to happen these days. But it would still be
> nice to be attractive to mid-large sized businesses to get their hands dirty.

The Oracle-Google trial is interesting, as if Oracle wins, many companies would be happy not to have to pay huge money to bastard Ellison just to use the Java API.
If there is an alternative, I think they would be interested. Right now, the alternative is Microsoft...

> The most significant factor here is to see these entities as customers, and
> not necessarily community participants or contributors. Is the community ready to have those sorts of users?

There is no chance any big company would use D without actively contributing to its stabilization beforehand, because they can't afford to have their systems broken every other release.

> Their advertising potential may be valuable in bringing other interest and
> contributors into the community, but other than that, what can those
> entities bring to the community that isn't expressed in terms of manpower?

Well, I think manpower is already a very valuable help, don't you think ? If some smart people worked all day on the compiler and libraries, everything would go much faster.

April 20, 2012
On Thu, Apr 19, 2012 at 07:24:48PM -0400, Nick Sabalausky wrote:
> "Sean Kelly" <sean@invisibleduck.org> wrote in message news:mailman.1942.1334874732.4860.digitalmars-d@puremagic.com...
> >On Apr 19, 2012, at 3:20 PM, Nick Sabalausky wrote:
[...]
> >> Yea, pretty much. With a few exceptions (Splinter Cell 1 though...3 or 4, and some Japanese stuff), I see the mainstream industry as mostly a "Pixar-wannabe high-def-animation factory" these days. They don't care about gameplay anymore, just storytelling, animation and emulating Hollywood.
> >
> >I've switched from calling those games to calling them interactive cinematic experiences.  Some are actually enjoyable from a story perspective, but overall I think they're an evolutionary dead end for the game industry.=

Wasn't that all the hype in the early days where games like that were called "interactive movies"? I remember Wing Commander was one of those (or at least, it tried to be). But at least there was actual *gameplay* going on in WC (you actually get to fly a spaceship and shoot enemies down), as opposed to just point-and-click, choose-your-own-story, see-how-many-permutations-of-the-same-old-video-clips-you-can-get.


[...]
> I'll take another game with a "Save the princess" backstory, or even *no* story at all, over a game driven start-to-finish by a less-than-spectacular story any day. Hell, it's much better replay value like that anyway: Listening to the same story over and over really kills replayability.

Especially when said story tries SO hard at being convincingly emotional but totally falls flat, because it's the 150th time you're playing the game and you've found out and exploited a dozen plot holes and game sequencing bugs that allow you to trigger game events out of sequence, so that the video clips just seem totally out-of-context.


> Does anyone care why MegaMan's trying to defeat Wily? Or his "emotional growth and struggle" while doing it? Hell no, they just enjoy doing it.
[...]

Exactly. Any "emotional growth and struggle" can only be emergent from the game mechanics, not from a railroaded "you have to do things this way 'cos that's how you're supposed to" plot dreamed up by some script writer who got up on the wrong side of bed that morning. It's an oxymoron, really. The only *real* "emotional growth" a gamer is going to experience is the gratification from totally pwning the game mechanics to get the highest score/credits/shortest time/what-have-you.

At the end of the day, it's the game mechanic that really matters. I mean, that's the whole reason you're playing in the first place, right? If I just wanted to watch a bunch of video clips, I'd be on youtube instead.


T

-- 
The problem with the world is that everybody else is stupid.
April 20, 2012
On Fri, Apr 20, 2012 at 02:45:51PM +0200, SomeDude wrote: [...]
> Oh yeah, I've seen that story too in a couple of other places. C++ seems to make exceptionnally easy for "mad coders" to screw up a whole system with overengineered pieces of crap. One of my colleagues spent more than a year rewriting a system that turned into a black box that nobody could maintain.
> 
> My opinion is, when a team works in this language, code reviews should be an obligation, else there is always a guy like that, who has his genius idea that nobody else understands and puts his crap all over the place. Basically, the only piece of C++ software I've seen that never became a huge piece of steaming crap was a system that was systematically code reviewed by the main software architect and a couple of highly skilled engineers.

The problem is, code review is a full-time job if it is to be done properly. Often it just deteriorates into a side-job: senior coder A reviews junior coder B's code, but coder A has a pending deadline that week and has lots of complex code issues to tackle, so there's no time to read through everything that coder B wrote. So just glance over it briefly, if there are no blatant problems, approve it.

It gets worse if senior coder A himself doesn't have a good grasp of good coding practices, but got to where he is because he's just very good at last-minute patchwork hacks that makes everything "work". Seniority gives him code review rights, but he's really not qualified for the job.


> I suspect D is not much better on this topic, it's possible to write extremely complex code with it too. Actually, it's possible to write complex and unmaintaineble stuff in any language (even in Python), but I believe the more complex the language, the easier it is to screw things up and the more important code reviews are.

Problem is, good coders are hard to come by. It's even harder to distinguish between coders who succeed because they practise sound coding principles, and coders who "succeed" because they're good at hacking things at the last minute to make them work.

>From a business perspective, the latter are actually (implicitly)
preferred, because what project manager wants coders who are hesitant and cautious about making changes when there's an impending deadline of doom imposed by irate customers who want the product shipped by last week? No, they want coders who can make it work, right now, no matter what the means. Who cares about the consequences, what's important is Big Customer A's trivial bug must be fixed This Very Minute before we lose the multi-million dollar contract to a competitor. Use the ugliest, dirtiest, cruelest hacks if you must, the ends justify the means. Is it any wonder that so many large commercial software projects are crap?

But anyway, I'm veering off-topic.

The point is that C++ has too many features that are unsafe by default, or require the programmer to manually do too many things before it works correctly. Like that dreaded ctor, copy ctor, and assignment operator trio. For the most trivial of classes you need to (at least) provide boilerplate versions of all three, all correctly implemented. Forget some minor detail? No problem, the class will still "mostly" work. Any effects are hard to notice. Until somebody tries to do something that you didn't anticipate, and suddenly there are breakages everywhere.

This is one of the many areas where D shines: the default behaviour is safe and generally correct, and you add more code if you want to fine tune stuff. Not like C++ where failing to add certain pieces of boilerplate code results in broken-by-default behaviour.


T

-- 
Latin's a dead language, as dead as can be; it killed off all the Romans, and now it's killing me! -- Schoolboy