Thread overview
Tango collections
Mar 21, 2007
Lars Ivar Igesund
Mar 21, 2007
Sean Kelly
Mar 21, 2007
Sean Kelly
Mar 21, 2007
Walter Bright
Mar 21, 2007
Pragma
[OT] Re: Tango collections
Mar 23, 2007
Bruno Medeiros
Mar 23, 2007
Pragma
Mar 23, 2007
Bruno Medeiros
March 21, 2007
I'm seeing that Tango implements Java-style collections. Is there any work going on implementing STL-style collections in Tango?

Also, I'm seeing some needless Javaisms in the interface, e.g. int ArraySeq.capacity(), which should be uint. At the same time other functions, e.g. ArraySeq.instances(), return uint! What gives?


Andrei
March 21, 2007
Andrei Alexandrescu (See Website For Email) wrote:

> I'm seeing that Tango implements Java-style collections. Is there any work going on implementing STL-style collections in Tango?
> 
> Also, I'm seeing some needless Javaisms in the interface, e.g. int
> ArraySeq.capacity(), which should be uint. At the same time other
> functions, e.g. ArraySeq.instances(), return uint! What gives?
> 
> 
> Andrei

This question could be appropriatly answered in the Tango Issues forum over at the Tango website (http://www.dsource.org/projects/tango).

-- 
Lars Ivar Igesund
blog at http://larsivi.net
DSource, #d.tango & #D: larsivi
Dancing the Tango
March 21, 2007
Andrei Alexandrescu (See Website For Email) wrote:
> I'm seeing that Tango implements Java-style collections. Is there any work going on implementing STL-style collections in Tango?

This is probably more a question for the Tango forums, but I'll reply briefly here anyway :-)  In my opinion, the choice of a container package for Tango was as much from necessity as it was from merit.  Doug Lea's containers were available and obviously well-designed, and we simply didn't have the time to design something entirely from scratch given the development effort for Tango as a whole.  That said, Kris spent a great deal of time bringing the package more in-line with our needs, and I do feel the result is quite solid and consistent.  My issues with it are largely cosmetic (I come from a C++ background and don't like the Java approach to interface design).

As for alternate designs, etc, I'll admit that I was hoping Matthew would find some time to work on DTL.  Some of the fundamental ideas present in that library are good ones, but it's simply far too rough to use as more than reference material.  Also, I feel the proper approach for iterators in D is closer to the Java-style, so a single iterator that knows where it is rather than a pair of dumb iterators to represent range.  There was an extensive discussion of iterators here maybe six months ago, and I followed this with a rough proposal which summed things up.  I can't remember the thread names offhand, but I can dig around for them if you missed the discussion.

I'll admit that I wouldn't mind taking a crack at this myself, but from experience I think it's unlikely I'll have much time for user-level code before Tango reaches 1.0.  Something always seems to come up that pulls me back into working on low-level features.

> Also, I'm seeing some needless Javaisms in the interface, e.g. int ArraySeq.capacity(), which should be uint. At the same time other functions, e.g. ArraySeq.instances(), return uint! What gives?

There is still some cleanup work to be done, and I suspect capacity() was simply overlooked.  Submitting tickets for problems you find is the best way to ensure that one of remembers to do something about it :-)


Sean
March 21, 2007
Sean Kelly wrote:
> Andrei Alexandrescu (See Website For Email) wrote:
>> I'm seeing that Tango implements Java-style collections. Is there any work going on implementing STL-style collections in Tango?
> 
> This is probably more a question for the Tango forums, but I'll reply briefly here anyway :-)  In my opinion, the choice of a container package for Tango was as much from necessity as it was from merit.  Doug Lea's containers were available and obviously well-designed, and we simply didn't have the time to design something entirely from scratch given the development effort for Tango as a whole.  That said, Kris spent a great deal of time bringing the package more in-line with our needs, and I do feel the result is quite solid and consistent.  My issues with it are largely cosmetic (I come from a C++ background and don't like the Java approach to interface design).

Same here. I was hoping that ever since the STL came up, there was no
looking back at Java-style containers in a language that supports generics.

> As for alternate designs, etc, I'll admit that I was hoping Matthew would find some time to work on DTL.  Some of the fundamental ideas present in that library are good ones, but it's simply far too rough to use as more than reference material.  Also, I feel the proper approach for iterators in D is closer to the Java-style, so a single iterator that knows where it is rather than a pair of dumb iterators to represent range.  There was an extensive discussion of iterators here maybe six months ago, and I followed this with a rough proposal which summed things up.  I can't remember the thread names offhand, but I can dig around for them if you missed the discussion.

Yah. Ranges have turned out to be a very useful addition to the STL as well.

> I'll admit that I wouldn't mind taking a crack at this myself, but from experience I think it's unlikely I'll have much time for user-level code before Tango reaches 1.0.  Something always seems to come up that pulls me back into working on low-level features.

I know how that feels :o|. But my guess (while having about zero idea
about the possible politics involved) is that nobody will ever pick up work on DTL unless the Tango team decides to do so.

>> Also, I'm seeing some needless Javaisms in the interface, e.g. int ArraySeq.capacity(), which should be uint. At the same time other functions, e.g. ArraySeq.instances(), return uint! What gives?
> 
> There is still some cleanup work to be done, and I suspect capacity() was simply overlooked.  Submitting tickets for problems you find is the best way to ensure that one of remembers to do something about it :-)

Sounds great, thanks.


Andrei
March 21, 2007
Andrei Alexandrescu (See Website For Email) wrote:
> Sean Kelly wrote:
> 
>> I'll admit that I wouldn't mind taking a crack at this myself, but from experience I think it's unlikely I'll have much time for user-level code before Tango reaches 1.0.  Something always seems to come up that pulls me back into working on low-level features.
> 
> I know how that feels :o|. But my guess (while having about zero idea about the possible politics involved) nobody will ever pick up work on DTL unless the Tango team decides to do so.

I think that's probably true.


Sean
March 21, 2007
Sean Kelly wrote:
> I'll admit that I wouldn't mind taking a crack at this myself, but from experience I think it's unlikely I'll have much time for user-level code before Tango reaches 1.0.  Something always seems to come up that pulls me back into working on low-level features.

Funny that you say that, it reminds me of my work on Empire years ago. I'd never play a game all the way through because I'd go back to working on the guts of it.
March 21, 2007
Walter Bright wrote:
> Sean Kelly wrote:
>> I'll admit that I wouldn't mind taking a crack at this myself, but from experience I think it's unlikely I'll have much time for user-level code before Tango reaches 1.0.  Something always seems to come up that pulls me back into working on low-level features.
> 
> Funny that you say that, it reminds me of my work on Empire years ago. I'd never play a game all the way through because I'd go back to working on the guts of it.

Although you were past the post Walter, I like to call this condition "Carmack's Syndrome".

-- 
- EricAnderton at yahoo
March 23, 2007
Pragma wrote:
> Walter Bright wrote:
>> Sean Kelly wrote:
>>> I'll admit that I wouldn't mind taking a crack at this myself, but from experience I think it's unlikely I'll have much time for user-level code before Tango reaches 1.0.  Something always seems to come up that pulls me back into working on low-level features.
>>
>> Funny that you say that, it reminds me of my work on Empire years ago. I'd never play a game all the way through because I'd go back to working on the guts of it.
> 
> Although you were past the post Walter, I like to call this condition "Carmack's Syndrome".
> 
Hum, if I can ask, why do you call it "Carmack's Syndrome"? (I assume you are refering to John Carmack)

-- 
Bruno Medeiros - MSc in CS/E student
http://www.prowiki.org/wiki4d/wiki.cgi?BrunoMedeiros#D
March 23, 2007
Bruno Medeiros wrote:
> Pragma wrote:
>> Walter Bright wrote:
>>> Sean Kelly wrote:
>>>> I'll admit that I wouldn't mind taking a crack at this myself, but from experience I think it's unlikely I'll have much time for user-level code before Tango reaches 1.0.  Something always seems to come up that pulls me back into working on low-level features.
>>>
>>> Funny that you say that, it reminds me of my work on Empire years ago. I'd never play a game all the way through because I'd go back to working on the guts of it.
>>
>> Although you were past the post Walter, I like to call this condition "Carmack's Syndrome".

Oops, that should be "first past the post", sorry. :)

>>
> Hum, if I can ask, why do you call it "Carmack's Syndrome"? (I assume you are refering to John Carmack)
> 

Yes, the very same.  The comment is obviously tongue-in-cheek, but I still think he's a prime example of this tendency in highly capable (software) engineers.  If anything, he has the portfolio to prove it.

Overall, he's made a career out of making games out of freestanding tech-demos, with razor-thin plots holding them together.  It springs from this tendency to return to the core, tweak the hell out of it, and turn it into the next big thing - ID software has typically raked in the dough on engine licensing, not just game sales.  IIRC, he doesn't spend that much time playing the games he's made so he tends to get his ass handed to him at the few public quake matches he's had with fans.  So obviously, he's busy improving and streamlining things instead.

Besides, play-balancing and storyline is what we have content and testing people for. ;)

But what I attribute to this "syndrome" is really more about innovation, vision and merit applied to the core product than cashing out in a big way.  I for one think the software renderer in Quake I is a work of art, considering what it did for the time.  Also, he came up with a shadow-volume technique that made Doom 3 what it was.  He has also brushed up against the limitations of consumer 3D hardware enough times as to help steer the future of that technology along for quite a while now.

http://en.wikipedia.org/wiki/Surface_caching
http://en.wikipedia.org/wiki/Carmack%27s_Reverse

And that's just software.  Following his adventures in aerospace, again, this tendency comes back in full force.  He's been tweaking rocket engine designs for years now, despite his wanting to "get away from the core" and actually design a ship around them.

http://www.armadilloaerospace.com/n.x/Armadillo/Home/News

-- 
- EricAnderton at yahoo
March 23, 2007
Pragma wrote:
> Bruno Medeiros wrote:
>> Pragma wrote:
>>> Walter Bright wrote:
>>>> Sean Kelly wrote:
>>>>> I'll admit that I wouldn't mind taking a crack at this myself, but from experience I think it's unlikely I'll have much time for user-level code before Tango reaches 1.0.  Something always seems to come up that pulls me back into working on low-level features.
>>>>
>>>> Funny that you say that, it reminds me of my work on Empire years ago. I'd never play a game all the way through because I'd go back to working on the guts of it.
>>>
>>> Although you were past the post Walter, I like to call this condition "Carmack's Syndrome".
> 
> Oops, that should be "first past the post", sorry. :)
> 
>>>
>> Hum, if I can ask, why do you call it "Carmack's Syndrome"? (I assume you are refering to John Carmack)
>>
> 
> Yes, the very same.  The comment is obviously tongue-in-cheek, but I still think he's a prime example of this tendency in highly capable (software) engineers.  If anything, he has the portfolio to prove it.
> 
> Overall, he's made a career out of making games out of freestanding tech-demos, with razor-thin plots holding them together.  It springs from this tendency to return to the core, tweak the hell out of it, and turn it into the next big thing - ID software has typically raked in the dough on engine licensing, not just game sales.  IIRC, he doesn't spend that much time playing the games he's made so he tends to get his ass handed to him at the few public quake matches he's had with fans.  So obviously, he's busy improving and streamlining things instead.
> 
> Besides, play-balancing and storyline is what we have content and testing people for. ;)
> 
> But what I attribute to this "syndrome" is really more about innovation, vision and merit applied to the core product than cashing out in a big way.  I for one think the software renderer in Quake I is a work of art, considering what it did for the time.  Also, he came up with a shadow-volume technique that made Doom 3 what it was.  He has also brushed up against the limitations of consumer 3D hardware enough times as to help steer the future of that technology along for quite a while now.
> 
> http://en.wikipedia.org/wiki/Surface_caching
> http://en.wikipedia.org/wiki/Carmack%27s_Reverse
> 
> And that's just software.  Following his adventures in aerospace, again, this tendency comes back in full force.  He's been tweaking rocket engine designs for years now, despite his wanting to "get away from the core" and actually design a ship around them.
> 
> http://www.armadilloaerospace.com/n.x/Armadillo/Home/News
> 

Yes, that's exactly what I was thinking that you were thinking. Because then I wanted to chime in say that I think Carmack doesn't care *at all* about the "high-level" (game design/gameplay in this case). He does game engines and he's brilliant at it, but it doesn't go any further. I'm not belligerent or anything, he has the right to do what he wants (and perhaps part of his genius is due to his sole interest on the technical aspects), but I personally, although a programmer, have much more admiration for the art aspect of a game than the technical aspects. In iD's case there are many games I remember fondly (namely the Commander Keen series and Quake I) which are all before the Romero split and iD turned into a "bare" game-engine making company. And I remember them fondly because of the game design aspect like the story, setting, characters, etc. . Yes, unlike Keen, Quake I had a super thin plot, but it still had excellent game design elements: level design, monsters, secrets, the gothic environment and feel, and the music (the NiN music was awesome). Nowadays iD games fly me by without sparking much interest. I played Doom III but not Quake IV (not much time available anyways). Not even in the multiplayer/competitive gaming area have iD game's maintained their once strong presence.
The Dopefish lives, but not in iD anymore. :o

This opinion of Carmack is based on loose observation of id's history, and Carmack's general posture. Someone who has more indepth information (like having read the book "Masters of Doom") is likely to know for sure if what I mention here is fully correct.

-- 
Bruno Medeiros - MSc in CS/E student
http://www.prowiki.org/wiki4d/wiki.cgi?BrunoMedeiros#D