AbiWord: Open Source's Answer to Microsoft Wordby Howard Wen
Tired of putting up with Microsoft Word's bloated file size and price, but still need to deal with documents in Word format? Then you should take a serious look at AbiWord. This open source word processor is able to read and write most documents in Word's *.doc file format. (AbiWord does this by incorporating the wv library into its code.)
KWord and Writer, the word processor in OpenOffice, are also open source and capable of opening and saving text files as Word documents. But what sets AbiWord apart is its user interface, which feels quite similar to Microsoft's popular word processor (unlike Writer and KWord) and is available for the Win32 platform (unlike KWord). There are also versions of AbiWord for Linux/GTK, BeOS, BSD, QNX, and Unix, making it the open source word processor that runs on the most number of operating systems. (AbiWord for Mac OS X is presently in the works.)
This isn't a word processor that's been stripped down to the bare essentials, like a simple text editor. Although the AbiWord development team is currently working towards their milestone Version 1.0, the beta releases already come with a number of useful features: support for plug-ins and scripts, a spell checker, 2- and 3-column text formatting, and image importing. For other languages besides English, multilingual spell checking is in place, as is bidirectional text for languages that are written from right to left.
The key to an IPO
AbiWord began in early 1998 as the first project of a software contracting firm, SourceGear Corporation, which was shifting its focus to work on open source projects under a new company name, AbiSource. The hope was that AbiWord would help launch the company into an IPO, which was happening to a lot of Linux-based startups at the time -- but that didn't happen for AbiSource. "I incorrectly predicted that AbiSource would be one of those IPOs," says Eric Sink, 33 years old, from Champaign, Illinois, who is the CEO of SourceGear. "We launched AbiWord with the intent of becoming a major player in the world of open source."
AbiSource's original plan was to create an entire open source office suite, called AbiSuite, and Sink, along with two others at the company, Paul Rohr and Jeff Hostetler, developed an extensive application framework towards this purpose. AbiWord was the first product in the suite to be developed, and it's the only application that ever really took form. AbiSource was very enthusiastic about AbiWord initially, but after their IPO dreams failed to materialize, the company lost interest in the project and went back to the SourceGear name.
AbiWord's continued evolution then became dependent upon an open source community of volunteers. Over 200 people have contributed to its development since its start. Nowadays, there are around twenty active contributors.
"I would say that the current AbiWord team still has a good relationship with [SourceGear]," says Jared Davis, a 20-year-old Computer Science and Math student at the University of Nebraska at Omaha. He maintains the AbiWord Web site and is developing a thesaurus that will go into a future release of the word processor. "My personal opinion is that SourceGear was wonderful for AbiWord. They were taking AbiWord to conferences like LinuxWorld, giving presentations on [its] cross-platform development, and so on. They provided a lot of the introductory scaffolding that the project is built on."
AbiWord's developers have found surprisingly little difficulty in assembling enough public and open technologies to create AbiWord. Sink says most of the work needed has simply involved "cloning stuff that has already been done by somebody else. Word processors are, in fact, rather well understood, but the number of people who have that understanding is rather small."
The biggest technical hurdle for the team is not specific to word processors: putting AbiWord onto multiple operating systems and making each version work virtually identically to the others. Sink learned how to develop cross-platform applications when he worked for Spyglass, and he used that experience to build the framework that would enable AbiWord's code to migrate across operating systems.
"Is anything harder than [developing] a cross-platform word processor? Good text-layout engines are very hard [to develop]. Font handling is hard. Screen updates are hard," explains Sink. Trying to pull off all of these things across several different graphic subsystems is enormously difficult to do. He credits the open source model for making it easier to get AbiWord onto multiple platforms at once.
"I don't think that AbiWord was ever intended to be a revolutionary technology. So, we really haven't created any particularly unique technologies," says Davis. Instead, the team focused on making good, intelligent choices early on that would help them in the future: designing a solid, extensible import/export architecture; establishing XML as AbiWord's native file format; and committing themselves to making the program cross-platform. Davis points out that "these are not new ideas. They're just implementations of ideas that have been well developed in the past."
Aping Microsoft Word
AbiWord's functionality and interface are awfully similar to Word's. So has there been a conscious effort to make AbiWord an open source version of Word? "From the beginning, Word was the target," admits Sink.
The reason behind cloning the look and feel of this Microsoft cash cow is that computer users are most familiar with it, as opposed to other commercially sold word processors. This conscious effort is meant to make AbiWord appealing to use. "There's definitely a realization that a lot of people know how to use Word already, so it makes sense to have AbiWord behave like Word some of the time," says Davis.
However, the AbiWord team doesn't want AbiWord to become bloated with features that most users don't bother to use. With this in mind, they've managed to keep the current Windows version down to a 4.4MB download.
"People don't care about [program slimness] that much anymore, but we still consider it an achievement," says Sink. He adds that there's a benefit to cutting down the fat in the code: "The smaller size has allowed AbiWord to contemplate sub-desktop environments that Word could never fit into."
Davis sums up the AbiWord team's design strategy as "more of a 'picking and choosing' what we like from Word, rather than trying to reimplement the entire product as a whole."
This doesn't mean that AbiWord's development is limited to only the features that Word has. For example, AbiWord was the first word processor to save documents as XML files. It can export documents to LaTeX and DocBook formats, but the present version of Word (the 2002/XP edition) isn't able to do this. Future versions of AbiWord will also include vi/emacs bindings, something that will probably never be seen in Word since it's a feature of interest to programmers rather than casual users of a word processor.
Version 1.0 and beyond
The biggest issue now for the AbiWord team is AbiWord's lack of support for tables. The program can import a document with tables, but it's unable to render the tables correctly. Implementing table support is going to require a rewrite of the entire layout engine.
"AbiWord needs tables in order to be taken seriously by any substantial user base," says Sink. "Unfortunately, tables are a post-1.0 feature. The team right now is focused on finishing 1.0, and then the priority is tables."
Other goals they want to meet beyond 1.0 are to have a Mac version, importing of more image formats, and, possibly in the longer term, a grammar checker.
In the meantime, based on its recent beta releases, AbiWord 1.0 should be a very stable and usable program for those who need to write letters, memos, reports, and papers (and Web articles like this one, which was completely written on AbiWord). While users' expectations should be realistic, this open source Word clone's clean, easy-to-use interface already meets its development team's most important reason for continuing to develop and refine it:
"We see AbiWord as the word processor for everyone," says Hubert Figuiere, a 26-year-old Unix system engineer in Lille, France, who is working on the Unix and Mac OS X versions of AbiWord. "Not as a thing that you find everywhere, but as something that can be used by anybody."
Return to the Linux DevCenter.