A Sneak Peek at Nautilus from Eazel

By: Michael Hall
Friday, September 8, 2000 11:30:50 AM EST
URL: http://www.linuxplanet.com/linuxplanet/previews/2285/1/

GNOME, Eazel, and the Creative Process

For the past two years, the GNOME project has been a fascinating project to watch. From the initial releases, which left some wishing its developers had stopped with its flexible and versatile panel, to the latest series of developments toward a comprehensive application and desktop environment, GNOME has moved, sometimes erratically, from "near unusable mess" to "project with potential" to a reasonable choice for the average Linux user's desktop.

Ease of installation has been aided by Helix Code's splashy and simple installer program, and the problematic lack of an advanced mail client is being addressed by the upcoming release of the Evolution mailer and PIM.

One of the problems the project seemingly deferred for the length of its existence, though, even as it overcame serious stability issues, was the file manager--a graphical and GNOMEified adaptation of the venerable Midnight Commander (GMC). Though GMC is usable, it has met with complaints about its general accessibility, and there are points where it's fairly difficult to perform some basic tasks with it.

GMC's problems haven't been unknown to GNOME's developers, and plans have been in place for some time to eventually replace it. That's where startup Eazel comes in.

Eazel, as most are aware by now, was founded by Andy Hertzfeld, formerly of Apple. Several of Eazel's founding members were on the original Macintosh design team, and bring with them decades of work in user interface design.

Eazel's entry into the GNOME project has represented an interesting case study in the meeting of disparate cultures. Where the Macintosh's interface design was disciplined and focused, GNOME's development trajectory has been seemingly erratic, with accusations of usability being at the bottom of the list of the designers' priorities. Some of these accusations are misplaced: the GNOME project has a team that works on interface issues. On the other hand, there are still some problematic inconsistencies that crop up even though the quality of the overall project has improved steadily, and it's clear that Eazel has a lot to offer the project in this area.

Eazel's Nautilus, a file manager, will be part of the upcoming October release of GNOME 1.4. This newest GNOME release will represent a stepping stone between the 1.x releases and next year's 2.0. The presence of Nautilus, Evolution, and Bonobo will be the most distinguishing features of this intermediate release.

Darin Adler, whose position with Eazel is described by the company's publicists as roughly that of Vice President of Software Engineering, took some time to discuss his involvement with Nautilus with us, providing some perspective on what it's like to work alongside the GNOME team as well as some of the considerations that went into Eazel's decision to take up the task of enhancing GNOME.

Adler, like many working at Eazel, has roots deep in Macintosh history. He was the technical lead for Apple's System 7 release, and he brings nearly 25 years of programming (including some time with UNIX) to the table.

The Eazel Concept

The Nautilus file manager is just one part of the Eazel plan for the Linux desktop. The company is taking a two-pronged approach to making Linux an attractive choice for desktop users. Eazel won't be depending on software sales, for instance, to provide revenue as it contributes to the Linux community.

"When it's software that needs to be added, we'll make free software," Adler says. "When it's services, we'll make services that involve Eazel, and that gives us an opportunity to make money."

Adler sees Eazel's future projects as involving a continual reassessment of where Linux lags in usability and desirability to the average desktop user.

"I see this as an iterative process," he says. "We're going to keep doing more work on the areas that prevent people from choosing Linux as their desktop."

Current services Eazel intends to offer include a software inventory system that provides an easy way to remain up-to-date on available packages, as well as a web-based storage service. According to Adler, other services are in the works but won't be part of the initial outlay provided by Eazel.

Early Choices

According to Adler, picking GNOME as the Linux desktop project was a relatively quick decision, despite the existence of another well-developed Linux desktop project: KDE.

"It was definitely dependent on initial conditions," he says, noting that "the main issue for us wasn't making the right choice or the wrong choice. The main point was getting moving building something."

The decision was made easier at the time by the uncertainty the Eazel team had over the now largely resolved questions regarding the license of KDE's foundation: Trolltech's Qt toolkit.

"The last thing we wanted to do was build something that turned out not to be free software," says Adler.

On the other hand, Eazel's programmers were extremely comfortable with their use of C++, and even with the licensing issues, Adler notes that there was some concern that the company might have fit better with KDE.

Eazel was only warily accepted by the core of the GNOME community at first. According to Adler, concerns existed within the GNOME community about Eazel's long-term commitment to the project, and how maintainable any code they produced would be should other GNOME programmers need to finish the work they'd started.

"There was a lot of pressure from the other folks in the GNOME project to do things in a way that matched the core GNOME pieces. This wasn't going to be just another module, this was going to be a part of the core GNOME...they convinced us to code in C, and they also convinced us to pick up the work someone else (Elliot Lee of Red Hat) had already started."

The issues were ultimately resolved with Eazel's decision to switch tracks in programming choices to conform more with the existing project "We really wanted to be a part of the community, not some sort of rebel faction."

Adler also observes that the early conflicts between Eazel's programmers and members of the GNOME community are periodically distorted in terms of their importance:

"People are always looking for conflict. That was a pretty short episode, very early in development," he says.

He characterizes current rumored conflicts between several key players in the GNOME community as being less centered around project-endangering differences, and more around day-to-day conflicts that arise in most software projects. His attitude toward his work with the GNOME community reflects his belief that the initial period of mutual uncertainty is over:

"It's a total joy to work on this project," Adler says. "We hope we're setting an example by doing the work out in the open."

Coding in a Dynamic Environment: Working with GNOME, Working with Linux

One of the hallmarks of the GNOME project has been its rapid and continual development pace. Users who have followed the environment from its earliest days have been alternately treated to or felt hassled by the ever-evolving GNOME landscape, which has involved development not only of the components of the desktop themselves, but core libraries and other packages designed to provide support.

According to Adler, this rapidity has caused a few "stresses and strains" among the various groups coding for GNOME. Currently, for instance, though the project is moving toward an October release of version 1.4, work is already being done for libraries and packages that will form crucial parts of version 2.0, scheduled for next year.

"If you just look at CVS, there's no way to tell whether you're looking at the pieces of GNOME 1 or GNOME 2," says Adler, which he points out makes communication and coordination between the developers of all the various elements of the project that much more important.

Some of this overlap causes contention. According to Adler, "Everyone wants the one package they're working on to be an exception" to the current release schedule.

"Part of what's good about the GNOME foundation, even though it just looks like a set of companies, is that it also provides a way to formalize the way the hackers make decisions," he says.

Despite the organization offered by the GNOME Foundation, though, Adler notes that some broader issues seem to elude the Open Source community from time to time:

"There's a lot of delusion about quality and testing," he asserts despite what he refers to as his own marginal past advocacy of quality assurance testing, adding "I find myself feeling like a testing advocate all the time, now."

Despite this, though, he believes Nautilus will set a new standard among Open Source projects when it's released in October:

"I think that [testing] is something we'll do pretty well. People will be amazed at how good the quality of the product is."

Working well with the GNOME community isn't the only issue faced by Eazel's programmers. The variety of distributions and tools available for Linux make for some standardization challenges. The system update components of the services Eazel will be offering, for instance, will have to work well with a variety of packaging methods, such as Red Hat's RPM and Debian's dpkg systems.

Due to its popularity, the programmers at Eazel are using Red Hat 6.2 as a reference platform for their work, but Adler says confronting the wide variety of available configurations will be something Eazel will have to face:

"In the future, I think we're going to have to look for a way to abstract the package system much in the same way we've abstracted the file system," he allows. In addition, he notes that the diversity found in other areas of Linux distributions presents a daily challenge:

"We try to get weirdnesses out of our code as much as possible, when we discover we've accidentally done something distribution-specific, we try to 'unweird it.'"

Adler describes Eazel's role as developers within the broader Linux community as "good citizens" who are disinterested in seeing any particular flavor of Linux, or even specific Linux tool, rise to dominance at the expense of others.

Building the Perfect Interface

One of the real challenges in interface design is arriving at a reasonable interpretation of "usable." Desktop users have spent the last decade with the general dichotomy of "Mac vs. Windows," with Microsoft undergoing profound changes in interface design several times. UNIX desktop users have weathered the CDE interface as well as the current potpourri of window managers and desktop environments.

Sorting out the truly "usable" from conventions formed from habit and simple market momentum can become a troubling issue as designers are faced with determining the difference between "good" and "popular." Adler acknowledges the difficulties this presents:

"This is a very difficult challenge. There's the combination of the most widely used interface in the world, which is what Microsoft came up with...then there's the fact that a lot of us are used to Macintosh systems, and the fact that the acknowledged best design in some areas happens to be on Macintosh."

One area in which the sorts of compromises the team has made shows is in the absence of the humble cut-and-paste function, native to Windows 9x interfaces but absent from the Mac GUI, which focuses more on the idea of 'moving' a file than temporarily copying it to a buffer for replacement elsewhere in the file system.

"The more you're used to Windows, the more you think that's a very natural and important feature," allows Adler.

On the other hand, he goes on, "there are lots of things that aren't in Nautilus 1.0 that are present in other file managers. We're not trying to be the union of every file manager."

Adler points to the Eazel team's lengthy experience in interface design to buttress his claims that they're on the right track, though, pointing out that they've had experience in building user interfaces from the ground up:

"One thing that's different from us and a lot of the Linux hackers is that on our team we have a lot of people with a lot experience coming up with user interfaces without any prior example," he says. "So we're used to inventing user interfaces. A lot of times, where someone else will say, 'What should I use'...what they had on Windows or what they had on Mac, what we think is "Let's find something that works."

This hasn't always made the design process simple, though:

"It's hard to decide how much to copy and borrow, how much to invent, and how to make it all consistent. The project doesn't exist in isolation. This is an issue for the whole GNOME project. We don't want to make Nautilus this weirdo program that's different from the rest of the system.

"We really feel like something we've barely started on is helping ratchet up the whole community into understanding how to do better user interfaces," says Adler.

In the end, Adler's attitude is positive toward the future of the Linux desktop, and he wryly notes that the onlu direction numbers of Linux desktop users can go is up:

"Right now, the numbers are so small, there's huge room for improvement. They're small for a reason. The software doesn't have the properties that would make it nice for the desktop, to make it an obvious choice. It's not going to take revolutionary work. It's going to take crossing some t's and dotting some i's. Some of the revolutionary work we do will not only make it possible, but compelling."

Looking at Nautilus

The initial preview release of Nautilus was only recently made. Compiling the project from scratch at this point is still a tricky process, requiring CVS versions of many of the packages involved. Adler acknowledged the difficulty of keeping up with the project on a casual basis, pointing out that several of the core libraries are in nearly constant development.

The preview release, though, is a binary tarball or RPM with fairly easy-to-follow instructions that make it possible to get at least a glimpse of the file manager. The preview release is available from the Eazel Nautilus website.

For purposes of this preview, we used a binary release packaged for Debian by one of the coders working on Nautilus. Commenting on the project's stability is pointless at this stage in the process: the Nautilus team put their efforts up not to provide a day-to-day file manager, but to give the community at large a chance to see what their efforts are leading up to. Our experience over several days ranged from being unable to keep it running for more than a minute to leaving it up and being able to look into various features for several hours.

When run, Nautilus presents a relatively simple two-paned view of the user's home directory. The left pane has several tabs which allow for several functions:

Users can select a tree view of the entire file system, a notepad area, which allows for comments to be typed in and attached to individual files or directories, a file history that shows the most recently accessed files, and a help tree. The help tree presents GNU info files in hypertext, and also renders man pages.

There's a Web search tool built in to the sidebar, which allows access to many common search engines and renders the results of the search in the main window in HTML as they'd appear in any browser. The search engines available run the gamut from AltaVista and Google to Slashdot's own search page and Sunsite's collection of IETF RFC's. Nautilus renders the presented HTML competently, but also presents a menu allowing users to open the results in Netscape, Lynx, or their designated text editor.

When not being utilized by one of the sidebar tools, the right pane presents a file view that bears some resemblance to the existing GNOME Midnight Commander with a few exceptions. Most noticeably, graphics files such as PNG's and jpegs are rendered as preview thumbnails.

The tools for manipulating the view of the directory in use are more evident than they are in GMC. In addition to the standard 'icon view' and 'list view', users can select varying zoom levels for their view of the directory. The zoom level last selected for each view type is preserved, as well, allowing for a nice level of added customization.

A pulldown menu offers the choice to view the contents of a directory as music, which presents a list of all the MP3's in a given directory and an MP3 player widget that allows users to play files directly from the file manager.

Tar files and similar file archives are supposed to be supported for browsing, but we didn't have as much luck getting Nautilus to view these files as we did with some RPM's we had on hand. The file manager is able to deal directly with binary packages. Clicking on a package allows the user to view the complete name of the package and some additional information. It also provides a button to install the package on demand. Features like this are common throughout the Nautilus interface, presenting users with a logical set of applications they might want to use on a given file.

For instance, single-clicking on the thumbnail preview of a PNG file causes the sidebar to present a choice of editing the file with the GIMP, opening it with the GNOME file viewer EOG, or choosing an action as yet unspecified to the system.

A file search tool is built in to the basic tool bars, and has simple, plain-English parameters that allow for searching based on file names or contents. An accompanying web search button invokes the Google search engine in the main window.

There are some nice touches that aren't quite as obvious as the immediate options, as well. The file history dropdown provides a thumbnail image of the files most recently accessed, and it also allows previous web searches to be repeated without retyping the query.

Files may also be labeled with a set of emblems. The emblems appear just above a labeled files regular icon, and provide useful hints for prioritizing files, marking draft copies, or otherwise highlighting documents that might otherwise get lost in the shuffle of a cluttered directory. If the default set isn't enough, users can add their own using common graphics files.

Nautilus also promises to be fairly customizable for end users. A basic set of themes are provided, allowing for general manipulation of the appearance of the browser. Palettes of colors and patterns also allow users to drag-and-drop their customizations onto specific display elements.

Though we weren't able to determine much difference, Nautilus provides for three levels of user expertise: novice, intermediate, and expert. Novice users are kept from making customizations to the interface such as tweaking settings that allow for thumbnails to be displayed at higher resolutions or determining whether displayed images can be previewed if they're on remote filesystems.

Concluding Notes

If our walk through Nautilus seems less than complete, that's because it's still a tough package to evaluate fairly for day-to-day use. As mentioned, we experienced stability issues from time to time even when using the official preview release and not the developers' binaries we've been tracking.

On the other hand, there's a lot to like. We were impressed with the flexibility offered in simple file display, and felt like the provided cues to users in terms of options for handling each file will likely be helpful for novices without making experienced users feel like their interface is being cluttered with excessive hand-holding.

The convenience features found in the sidebar can be turned off, which is something for which we're grateful: Nautilus' functionality as a basic file manager won't be impeded by their absence if users choose that.

The real goal of projects like GNOME, though, isn't as much in pleasing experienced users as it is in providing an easy point of entry for newer users. It's understood that Linux veterans have probably customized their X experience to their liking without the sort of iconized, point-and-click simplicity it's believed Windows and Mac users prefer.

As a basic resource for manipulating their computing environment, we believe Nautilus will provide an excellent tool for novice users. Experienced users might not care if they can easily install a package from their file manager, but by having a tool on hand that not only reminds the newbie of what an RPM is, but offers an immediate option for its use, Nautilus is providing a bridge into the uncharted waters Linux represents to new users. Similar "instant results" features abound in Nautilus, all providing an opportunity for novices to learn by doing without offering many hazards.

Once coupled with Eazel's planned services, we believe the Nautilus/GNOME combination will provide yet another strong argument for Linux on the desktop. That's a fight that's being waged in more areas than file managers and desktop environments, and GNOME is hardly the only game in town, but we're eager to see this project in day-to-day use.

Copyright Jupitermedia Corp. All Rights Reserved.