History of NeoOffice and OpenOffice.org: NeoOffice

From NeoWiki

Jump to: navigation, search

This overview and history consists of several pages. Click on the links in the box to the right to move to the previous or next section.

Contents

Neolithic Office for Java™ (NeoOffice®/J and NeoOffice®)

In June of 2003, Patrick Luby, the lead developer on Sun’s old Mac OS X port of StarOffice™, introduced what was then known as NeoOffice®/J, a second project under the NeoOffice.org umbrella (beginning with version 1.2 Alpha in November 2005, NeoOffice/J was renamed simply NeoOffice). The immediate goal of NeoOffice was to remove the need for X11 when running OpenOffice.org (accomplished in NeoOffice/J 0.x releases). Leveraging Java’s status as a “first-class citizen” for Mac OS X programming, NeoOffice features superior integration with Mac OS X. For instance, NeoOffice uses the native Mac OS X printing engine and dialogue boxes, native Mac OS X fonts, rendering and text-layout technologies, language and keyboard support (including support for East Asian and RTL/CTL languages and input methods), native copy-paste/clipboard support, double-click and drag-and-drop opening of files, support for Macintosh file aliases, and more. A large portion of the “native” Mac code is Java, but C++, C, and Objective-C code using the Cocoa and Carbon toolkits also comprise the Mac-specific code in NeoOffice.

Aquafication Begins

As NeoOffice had proved itself both stable and user-friendly with a growing following, it was considered by many of the Mac OOo developers as the best vehicle for further Mac OS X integration and the addition of a Mac “look-and-feel” to OpenOffice.org technology. Thus beginning with NeoOffice/J 1.1 Alpha 2 (September 2004; based on OpenOffice.org 1.1.2), Patrick Luby and Edward Peterlin embarked on a process of “Aquafication” of the then-NeoOffice/J. The first step was the replacement of X11/Windows-style in-window menus with a native Aqua menubar; buttons, scrollbars and other Aqua interface elements were expected to be added in the coming months.

Alpha 2 also added mouse scroll-wheel support, text drag-and-drop (within NeoOffice itself only), WordPerfect file import using the libwpd and WriterPerfect libraries (libwpd.sf.net), patches delivered via the Apple Installer, and patch update notification. NeoOffice/J 1.1 Beta (December 2004; based on OpenOffice.org 1.1.3) featured new Finder application and document icons, a new splash screen, and language packs providing localized user interfaces for 40 languages. NeoOffice/J 1.1 Release Candidate (March 2005; based on OpenOffice.org 1.1.4) featured many other improvements, including support for drag-and-drop between NeoOffice and other applications and additional Aquafication improvements.

NeoOffice/J 1.1

NeoOffice/J 1.1, the first (and last under the name NeoOffice/J) whole-number, non-developmental release of NeoOffice/J, continued the process of Aquafication and refining the application. Released on June 22, 2005, version 1.1 was also based on OpenOffice.org 1.1.4, the latest stable codebase at the time, and included support for Mac OS X 10.4 "Tiger" as well as Spotlight indexing via NeoLight. The "grey window" and "open document" hacks were finally banished as NeoOffice could finally remain open after the last window was closed. New "quickstart" items in the NeoOffice menu and the Dock menu allowed for creation and opening of documents when no other windows were present. Version 1.1 also began to use colors specified in the System Preferences for some parts of the user interface and improved support for Indic and Arabic script languages. The release of NeoOffice/J 1.1 was the culmination of the year-long development cycle and set the stage for exciting future developments.

NeoOffice 1.2 and the foundations for NeoOffice on Intel

Following the release of NeoOffice/J 1.1 and Apple's June 2005 announcement of a migration to Intel-powered Macintoshes, the NeoOffice.org developers began efforts to rapidly upgrade the NeoOffice codebase for MacIntel support. Patrick Luby migrated the application from the Java 1.3.1 VM (Carbon-based) to Apple's Java 1.4.2 VM (Cocoa-based). Ed Peterlin updated the code to allow NeoOffice to build on Mac OS X 10.4 with gcc 3.3 and began work to allow the code to compile with gcc 4.0, a prerequisite for a build that will run on Intel-based Macs. James McKenzie regularly built and tested both experimental branches in their alpha stages. In September 2005, the test patches based on the Java 1.4.2 codebase were released for testing (and so ended support for Mac OS X 10.2.x, which only shipped with a very buggy Java 1.4.1 implementation). This culminated in the November 2005 release of NeoOffice 1.2 Alpha, the first version of the "NeoOffice/J branch" to carry that moniker. NeoOffice 1.2 Beta followed on January 2, 2006, and NeoOffice 1.2 was released on February 1, 2006. The last release based on the OpenOffice.org 1.1.x codeline, NeoOffice 1.2.2, debuted on March 30, 2006. NeoOffice now averages nearly 2 million downloads per year.

NeoOffice 2 and Aqua Widgets

Shortly after the release of NeoOffice 1.2 Alpha, development of NeoOffice 2.0—to be based on the OpenOffice.org 2.0.x codebase, and to eventually support PowerPC and Intel Macs—began, as the HEAD cvs tag was switched to pull the OpenOffice.org 2.0.0 code. In February 2006, the HEAD cvs tag produced the first complete build and working pre-alpha NeoOffice 2.0 application. While simultaneously maintaining and fixing bugs in NeoOffice 1.2.x, developement on the pre-alpha NeoOffice 2.0 for PPC Macs continued for several months, even spawning a working but very buggy Intel build along the way.

On April 25, 2006, NeoOffice 2.0 Alpha PowerPC became available to Early Access program subscribers. Also, beginning in early April, Ed Peterlin resumed the Native Widget Framework effort and rapidly prototyped and converted several widgets to Aqua. NeoOffice 2.0 Alpha Intel, released to Early Access Program members in June 2006, was the first version of NeoOffice to run on Intel-based Macs. Aquafication work continued during the Alpha period, and the level of Aquafication was so extensive by the time of the EAP beta release that it was officially dubbed NeoOffice 2.0 Aqua Beta. In addition to native scrollbars, buttons, check-boxes, and other widgets, Aqua Beta featured native open and save dialogues and a new, more Aqua splash screen, Finder icons, and some toolbar icons from Daniel Pimley.

The worldwide launch of NeoOffice 2.0 Aqua Beta was at OOoCon 2006 in Lyon, France, in September 2006 (with a special preview at the World Scout Bureau in Geneva, Switzerland); NeoOffice.org was a Premium Sponsor of OOoCon 2006 and the developers held various talks at the NeoOffice booth.

Throughout the fall and winter, work continued on Aqua widgets and a community-created icon set, dubbed "Akua", in the style of Mac OS X, including icons from Armando Nava, Oscar Van Vliet, and Daniel Pimley. The widget work was so advanced and extensive that NeoOffice even works properly with third-party themes for Mac OS X. After nearly a year in development, NeoOffice 2.1 was released on March 27, 2007, as the first truly native, final-quality office suite release for Intel-based Macs. NeoOffice 2.1 was also the first application on Mac OS X to support reading and writing Microsoft Office 2007 OpenXML Word documents, and with Microsoft's discontinuation of support for VBA in the then-forthcoming Office 2008 for Mac, NeoOffice became the only Mac app still in development to support VBA macros in Excel spreadsheets.

NeoOffice 2.2.x and New Mac-Specific Features

NeoOffice 2.2.x built upon NeoOffice 2.1 by including support for additional OpenXML document types and more Mac-specific features and further Aqua integration, including use of the Mac OS X spelling and grammar checkers, access to the Mac OS X Address Book, Quick Look support, Image Capture-based image import, QuickTime video, native floating palettes, an iLife-like media browser, Apple Remote support, trackpad gesture support, and support for certain Mac OS X services. Freed from the bureaucracy, complexity, and "Not Invented Here" attitude of OpenOffice.org’s processes, NeoOffice is able to incorporate bug fixes and user-requested features from ooo-build and other open source projects, improving the experience for Mac users.

NeoOffice 3 and new Mac features

During the fall and winter of 2008, NeoOffice development focused readying NeoOffice 3.0, to be based on OpenOffice.org 3.0 (released in October 2008). Due to the extensive changes introduced by OpenOffice.org developers, a significant amount of bug-fixing was required, and the Early Access program was formally delayed in order to properly support PowerPC-based Macs (Sun Microsystems did not release a version of OpenOffice.org Aqua for PowerPC Macs, and perhaps as a result, there were large numbers of significant bugs that existed only on PowerPC). NeoOffice 3.0 was be released in late March 2009 and supported Mac OS X 10.4 and 10.5 on both Intel and PowerPC Macs, as well as experimental support for developer versions of Mac OS X 10.6. NeoOffice 3.0 also contained additional features (over the standard OpenOffice.org) developed by the ooo-build project and by NeoOffice developers, such as Services support and the ability to specify which component opens on launch.

Despite the continued global economic downturn, regular bug-fixing continued, and NeoOffice 3.0.1 also appeared in late October 2009. This new version sported official support for Mac OS X 10.6, the NeoOffice Mobile document-sharing solution, and a number of significant changes backported from OpenOffice.org 3.1, as well as the usual cadre of new Akua icons. In February 2010, NeoOffice 3.0.2 was released, with additional Mac OS X-specific features requested by NeoOffice donors, including native highlighting, smoother text kerning, new user interface to control certain Mac OS X-specific features and to specify which component opens on launch, and support for live renaming and moving of open documents. Daniel Pimley also redrew Dan Bennett's NeoOffice application icon in large scale, finally providing a 512x512px Finder icon.

NeoOffice 3.1.1 stays the course

Following the NeoOffice 3.0.2 release, NeoOffice developers polled the community of donors about future directions: a quicker update to the stable OpenOffice.org 3.1.1 codebase, or a longer, more drawn-out upgrade period to transition to the about-to-be-released (and likely buggy) OpenOffice.org 3.2 codebase. Donors preferred the quicker update to the more stable OpenOffice.org 3.1.1 codebase in order to pick up new features added in that version of OpenOffice.org. NeoOffice 3.1.1 was released in early May 2010 with a number of NeoOffice Mobile enhancements, support for looking up words in the Mac OS X Dictionary application, and a number of bug-fixed backported from OpenOffice.org 3.2. Later patches also added the ability to access Google Docs from NeoOffice Mobile and for NeoOffice to use Mac OS X Services that modify the selected text.

Current and Future Development of NeoOffice

Following the NeoOffice 3.1.1 release, NeoOffice developers plan to upgrade NeoOffice to the latest stable OpenOffice.org 3.2 codebase in the latter half of 2010. In addition, with the support of NeoOffice donors, the developers hope to continue to implement requested features, including those that heighten the degree of integration with Mac OS X.

Throughout its history, no more than two developers (Patrick Luby and Edward H. Peterlin) have worked on NeoOffice (currently only Patrick is working on NeoOffice). Reflecting the size and complexity of a project based on (and fully compatible with) OpenOffice.org, maintenance of NeoOffice has become nearly a full-time job, and, as example, Patrick and Ed spent approximately 3000 hours and $4000 (over the course of 2003 and 2004) maintaining and developing NeoOffice.

Screenshots of NeoOffice

NeoOffice/J 1.1 Alpha 2 Patch 4 (First public Aqua menu patch, 10-Nov-2004)


Additional screenshots illustrating the process of "Aquafication" are available in the NeoOffice/J Screenshots Archive; current screenshots can be found in on the NeoOffice Screenshots page.


This article in other languages: Français Italiano Nederlands
Personal tools