October 20, 2004

Doing the GNUstep two-step

Author: Preston St. Pierre

GNUstep LiveCD is an implementation of NeXT Computer's OpenStep programming environment on a Morphix bootable CD base. The CD is currently at version 0.5, and its pre-release status shows. GNUstep LiveCD is buggy and ineffective as a development environment, and isn't yet ready for use in the real world.

I downloaded the GNUstep ISO and burned it to CD, inserted it in the drive, and rebooted. When it came up, my computer's LILO boot loader offering me my usual selection of boot options instead of booting from the CD. I checked the download's md5sum and burned another CD just in case. It still wouldn't boot properly. I then checked GNUstep's Web site, which claimed that some older BIOSes will not boot the CD, and said the only option was to use a diskette to boot. I didn't even have a diskette drive on my computer, but I found one in my closet and installed it, then purchased a package of new disks; it has been so long since I needed any that all my old ones were dead. This is a major problem with the GNUstep CD, and it seems the developers have simply dismissed it with an "It doesn't always work, here are the boot floppies" attitude.

Once I booted to CD (via diskette) I was greeted with the default window manager, WindowMaker, with a set of icons on the right. WindowMaker is quite possible the least like any other interface I have tried, and that's a problem. Differentiation is, of course, a good thing, and I am not saying that WindowMaker's interface is bad, but on a LiveCD, something unfamiliar is likely to be used no more than once or twice by people who don't know much about it. Using WindowMaker adds an unwelcome extra learning curve.

The shortcuts on the right of the screen were not arranged correctly when I booted with a 1600x1200 screen resolution, and some of the icons confused me. When I launched them, I found programs I would never expect to be on the desktop of a development LiveCD, such as the Squish Bill game. Such programs have no place even being on the CD, let alone being on the desktop. Another thing that made me wonder what the developers were thinking was having a shortcut to an address book program on a LiveCD at all, let alone on the desktop.

My first step before getting to work on any new system is to change the keymap. I can type on QWERTY, but I don't like it. Changing the layout to Dvorak was simple in the console, but I looked in vain for a way to change it in X. When I changed the config file and restarted X, the computer restarted itself. I visited the GNUstep IRC channel, where I received help almost instantly, but unfortunately nobody there had yet had a problem like mine and none of the people in the room could help me. I ended up stuck on QWERTY for the duration of the review.

What you get

The GNUstep environment itself is a useful tool, allowing you to create applications that are easily portable to other systems. GNUstep includes a large library of reusable code to help you build your application as quickly and painlessly as possible. I am using the GNUstep environment right now to create a 2D role-playing game. While it is only in pre-alpha stages, using the GNUstep environment has helped me see where I might have made the mistake of using a not so easily portable piece of code or library.

A good development environment must include several applications: 2D and 3D graphics editors, a good text editor, compilers galore, easy access to sync files via the network, and a way of getting help via a browser or chat. GNUstep LiveCD covers all of those areas, but not always well.

For instance, when I opened Blender to do my graphics work, the interface did not render properly. There were plenty of misplaced menus, semi-translucent selections, and discolored backgrounds. It was completely unusable. Wings3d ran slightly better. Though there were rendering problems with the interface, I was able to model and build a coffee cup within about an hour. (I'd never used Wings3d before; I found it easy to use.)

The GIMP 2.0 handles 2D graphics on the GNUstep LiveCD. The program worked as well as it ever does, and proved to be faster than I expected. I added a marble texture to my coffee cup and made a background for one of my new Web sites smoothly and easily.

My next step was to set up a way to work on my Web site. I enjoy using plain text editors, so I opened Ink, GNUstep's text editor. By default it wanted to save all my files in rich text format -- a poor design decision, as I don't know any programmer who uses rich text format by choice. The text editor had a built in spell checker, but a quick check proved that it didn't work, saying that it failed to load the English language dictionary. As a final surprise, the application's print preview function crashed the program.

The GWorkSpace file manager was also a fair change from what I am used to, but in this case it was a welcome change. I may download that file manager for personal use. It was easier to use than Nautilus, especially when I wanted to travel to a folder several directories above the one I was in. With conventional file managers I would have to go up through all the directories above the one I was in (or have multiple windows open at one time, which is unpleasant even at 1600x1200) and then select the one I want. In the GNUstep manager all I had to do was look to the left and select the folder -- easy, fast, and a definite improvement over the rest of the CD.

On the desktop, there were several helpful shortcuts to programs that developers need, such as an FTP client, a terminal, and an IRC client. The IRC client is not very aptly labeled (holding your mouse over the icon gets you a helpful "Talk Soup" instead of "IRC Client") but it worked well enough to get me connected to GNUstep's chat room. There were also compilers or interpreters for every language I thought to check, from all the GCC supported languages to Perl, PHP, and Python.

Though my remarks about the LiveCD may seem overly critical, I love the GNUstep development environment itself and have it installed on my desktop system. The CD, however, needs work. While the LiveCD environment has potential, it is clearly in the beta stage right now, and there isn't enough of a user base to promote traditional rapid open source development. If you are a programmer and looking for a good development environment, my advice is to try the GNUstep LiveCD and report -- or fix -- every bug you find.

Preston St. Pierre is a computer information systems student at the University of the Fraser Valley. Visit www.madpenguin.org to see some of his other work.

Click Here!