Sunday, May 08, 2005

The Big Ball of Mud

After writing that I didn't want CheckerBoard to become bloatware like so many other programs, I wondered whether there was a formal definition of bloatware. Wikipedia is a fantastic online encyclopedia, free for all to use (and to improve!) - and indeed there was a chapter on bloatware in Wikipedia. Reading through the article and following some links I can now improve on my old code posting: Wikipedia has a comprehensive list of bad programming practices, and I found a lot of things I was guilty of! The top problem of CheckerBoard is that it is a big ball of mud. Related problems are lava flow, procedural code, action at a distance and accumulate and fire. Read the articles and have a good laugh imagining me wading in my big ball of mud :-)

2 comments:

Nelson Castillo said...

The wikipedia rocks.

And the wikipedia pages you linked are fun :)

I can imagine a big ball of mud. Isn't most of it related to the interface?

Martin Fierz said...

Hi Nelson,

you are right, most of it is related to the interface. If Cake was a big ball of mud, it probably wouldn't play as well as it does :-)
I never liked programming CB, it is more a tool for using Cake, which I need to have. In that sense, I have always neglected it a bit, which is one of the reasons why it is a big ball of mud. I'm trying to clean it up now, but it's really hard once a program is in such a state! I'm removing global variables, trying to remove "extern" keywords and breaking things down in smaller functions. The road is long...