September 2001
- Strix: Object Persistence on Relational Backends Ling Lo
- Structured Social Play John Buehler
- Structured Social Play Tom Hubina
- Structured Social Play Christopher Allen
- Structured Social Play Ola Fosheim Grøstad
- Structured Social Play Daniel Bendiksen
- Structured Social Play Tamzen Cannoy
- Structured Social Play Robin Lee Powell
- Structured Social Play Caliban Tiresias Darklock
- Structured Social Play Travis Casey
- Structured Social Play Robin Lee Powell
- Structured Social Play Christopher Allen
- Structured Social Play Koster, Raph
- Structured Social Play Matthew D. Fuller
- Structured Social Play Bruce Mitchener
- Structured Social Play Takis Kalogiratos
- Structured Social Play shren
- Structured Social Play Daniel Bendiksen
- Structured Social Play shren
- Structured Social Play Matt Owen
- Structured Social Play Bruce Mitchener
- Structured Social Play Vincent Archer
- Structured Social Play shren
- Structured Social Play Daniel Bendiksen
- Structured Social Play Vincent Archer
- Structured Social Play John Buehler
- Structured Social Play Matt Mihaly
- Structured Social Play Marian Griffith
- Structured Social Play Travis Nixon
- NEWS: Blizzard Entertainment announces World of Warcraft Kylotan
- [BIZ] Billing systems Brian Hook
- [BIZ] Billing systems Matt Mihaly
- [BIZ] Billing systems Christopher Allen
- [BIZ] Billing systems Brian Hook
- [BIZ] Billing systems Christopher Allen
- [BIZ] Billing systems Kevin Littlejohn
- [BIZ] Billing systems Travis Nixon
- [BIZ] Billing systems Brian Hook
- [BIZ] Billing systems Daniel.Harman@barclayscapital.com
- [BIZ] Billing systems Owen
- [BIZ] Billing systems Jussi 'Sulka' Haro
- [BIZ] Billing systems Peter Tyson
- Benchmarking MUDs Chris Gray
- Benchmarking MUDs Matt Mihaly
- Benchmarking MUDs Bruce Mitchener
- Benchmarking MUDs Lars Duening
- Benchmarking MUDs Adam Martin
- Benchmarking MUDs Robin Lee Powell
- Benchmarking MUDs Chris Gray
- Benchmarking MUDs Adam Martin
- Benchmarking MUDs Chris Gray
- Benchmarking MUDs Ian Collyer
- Benchmarking MUDs Chris Gray
- Benchmarking MUDs Adam Martin
- Benchmarking MUDs Jon Lambert
- Free Time != Advancement (was: Structured Social Play) Eli Stevens
- Random American Name Generator (!) Ling Lo
- Higher barrier to entry? was NEWS: Blizzard Entertainment announces World of Warcraft Brian Hook
- Higher barrier to entry? was NEWS: Blizzard Entertainment announces World of Warcraft Christopher Allen
- Higher barrier to entry? was NEWS: Blizzard Entertainment announces World of Warcraft Derek Licciardi
- Higher barrier to entry? was NEWS: Blizzard Entertainment announces World of Warcraft Sean K
- Higher barrier to entry? was NEWS: Blizzard Ent ertainment announces World of Warcraft Daniel.Harman@barclayscapital.com
- Updated my site Koster, Raph
- Vircom T4C Brian Hook
- Vircom T4C Valerio Santinelli
- Preference for host OS Brian Hook
- Preference for host OS Jon Leonard
- Preference for host OS Bruce Mitchener
- Preference for host OS brandon@roguetrader.com
- Preference for host OS J C Lawrence
- Preference for host OS Jeremy Noetzelman
- Preference for host OS Fred Clift
- Preference for host OS Travis Casey
- Preference for host OS J C Lawrence
- Preference for host OS Travis Casey
- Preference for host OS Sean K
- Preference for host OS Vincent Archer
- Preference for host OS Phillip Lenhardt
- Preference for host OS J C Lawrence
- Preference for host OS J C Lawrence
- Preference for host OS Brian Hook
- Preference for host OS Brian Tackett
- Preference for host OS Jon Lambert
- Preference for host OS David Loeser
- Preference for host OS Brian Hook
- TEC Distribuate engine &cost of band width Stéphane Garin
- TEC Distribuate engine &cost of band width plalande@born2play.org
- [MUD DEV] Text editors in MUDs [was Structured Social Play] Daniel Bendiksen
- [MUD DEV] Text editors in MUDs [was Structured Social Play] Caliban Tiresias Darklock
- [MUD DEV] Text editors in MUDs [was Structured Social Play] Derek Licciardi
- [MUD DEV] Text editors in MUDs [was Structured Social Play] Adam Martin
- Casual vs. Hardcore gameplay Ian Collyer
- Casual vs. Hardcore gameplay Jon Lambert
- Higher barrier to entry? was NEWS: Blizzard Entertainment announces World of Warcraft Travis Nixon
- Higher barrier to entry? was NEWS: Blizzard En tertainment announces World of Warcraft Koster, Raph
- TECH: SEDA: An Architecture for Highly Concurrent Server Applications Bruce Mitchener
- Re:Play participants emails needed Marian Griffith
- [REALITY] [SOCIAL] ExistenZ Adam Martin
- [TECH] Mozilla as cross OS client for MUD/MMG ? Mathieu Castelli
- [TECH] Mozilla as cross OS client for MUD/MMG ? Chris Jones
- [TECH] Mozilla as cross OS client for MUD/MMG ? Par Winzell
- FW: [BIZ] Billing systems Dave Kennerly
- FW: Skotos TTT#44: The Global Community Christopher Allen
- [Fwd: Announce: New Mailing Lists Available] Bruce Mitchener
- BeQuest Michael Tresca
- Geometric content generation Matt Mihaly
- Geometric content generation Brian Hook
- Geometric content generation Matt Mihaly
- Geometric content generation Brian Hook
- Geometric content generation Derek Licciardi
- Geometric content generation Koster, Raph
- Geometric content generation Adam Martin
- Geometric content generation Daniel.Harman@barclayscapital.com
- Geometric content generation rayzam
- Geometric content generation Daniel.Harman@barclayscapital.com
- Geometric content generation Kwon Ekstrom
- Geometric content generation Daniel.Harman@barclayscapital.com
- Geometric content generation Brian Hook
- Geometric content generation Daniel.Harman@barclayscapital.com
- Geometric content generation Adam Martin
- Geometric content generation Daniel.Harman@barclayscapital.com
- Geometric content generation Koster, Raph
- Geometric content generation Ola Fosheim Grøstad
- Geometric content generation Koster, Raph
- Geometric content generation John Hopson
- Geometric content generation Ola Fosheim Grøstad
- Geometric content generation Dave Rickey
- Geometric content generation Daniel.Harman@barclayscapital.com
- Geometric content generation Dave Rickey
- Geometric content generation Vincent Archer
- Geometric content generation Daniel.Harman@barclayscapital.com
- Geometric content generation Ola Fosheim Grøstad
- Geometric content generation Ola Fosheim Grøstad
- Geometric content generation Dave Rickey
- Geometric content generation Adam Martin
- Geometric content generation rayzam
- Geometric content generation rayzam
- Geometric content generation Ola Fosheim Grøstad
- Geometric content generation J Aitken
- Geometric content generation Caliban Tiresias Darklock
- Geometric content generation Sasha Hart
- Geometric content generation rayzam
- Geometric content generation Adam Martin
- Geometric content generation J Aitken
- Geometric content generation rayzam
- Geometric content generation Ola Fosheim Grøstad
- Geometric content generation Dave Rickey
- Geometric content generation Ola Fosheim Grøstad
- Geometric content generation Dave Rickey
- Geometric content generation Ola Fosheim Grøstad
- Geometric content generation Matt Mihaly
- Geometric content generation Ola Fosheim Grøstad
- Geometric content generation Matt Mihaly
- Geometric content generation Ola Fosheim Grøstad
- Geometric content generation rayzam
- Geometric content generation Travis Nixon
- Geometric content generation Hans-Henrik Staerfeldt
- Geometric content generation Brian Hook
- Geometric content generation Hans-Henrik Staerfeldt
- Geometric content generation Brian Hook
- Geometric content generation Eli Stevens
- Geometric Content Generation John Robert Arras
- Geometric Content Generation Brian Hook
- Geometric content generation Hans-Henrik Staerfeldt
- Geometric content generation Brian Hook
- Geometric content generation Adam Martin
- Geometric content generation John Buehler
- Geometric content generation Hans-Henrik Staerfeldt
- Geometric content generation John Buehler
- Geometric content generation Hans-Henrik Staerfeldt
- Geometric content generation rayzam
- Geometric content generation Brian Hook
- Geometric content generation John Buehler
- Geometric content generation Daniel.Harman@barclayscapital.com
- Geometric content generation Brian Hook
- Geometric content generation Michael Tresca
- Geometric content generation Derek Licciardi
- Geometric content generation Brian Hook
- Geometric content generation Adam Martin
- Geometric content generation Brian Hook
- Geometric content generation Derek Licciardi
- Geometric content generation Robin Lee Powell
- Geometric content generation Kwon Ekstrom
- Geometric content generation Nathan F. Yospe
- Geometric content generation Travis Nixon
- Geometric content generation Nathan F. Yospe
- Geometric content generation Kwon Ekstrom
- Geometric content generation Travis Nixon
- Geometric content generation Nip
- Geometric content generation Jay Carlson
- Geometric content generation Kwon Ekstrom
- Geometric content generation John Buehler
- Geometric content generation J Todd Coleman
- Geometric content generation Peter Tyson
- Geometric content generation S. Patrick Gallaty
- Geometric content generation Eric Rhea
- Geometric content generation Paul Schwanz
- Geometric content generation Lee Sheldon
- Geometric content generation Ola Fosheim Grøstad
- Geometric content generation Lee Sheldon
- Geometric content generation Matt Mihaly
- Geometric content generation Ola Fosheim Grøstad
- Geometric content generation Matt Mihaly
- Geometric content generation Ola Fosheim Grøstad
- Geometric content generation Jon Lambert
- Geometric content generation Ola Fosheim Grøstad
- Geometric content generation Eric Rhea
- Geometric content generation Matt Mihaly
- Geometric content generation Eric Rhea
- Geometric content generation Ola Fosheim Grøstad
- Geometric content generation Koster, Raph
- Geometric content generation Brian Hook
- Geometric content generation Ian Collyer
- Geometric content generation John Buehler
- Geometric content generation Eli Stevens
- Geometric content generation Ian Collyer
- Geometric content generation John Buehler
- Geometric content generation gamaiun@yahoo.com
- Geometric content generation Derek Licciardi
- Geometric content generation Hans-Henrik Staerfeldt
- Geometric content generation Koster, Raph
- Geometric content generation Matt Mihaly
- Geometric content generation Hans-Henrik Staerfeldt
- Geometric content generation Kwon Ekstrom
- [DSN]Geometric content generation[LONG] Derek Licciardi
- [DSN]Geometric content generation[LONG] Matt Mihaly
- LTM article Trump
- LTM article Travis Nixon
- LTM article J Todd Coleman
- LTM article Travis Nixon
- LTM article Matt Mihaly
- LTM article Sellers, Mike
- LTM article J Todd Coleman
- LTM article Daniel.Harman@barclayscapital.com
- LTM article Adam Martin
- LTM article Steve {Bloo} Daniels
- MMORPG Construction Kit Redux Lee Sheldon
- Request for ideas Eli Stevens
- Request for ideas J C Lawrence
- Request for ideas Jon Leonard
- Request for ideas Eli Stevens
- Request for ideas Timothy Dang
- Request for ideas Hans-Henrik Staerfeldt
- Request for ideas Dickinson, Dallas
- Request for ideas Matt Mihaly
- Request for ideas Bruce Mitchener
- Request for ideas Adam Martin
- Request for ideas Jon Leonard
- Request for ideas Jon Leonard
- Request for ideas Vincent Archer
- Request for ideas Matt Mihaly
- Request for ideas holding99@mindspring.com
- Request for ideas Freeman, Jeff
- Request for ideas Robin Lee Powell
- Request for ideas Andrew Hefford {Coregen}
- Request for ideas Koster, Raph
- Request for ideas John Buehler
- Request for ideas Christopher Allen
- Request for ideas Chuk Radder
- Request for ideas Nicolai Hansen
- Request for ideas Ben Chambers
- Request for ideas Marian Griffith
- Request for ideas Hans-Henrik Staerfeldt
- Request for ideas Ian Collyer
- Request for ideas Freeman, Jeff
- Request for ideas holding99@mindspring.com
- Request for ideas Patrick Dughi
- Request for ideas Christopher Allen
- Request for ideas Adam Martin
- Request for ideas Matt Mihaly
- Request for ideas Leland Hulbert II
- Request for ideas Travis Nixon
- Request for ideas Marian Griffith
- Request for ideas Ben Chambers
- Request for ideas Derek Licciardi
- Request for ideas John Buehler
- Spoofs Eli Stevens
- Spoofs Brian Hook
- Spoofs Sean K
- Spoofs Brian Hook
At 12:33 PM 9/26/01 -0700, Sean K. wrote:
> C++ leaves most things up to the programmer.
As does C or even assembly language, which is part of the problem --
C++ doesn't really make programming any easier, when it gets right
down to it. The code base on Quake3 (ANSI C) was more object
oriented than a lot of the C++ code I've seen, and it actually
supported encapsulation way better than the VAST majority of code
I've seen. It had four main subsystems -- client game, server,
client, and renderer. They were accessed through structs of
function pointers and their implementations were completely opaque
to each other. In C++ you often see programmers with wildly
differing styles and philosophies on how to create object
hierarchies, and it becomes a maintenance horror show.
C++ would have probably been a lot "better" if Stroustrup
et. al. had tried to push some basic idioms at the beginning instead
of making it a generic grab bag of functionality. This latter
flexibility really is what separates C++ from languages that
attempted to standardize somewhat on usage, e.g. Smalltalk, Eiffel,
etc.
> Modern programming style guidelines dictate that there should be a
> separation between these but few people actually do it.
That's because the language just flat out makes it difficult. If
you want to put member data (implementation) in your class, you HAVE
to expose it inadvertently to the rest of the world that may only
care about the interface. You can go through contortions to avoid
this, e.g. opaque pointers to private data where memory is allocated
and de-allocated in your constructors and destructors, but at that
point you're already fighting the language.
For example, if you have an Orc class that derives from Mobile, the
rest of the world should only really know what types of actions the
Orc can do. But if the Orc declaration has a member data Weapon,
then you've now got to include the definition for Weapon whenever
you try to grab the interface for Orc. That's a huge problem --
just because you need a class' interface doesn't mean you should
have to drag in all of its implementation dependencies too.
In C++ you can avoid this somewhat by using class factories that
export a pointer to a parent class, but you still have the
dependency problem within the class factory itself (which has to
know what an Orc is, and inadvertently how it's implemented).
For large scale object hierarchy design such as a MUD, weak binding
and dynamic typing just maps much better.
> ie. there is a rule that > public functions should not be pure
> virtual, instead have them call > pure virtual private
> functions.
If it's a rule, why isn't it enforced? =)
> On a somewhat related note, Scott Meyers wrote an article saying
> that moving as much implementation as possible out of member
> functions into independent functions actually increases
> object-orientation. This is the beginning of the slide towards
> generic programming.
This is a similar point to what Design Patterns was basically saying
-- overriding member functions breaks encapsulation, which is
counter to what the C++ camp has been saying for the past 15 years.
The minute you override a parent's method, you're now in the
position of having to know _how_ your parent implemented a
particular function, especially if the function affects internal
state variables. This again points to the general confusion that
exists between inheritance for specialization (List->Stack)
vs. inheritance for abstraction (Monster->Orc). Both are heavily
used, and very often a hierarchy will use both because C++ language
allows it and, once again, doesn't really say anything about it.
It's a huge language with no guidelines on practical usage.
> People are discovering that pure OO programming is not a panacea.
I think people are discovering that "OO programming" just isn't very
well defined. They've come to associate it with specific languages
or dogmas without really thinking about whether or not it actually
makes the given problem any simpler to solve.
> I personally > subclass quite rarely. Templates and the STL
> also make subclassing > both less neccessary and less useful
> than it had been.
While STL often seems convenient, the compile times are horrendous
and the opacity of the implementation makes debugging a royal pain.
I also dislike templates because your entire implementation is
wedged into a header file -- nothing like a 2 hour recompile when
you change your list implementation. Not to mention the code bloat.
And yes, there are hacks around these problems (e.g. casting
everything back to a void *) but once again, I find myself fighting
the language instead of it helping me.
The fact that books such as Meyers, Coplien, etc. exist -- and the
fact that the patterns they talk about are so damn obtuse half the
time -- has really turned me off. I have about 10 books on the C++
language, and only one on Obj-C, and yet the latter is smaller than
any of the former books and pretty much describes the language and
its usage clearly and concisely.
> IMO this is Java's primary failing. It's statically typed but
> dynamically bound.
Worst of both worlds =) I used to think Java was great, primarily
because I thought of it as a "better C++ than C++". It got rid of a
lot of the baggage that C++ had been carrying around (and the
addition of GC was huge). But when I finally started to really
understand why C++ was broken, it dawned on me that Java at its core
had the same fundamental flaws that C++ had.
> Smalltalk went the right way by making both dynamic.
Like I said -- way ahead of its time. The main reason
Obj-C/Smalltalk never really caught on is because of their
requirement of a run-time environment coupled with performance
worries. C++ always had the advantage because it could cleanly
generate binaries on any platform; had a handy front-end that was
portable (cfront); and kept pushing the false promises of
performance (no overhead if you didn't want it) and flexibility (do
it how YOU want to do it).
C programmers REALLY didn't want to use a language that they
perceived was slower, bigger and less flexible than C -- and when it
gets right down to it, C is about as fast, small and flexible as you
can get in a portable language. C++ addressed these concerns but in
the process delayed OOP by about 20 years =)
> C++ templates provide a similar feature to Smalltalk's typing but
> at compile time.
That's a mighty big "but". One of the things that makes Obj-C so
powerful, for example, is that types are first class objects. So
you can have a mutable array class (NSMutableArray) and just pass in
the type as a run-time argument instead of as a compile time
argument. I find this AMAZING. I mean, it's such a simple concept,
yet it makes such massive leaps in productivity and code clarity.
> Between this and optional dynamic binding through virtual
> functions, C++ can accomplish everything that Smalltalk can, but
> it's not always as strightforward.
The same could be said for assembler ;)
Brian - Spoofs Adam Martin
- Spoofs Adam Martin
- Spoofs Miroslav Silovic
- Spoofs Bobby Martin
- Spoofs Brian Hook
- Spoofs Daniel.Harman@barclayscapital.com
- research in online games Manuel Oliveira
- research in online games Travis Nixon
- How Many Developers Does It take to Screw in a Lightbulb? [Poll] Lee Sheldon
- in-game vs web-based boards (was: Geometric content generation) Bruce Mitchener
- in-game vs web-based boards (was: Geometric content generation) Koster, Raph
- in-game vs web-based boards (was: Geometric content generation) Vincent Archer
- in-game vs web-based boards (was: Geometric content generation) Bruce Mitchener
- in-game vs web-based boards (was: Geometric content generation) Robin Lee Powell
- in-game vs web-based boards (was: Geometric content generation) Daniel.Harman@barclayscapital.com
- in-game vs web-based boards (was: Geometric content generation) John Buehler
- in-game vs web-based boards (was: Geometric content generation) Daniel.Harman@barclayscapital.com
- in-game vs web-based boards (was: Geometric content generation) Koster, Raph
- in-game vs web-based boards (was: Geometric content generation) John Buehler
- in-game vs web-based boards (was: Geometric content generation) Bruce Mitchener
- in-game vs web-based boards (was: Geometric content generation) Daniel.Harman@barclayscapital.com
- in-game vs web-based boards (was: Geometric content generation) Steve {Bloo} Daniels
- in-game vs web-based boards (was: Geometric content generation) Daniel.Harman@barclayscapital.com
- in-game vs web-based boards (was: Geometric contentgeneration) Ola Fosheim Grøstad
- in-game vs web-based boards (was: Geometric content generation) Travis Nixon
- in-game vs web-based boards (was: Geometric content generation) Daniel.Harman@barclayscapital.com
- Fwd: [CLIENT-DEV] Software Packages for MOO Bruce Mitchener
- Portable Class C Christopher Allen
- Portable Class C Vincent Archer
- [Meta] Portable Class C Dominic J. Eidson
- RP in EQ? Matt Mihaly
- AO Mess Vincent Archer
- Lum the Mad is closing Valerio Santinelli
- Historic lessons on fluid identity Marian Griffith
- Historic lessons on fluid identity Matt Mihaly
- Historic lessons on fluid identity Marian Griffith
- Historic lessons on fluid identity Ola Fosheim Grøstad
- Historic lessons on fluid identity Matt Mihaly
- Historic lessons on fluid identity Marian Griffith
- Historic lessons on fluid identity Marc Bowden
- Historic lessons on fluid identity Jon Lambert
- Historic lessons on fluid identity John Buehler
- Historic lessons on fluid identity David Lindsey
- Historic lessons on fluid identity Matt Mihaly
- Lum the Mad is closing--sort of Koster, Raph