Temporarily escaped the .NET only to roll in the MUD

Jun 18, 2008 13:07

C#, MonoDevelop, and IronPython
I'm slowly crawling through C# 3.0 in a Nutshell. I think reading speed decreases roughly linearly with time already spent reading, at least when it comes to reference material. I had installed Mono through MacPorts, but I really shouldn't have bothered. The Mono site itself has a more Mac-friendly and better package of precompiled binaries available directly, including their IDE, MonoDevelop.

When I first fired up MonoDevelop, I was impressed: it didn't look like a Mac application, yes, but it was snappy. This is a sharp contrast to Eclipse, which runs like a dog on my laptop, to the point that I find it unusable. On closer examination, I was disappointed: the GUI designer, Stetic, that was touted on the Wikipedia page for MonoDevelop as well as by MonoDevelop's site itself was nowhere to be found! To me, it's really in graphics that an IDE can distinguish itself. It might come with better editing support out of the box - no need to write my own make (or, I guess here, nant) scripts, built in interface to the debugger - but, until it starts doing something clever with the fact that it's got a truly graphical interface, it's not much beyond what I can do with vim. And vim is a snappy little bugger on every machine I've ever used.

This lack was mentioned nowhere except some Mono forum postings, so I edited the Wikipedia page on MonoDevelop to add a new section on its support for non-Linux platforms. Stetic isn't shipped on Mac OS because GTK doesn't yet have working drag-and-drop in its Mac OS native incarnation, and drag-and-drop is kind of essential to a process that consists in dragging widgets and dropping them into place on a window. A good reason, but it would be nice for the documentation to mention this somewhere, anywhere.

Now that I'm getting past the part on C# and more into the part on the .NET framework, writing throwaway C# programs and then compiling and running is getting in the way of simply exploring the framework, so I grabbed IronPython. I'm still amazed whenever I manage to run a .exe on my Mac, but ipy.exe worked out of the box. Not without problems - hitting backspace gives me a visual display of control characters rather than actually backspacing, and hitting the up arrow key to move back in the command history after I've used System.Console.Clear() actually moves me up a line and starts writing over the already used part of the buffer, which gets really hard to read, it can take it a while to realize that some operation is not supported or not implemented, and the clr.AddReferenceByPartialName('blah') trick to get access to, say, System.Xml took some searching - but it's usable and makes playing around with things a lot easier, though there is something of a mismatch between reading about doing stuff using C# and doing it with IronPython.

A Tch of Mudding
When I lay down last night, I had fantastic thoughts going through my head in MUD-style, and since I couldn't sleep, I figured, what the hell. So I made one last stab at finding a decent Mac OS X MUD client, ended up with Atlantis (::shrug:: it's no Zmud), and logged in a bit as guest on MuddyWaters. It's been about, oh, six to seven years since I really played; it looks like they're going through record lows in the number of players. A good number of the people who were wizards back then are still wizards of some sort now, though some new names have moved pretty high up in the hierarchy.

The wizards, for those unfamiliar with this sort of thing, are the ones coding the world; since this is an LP MUD, it's actually coding, too, not just filling in forms, which seemed to me to be the entire act of world creation in Circle MUDs and Diku MUDs and the like. LP MUDs are named after their creator, Lars Pensjö, as is LPC, the language the elements of the MUD's world are programmed in. LPC is a (normally interpreted) variant of C that adds a prototype model for objects, like JavaScript, using a strictly 1:1 file-object relationship (the name of the object in /dir/foo.c is /dir/foo), as well as support for maps (associative arrays, dictionaries, whatever else you might call them) and dynamic typing in the form of a mixed type.

Anyway, the wizards might still be active, but the players mostly aren't. The most I think I ever saw on was twenty, but frequently even back then, you'd find only five to ten. Now, it's more like one to five. I'd attribute the decline to the fact that there are a ton of MUDs out there, LP MUDs tend to be harder to get started playing than other sorts because they are more individual and have more ways to be difficult than just throwing strong mobs at someone with low stats, skills, and crappy eq. Also, many of the people who would be playing MUDs, and many more who would never have considered playing MUDs, are now playing the graphical MMORPGs that are available today, such as World of Warcraft. I'm afraid Muddy Waters might be on its way out: sad, but I don't think I'll be there to prop it up, either.

monodevelop, mudding, .net, ironpython, muddy waters

Previous post Next post
Up