Moritz 'Morty' Str=FCbe spake unto us the following wisdom:
> > I'm surprised nobody else has asked... what on earth are you doing
> > that requires 10000 people in a chat?
> Isn't trying out whether it works reason enaugh? ;-)
Well, *every* algorithm has its breaking point, and there is a tension
between writing clean and understandable code, and making things more
efficient. Often both goals can be realized in parallel for some
time, but at a certain point one must sacrifice one to gain the other
(if indeed any progress can be made at all). Thus, one often writes
code (and plans to use code) for the expected case, knowing that
another load may be too much.
In this case, virtually all of our structures are simple linked lists,
because this is what GtkTreeView understands. Updates are processed
as they arrive, rather than being batched in some fashion. Handling
10,000 buddies gracefully in real-time may be beyond a simple linked
list. Either batching or a more complex data structure would serve to
complicate the code (particularly in view of the fact that the more
complicated structure would have to be reduced to a list for
presentation to the GtkTreeView) and make understanding more
So, no, just to see if it works isn't necessarily reason enough to
*change* anything. On the other hand, a real use case probably is.
The laws that forbid the carrying of arms are laws [that have no remedy
for evils]. They disarm only those who are neither inclined nor
determined to commit crimes.
-- Cesare Beccaria, "On Crimes and Punishments", 1764