There are no new ideas

You don’t often see young MUD coders learning about what’s out there before they sit down to write their own codebase. I first wrote that line several weeks ago. For the past few days, the DGD mailing list has been swamped with email from a fellow who has decided that the existing codebases for DGD are too complicated and intricate to bother understanding, so he’ll write his own that works better. He seems to be a quite decent coder, yet he uses that reasoning. Am I the only one who sees that as a fundamental contradiction?

New programmers set out to solve problems, to write a grand new codebase, and that’s wonderful. But why do they read through only a little documentation, and only two or three existing codebases at most?

I believe that the very biggest reason is a lack of existing literate coders. The various MUD camps (MUCK/MUSH/MOO, Diku/Merc/Rom, LP*) don’t mingle much, and few people know a reasonable amount about more than one of them. It’s hard to become literate in existing MUDs if you have no role models, no overviews and surveys, no people who can answer broad questions like “has anybody ever tried this before on a large scale?”. It’s hard to become a literate coder in a vacuum, having nobody to compare notes with. The lack of decent programming documentation for any existing MUD doesn’t help. Reading source code takes a lot of time and effort, and few new coders understand just how important it is. So few of them bother to do it.

At this point, it’s obligatory to mention brash young programmers, considering themselves cowboys, who are going to revolutionize the world of MUDs all by themselves, and how they start over not because the existing code is bad, and not because they know nothing about it, but because that’s their way.

Balderdash. I’ve gone to school with those brash young programmers, worked jobs next to them, trained them in programming, worked with them on open source projects in 3D graphics and 3D modeling… MUD programmers aren’t all that different a breed. They’re just in a deceptively easy-looking discipline and have nobody really impressive to compete against. They are neither good software engineers (who is, when they start?) nor awed. They believe they can do everything that the existing codebases can do, given enough time. And sadly, they’re mostly right. At least, if they had a decade going spare.


3 comments so far

  1. Richard on

    Why don’t new coders read through more than a little documentation and perhaps two or three code bases?

    What good would it do, even if they read through more? Can they really appreciate what the author thought these things had to offer? Isn’t this just tedious work of little value, where the new coder has to judge the good design decisions from the bad and slog through a messy heap of code of arbitrary quality?

    Is the new coder really placed to recognise what might be worth learning from at that point in their efforts? I wonder if it isn’t rather a sentiment driven by a long-time MUD developer having toiled away, and wanting their efforts to be recognised.. whether their efforts warrant it or not.

    If someone has the mindset to make something, then I think they will regardless of whether they use an existing code-base or not. Someone who procrastinates and muddles around whether worthlessly, or experimenting, or whatever.. will probably do the same regardless of whether they use a new code-base or not.

  2. Geoff on

    As a young MUD coder (many years ago) with very little discipline and a modicum of programming experience, I distinctly remember that the allure of getting my hands dirty in the short run far-overwhelmed my long-term desire to become more knowledgeable of the various mud code bases and prior attempts.

    I think that around that age of 18-24, there is an overwhelming urge to just “make stuff”. That urge slowly dwindles in the late 20’s – early 30’s. Or at least, that has been my experience.

  3. georgek on

    Here’s my take on it. There are always going to be prolific developers who will produce more in a shorter amount of time than 90% of the rest who are tinkering on mud code. However, code literacy is a separate issue.

    I don’t think the analogy is perfect but it’s similar to young writers who have never read any decent fiction. The chances of them writing something good are smaller than someone who has read good work. Reading good work does not mean they won’t have to spend time in the trenches getting their hands dirty and probably writing some bad stuff. But reading that work is critical to developing an idea of what is ‘good’ in the first place.

    It’s not just about reading code though. A mud developer is a game designer too, so ‘reading games’ is just as necessary. Someone uneducated in games is likely to be a poor game designer. When you look at a codebase you’re not just looking at code (well, I should say when you look at a small proportion of available muds). You’re looking at a game’s design. This study should provoke questions about why the mud’s author made the decisions they did. These questions should lead to the new developer forming opinions about what they think is good and bad or simply their taste.

    Richard, I think judging good design decisions from bad is absolutely a critical part in becoming a better developer, though that doesn’t happen in a vacuum. The new developer needs to be equipped with the tools to make those critical judgements.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: