Product Image: Serpentine
My rating: 4 out of 5

I’ve been using Linux for at least four years, a little more if you count the early uses I made of it as a server operating system back in high school. Over the years I’ve come to realize that a little redundancy is par for the course in the Linux world. For any feature you can imagine, there are at least five applications that provide that feature in one way or another. Recording CD and DVD disks is no exception. Gtoaster, Xcdroast, Graveman, Gnomebaker, even the command-line cdrtools. Occasionally however, an application comes along that makes you delete all your other apps as entirely obsolete in one release. Serpentine is that kind of application.

From the start, the interface is simple. No more information than the user needs. The most basic functions are big, obvious buttons on a prominent toolbar; clearly captioned, single-purpose buttons. The widgets are logically laid-out, and an intuitive widget displaying a disc filling with data makes the process crystal clear. The new paradigm in GNOME development is that software “Just Works.” Serpentine does exactly that, it works without all the bells and whistles of some other programs that often don’t work at all: spitting out coasters or worse.

The other notable feature is that it uses the Gstreamer media framework which means that any format that Gstreamer can decode and play, Serpentine can decode and record to CD. In case you were wondering, Gstreamer can decode anything.

“So,” you ask, “why only a four out of five?” Well, while I have nothing against Python programs in and of themselves, Python is a fast-moving target and python applications are extremely susceptible to bit-rot if they’re not under development. Serpentine is written in Python, which could bog down slower systems. Also, on Gentoo at least, there are a few dependency issues that are difficult to resolve if you’re not aware of them.

Finally a key functionality seems to be missing and that’s a drag-and-drop functionality with the otherwise very sensibly designed interface. I’m not terribly annoyed by this, since I know catching and handling with drag-and-drop signals with callbacks can be troublesome. Other CDR applications have implemented this though, so the code is out there and probably not too difficult to adapt. This small shortcoming is still not enough to drive Serpentine out of the software that I anticipate using on a regular basis. A hearty congratulations goes out to all the developers. Serpentine is a fine product that filled a need in Linux software that has long been inadequately met.