By Jonathan Corbet
December 5, 2007
Your editor recently reached a point where a replacement of his main
desktop system became imperative. The old one was showing certain signs of
hardware flakiness, coupled with a basic inability to run some of the
software your editor is trying to play with for a future article. Let's
just say that the grumpy editor was becoming more so than usual. But,
being a good US citizen, your editor knows how to deal with a bad mood: go
shopping. So it seemed like maybe a good time to put a bit of money where
the keyboard was and have a look at those Ubuntu-based systems being sold
by Dell.
That plan did not go too far, unfortunately; it would seem that those
systems, while seeming like nice boxes, contain NVIDIA graphics adapters.
Buying hardware which needs proprietary drivers was most emphatically
not on the agenda. Fortunately, it was not necessary to look too
far to find a no-system-installed box with integrated Intel graphics. Said
box is
now being used to write this article; the simple difference in noise levels
between this one and its predecessor is enough to make your editor almost
cheerful.
The Intel chipset in this box, as it turns out, is quite new, to the point
that not all distributions support it. But Fedora 8 was able to use
everything installed on this box from the very beginning, and some
early experiments showed that Ubuntu 7.10 was just as happy. Once upon a
time, full support for very-new hardware was a rare surprise. Now, one can
almost just take it for granted. This happy result comes from a
combination of factors:
- The hardware vendor (Intel) is strongly committed to shipping
free drivers for its products as soon as those products become
available. Your editor can now definitively say that this policy is
responsible for at least one sale for that vendor.
- The "new" (since 2005) kernel development model is strongly focused on
a short release cycle and getting code out to users quickly. Prior to
2.6.x, new kernel code could take years to get into an official stable
kernel release. Now three months is sufficient in many cases. So
Intel's drivers became immediately available with no need to hassle
with backports, driver disks, or other such inconveniences.
- Contemporary distributions, at least outside of the "enterprise"
category, have gotten very good at packaging, integrating, and
stabilizing leading-edge software. So those fresh kernels, along with
a lot of other goodies, end up in a supported distribution
surprisingly quickly.
The end result is that, increasingly often, things Just Work. It is hard
to get grumpy about that.
Of course, not everything Just Worked. Many years ago, your editor spent
some hours experimenting with the available bitmap fonts for X in the
search for the one which provided the optimal combination of information
density and readability. The resulting choice (one of the 75dpi Adobe Courier
fonts) served well for a long time, even as various components on the
desktop moved to more sophisticated font engines. In recent times, only
Emacs was still using that font. Emacs is an important part of your
editor's desktop, however, so this one remaining user was a crucial one.
That font vanished when the new system came in, with the result that editor
windows could no longer simultaneously fit into their assigned screen space
and provide highly readable text. Your editor became grumpy again.
What followed was a brief effort to figure out where the special font had
gone, and why it did not appear to render the same way even when the
requisite font files were brought over from the old system. But even your
editor, who can be somewhat slow on the uptake, eventually asked himself:
why, exactly, was it necessary to chase down bitmapped fonts from the early
1990's - fonts which he first used on a diskless Sun 3 system - in
2007?
In fact, it's not necessary to mess with those archaic fonts - as long as
one isn't tied to the concept of stable releases. Support for the Xft font library in
Emacs exists, and has for a while; here's a description in
a weblog entry from 2005. This support is, even, in the Emacs code
repository on Savannah. But it is not in the Emacs 22 release. It's
not even in the development trunk yet.
With a bit of digging, your editor found this page
which describes how to check out and build a version of Emacs with proper
font support. The results are striking. Here's what standard emacs looks
like:
And here is what the Xft-enabled version can do instead:
Your editor is wishing he had investigated this code some time ago; perhaps
it would not have been necessary to buy those new, stronger eyeglasses
after all.
Building crucial tools directly from development repositories brings a
certain thrill; it's part of the free software experience. This version of
Emacs has not, yet, exploded in real use. But, all of that
notwithstanding, there is something warm, fuzzy, and comforting about
getting things like text editors in a stable, supported form from one's
distributor. So one might well wonder: when are we likely to see
Emacs 23, which will contain the Xft support (along with a lot of
other things like proper Unicode support, the multi-term patches, etc.), in
a stable form?
The history here is not encouraging: the Emacs 22 release was five
years in the making. Richard Stallman, who still keeps a firm hand on
Emacs development, is famously averse to making guesses about release dates,
so there is little point in asking him when the next release might happen.
But it is worth noting that there has been no public discussion of release
timelines, or of any desire to tweak the process to get the next version
out in less than five years. There is some very nice code sitting in the
unicode-2 branch of the GNU Emacs repository; it has been there for a
while, but most users may well not see it before the end of this decade.
Different free software projects have different management styles, and
nobody would argue that things should be otherwise. Experience has shown
that each project needs to develop in its own way. But experience has also
shown, over quite a few years now, that confining useful code to
development repositories for years on end brings little benefit to anybody.
There is value in getting features into stable releases and out where
people can make use of them.
(
Log in to post comments)