NeoOffice/J provides Mac OS X users with a completely free office suite. Prior to this release, your best bet for running OpenOffice.org was to get it from Fink. OpenOffice wasn't originally designed to play with Aqua, so you had to also run the X Window System (X11). For some people, that was just a bit too much. And besides, X11 doesn't have that smooth Aqua interface that makes the Windows crowd jealous. NeoOffice/J addresses those problems by providing you with a friendly drag-and-drop disk image installation and the standard application bundle you'd expect.
Here's the foundational pieces of OpenOffice.org that you get with NeoOffice/J:
In the first half of this article I'm going to focus on the word processor, spreadsheet, and presentation apps, since they reflect similar offerings in Microsoft Office. Then in the second half, I interview Patrick Luby, the programmer who is NeoOffice/J's primary mastermind. Patrick's comments about how this office suite came to life, and about open source programming in general, are a must-read for Mac developers.
Since playing nicely with Microsoft's de facto file formats is a primary need for most people, I went out to Microsoft's Mactopia and picked out a few random templates to load into NeoOffice/J. My intent was to do a quick comparison of their appearance in NeoOffice/J and Microsoft Office. For the particular templates chosen, NeoOffice/J did quite a good job, and was quite user friendly.
Create office documents from NeoOffice/J's main menu
The word processing template I chose is really just a simple table with some color and text. Here's a comparison of the two. (Click on each thumbnail to open a larger image and prevent eye strain.)
A simple template opened in Word and NeoOffice/J looks nearly identical.
What types of documents do you normally use a word processor for on a daily basis? If you need to readily convert double column documents containing embedded spreadsheets and multiply nested tables from your colleagues who strictly use Microsoft Office, then NeoOffice/J might not meet your needs. In the end, you have to be the judge, but you certainly wouldn't want to run out and buy a new copy of Word just to make a resumé or read documents you occasionally get in your email. You can get this "Microwave" template here.
Try saving your existing documents to and from different formats to test out NeoOffice/J's conversion capabilities
As we all know, presentations can vary widely depending on the presenter. On one end of the spectrum, a presentation could simply be some formatted text on a solid background. On the other end of the spectrum, a presentation might contain embedded multimedia, hyperlinks, extra markup, animated transitions, and sound effects on every single slide. Most of us probably lie somewhere toward the middle and probably lean toward keeping things simple.
Overall, I found Impress to work very well for presentations started from scratch. You create a slideshow just like you would in PowerPoint, there's a very similar feel overall, and you control the slideshow in front of an audience just like PowerPoint.
Impress, however, is lacking a little behind the rest of the suite when opening and converting existing PowerPoint documents. Presentations have an inherent focus on visual formatting and multimedia. Since you're usually not giving presentations unless it's for some type of public or professional function, these are times when you definitely don't want to mess things up. Be advised that you might have to put a little extra work in when opening existing PowerPoint slide shows with Impress, and this is especially true if they have a lot of pizzazz. But if you're starting from scratch anyway, give Impress a shot and see if it meets your needs.
The "Certificate" slides I used as a simple document test can be found here. This slideshow opens fine, but unfortunately, slide shows containing much more complexity might require some extra work. At least you can't complain about the price.
The masses will fawn over your presentations, and Fabio would say, "I can't believe it's not PowerPoint!"
Although minor variations in formatting are frustrating, and often a possibility with any WYSIWYG app like a word processor or presentation creator, spreadsheets are generally a different story. They're intrinsically more about content than presentation. Accordingly, the criteria you use to evaluate Calc should be somewhat different from Writer or Impress. When evaluating NeoOffice/J's spreadsheet, ask yourself if it has the power to do the types of calculations you need it to do, and try to convert some existing Excel documents (making sure to back them up first.)
The Excel documents I opened up in Calc had your typical first and second order statistical function in them, and Calc kept everything right on track. When looking through Calc's help menu (which is very good), I noticed that it certainly didn't implement every function in Excel. But before you let that bias you, ask yourself how many of Excel's features you use regularly. If you're working on Wall Street, or want to convert sheets with a lot of macros and very advanced features, you'll probably find Calc to be horribly lacking, and complain that it can't do such things as notify you when your mother's birthday falls on a Saturday, if it's a leap year.
If you're analyzing loan options, doing typical university-level statistical analysis, budgeting, and similar tasks, however, you'll find Calc to work very well for your needs. It also has support for some basic scripting so that you can write custom macros. Even if you're a true Excel guru, there's still a good chance you'll find Calc to work well for your needs. Just remember to turn to the help menu if a function doesn't appear to be working out. Although the ones I looked up were named the same, there are bound to be some that vary.
You can get the "Car Loan Worksheet" template here if you want to see how Calc compares to Excel for what seems to be a "typical" spreadsheet.
Calc stands up to the challenge of analyzing a car loan, your mortgage, leasing vs. buying, and much more.
Here are a couple common arguments I've heard against using NeoOffice/J. I'll play devil's advocate for NeoOffice/J.
NeoOffice/J does most everything you'd want, but like anything else, there's always that one feature. Submit a feature request with a small donation to the developer, and I'll bet your feature request moves far up in the queue--especially if your request is a reasonable one. Of course, if you wear a pocket protector to work, there's a good chance you can probably implement this feature yourself. For such efforts, you'd get immortalized forever on the list of contributors and your fame would stretch to the outermost parts of the universe. What could be better than that?
In the case of small businesses, you could pay a contractor to customize the application for you as a one-time deal, or hire a programmer to continually streamline and troubleshoot your open source software as needed. Making the switch might save you enough money to pay for a part-time salary and then some. Do the analysis and see if it works out for you. Having the control to streamline and customize is one of the most exciting aspects of open source software.
If you already own Microsoft Office, then you'd be using NeoOffice/J to simulate something you have already purchased, but there's still a few reasons you may want to try NeoOffice/J:
If you already own Microsoft Office, and don't want to quit cold turkey, you can still use contextual menus to easily open its documents in NeoOffice/J.
Ok, I'm done playing devil's advocate. Ultimately, you have to look at your situation and decide if it makes sense for you to pay for something. For some of us, the very high compatibility OpenOffice.org has with Microsoft Office just won't cut it. But there are many of us who could save quite a bit by using free software. If you're a business, government, or nonprofit organization, you might especially enjoy transferring money from your software budget (to include maintenance and upgrades) to somewhere else. Maybe advertising, customer service, or employee benefits would be a good starting point?
Now for more insight about NeoOffice/J, here's an interview with Patrick Luby--a seasoned software engineer who has tons of experience working in the Silicon Valley, and is NeoOffice/J's primary mastermind. Patrick has written thousands of lines of code to get OpenOffice.org running natively on OS X over the past couple years. So I thought, who better to help us understand this open source office suite?
Matthew Russell: Well, let's see. Maybe we can just get a little background on this project? I've often wondered what kind of person took time out of their already hectic schedule to develop open source software. What's your background? How did you get started in all of this?
Patrick Luby: I've worked as a software engineer in Silicon Valley for about the last decade or so. I spent the bulk of my time working for Sun Microsystems, and from Microsystems I bounced around to a lot of different groups. Sun was fairly dynamic at the time, so about every two years new projects would come up and I'd move on to one. In early 2000, I picked up one big project because it sounded interesting. At that time, Sun was considering doing a Mac OS port of Star Office. OpenOffice.org didn't really exist at that time--it came later that year.
The idea was that Mac was the missing component. We initially started with Mac Classic, but Mac OS X was on the verge of coming out, so logically we switched to that. I spent about a year and a half working as lead engineer on that project. I didn't actually know anything about the Mac at all when I started. I'd worked on Linux and Solaris before, and quite a bit on Windows. I thought this would be interesting; kind of round out my experience.
While working on the port we ran into all sorts of really painful problems that took extraordinary amounts of time to solve. Realistically, if we had waited another two years or so, some of those problems would have been resolved as Apple continued to refine OS X. But at the time, it just proved to take about twice as long as it does now to get it done. But at that point, it just wasn't working out so well, and Sun canceled the project.
So after a while I was over in a different group, working on servers, but I kept looking at what was going on in the OpenOffice.org project--more specifically the Mac port of OpenOffice.org. Not much was going on until early 2003. At that time I noticed that OpenOffice.org compiled and actually ran on Mac OS X using X11. X11 doesn't look native, but it was a major milestone for them to actually get all of the code to compile and run, without crashing every time you launched it.
MR: What exactly is the difference between Sun's Star Office and OpenOffice.org?
PL: Basically Star Office is the commercial version of OpenOffice.org. They share about 90-plus percent of the same code. The only difference is Star Office has a few things that can't be open sourced because they are licensed from other companies. I think the spell checker and a few fonts are among those types of things that can't be open sourced. The Adibus database is another one.
Star Office has been around a long time. Sun bought them back in 1999 or 2000. Shortly thereafter, Sun took Star Office, open sourced it, and called it OpenOffice.org.
Now later, NeoOffice/J is OpenOffice.org, plus a lot more code to make it run natively for Mac OS X. That's the short of it. The X11 approach that was originally used was a stop gap approach in essence, because you're making a Mac look like a Linux machine.
MR: I noticed on Slashdot just a day or two ago that Apple had announced that as of Tiger they are going to stop their Cocoa-Java support. Will that impact NeoOffice/J in any way?
PL: We only use the core Java API. We don't depend on any Cocoa-Java for NeoOffice/J. The Cocoa-Java stuff is a way to embed Java within a Cocoa application. Since we're not a Cocoa application we've never needed those, so the fact that they'll be going away is not really a problem for us.
MR: OK, that's good to know.
PL: A larger problem, actually, is that Java 1.3.1, an older version of Java based on Carbon, is going away. We are trying to move to Java 1.4 so that when the Mac-Intel platform comes out, we'll actually be able to use whatever Java they ship on. It's pretty clear that because Java 1.3.1 is so old, Apple's probably not going to bother to support that over to the Mac-Intel platform. I gotta push NeoOffice/J up to the latest version of Java, and you'd think that would be easy, but there's actually a lot of work to it. There's all sorts of subtle differences between one version of Java and another. That's more of our real issue, getting up to the latest version of Java. That will be our biggest challenge.
MR: OK, so speaking of Apple, they have nice productivity apps--Pages and Keynote--and there's a Slashdot rumor that they recently trademarked the word "Numbers" so it looks like they're moving toward developing a spreadsheet, which puts them into the ballpark for their own office suite. Does something like that affect the way you guys do your work--or your motivation levels--on an open source project like NeoOffice/J from day-to-day?
PL: No, it really doesn't. We haven't gotten a whole lot of support from Apple at any point in time. Even when I was a Sun employee, Apple was very distant about associating with OpenOffice.org or Star Office. So we really haven't ever depended on Apple. It's nice to contact people and get some questions answered, but largely we don't get any freebie support, or anything near the support of Adobe or Microsoft yet. Of course, those guys pay for it, but you know, we don't, so it's no surprise that we don't get anything.
We're not a commercial organization; we're really just a community-based open source type of project. We're not trying to put Microsoft out of business, or put Apple's new applications out of business, or to be the one magic office suite that everybody uses. I think that's unrealistic. And even if we wanted to, it is just something we don't have enough people to do. It would take a lot of money to do something like Microsoft does with Microsoft Office. You know, our purpose is really just to provide an alternative to Microsoft Office for those who depend on it, because it really is the de facto standard in most places. There's a vast number of people who really don't need Microsoft Office, but they are forced to read Microsoft Office documents.
Like I, for one, I really don't use Microsoft Office or write in Word format. I'm a programmer so I use text editors. But I do get a lot of Microsoft Office documents as a consultant that I need to open up and read, or make minor edits to. Its nice to have a tool that is able to do that, and that is really what our purpose is. Does that make sense?
MR: Absolutely. So while maybe a product like OpenOffice.org isn't going to put Microsoft out of business, have you seen any significant ways that it impacts the way that they do business? For example, they announced not too long ago that sometime soon, they're gonna release an encoding scheme based on XML for all of their office documents--sort of like OpenOffice.org has done for a while now.
PL: For the most part, that is a question that I really can't answer too well, but I would assume that OpenOffice.org does have some minor impact on Star Office, or on Microsoft Office, of some sort. You know, they would be crazy not to pay attention to that because I think that even on the Windows platform OpenOffice.org is downloaded by millions of people every year. I would assume though, that Sun, who employs a really large number of engineers, could keep all the code that reverses a Microsoft file format. They'll always be working on the latest type of file format that Microsoft puts out. The nice thing about NeoOffice/J is that it's just basically a fully compliant version of OpenOffice.org. That's real key, I didn't go off and try to reinvent the wheel. I wanted to reuse code so that as changes happen to OpenOffice.org we can rebuild without too much effort.
MR: So just thinking about other open source products--Firefox, for instance, is a big buzz word and it looks like it's just going to keep getting more popular. Do you expect that OpenOffice.org is gonna eventually become one of those buzz words like Firefox?
PL: I think that OpenOffice.org is already there. The real odd part about NeoOffice/J is that it's one platform only, and we really are under the OpenOffice.org umbrella. Even though we have a different name and a different license, really we're a piece of the OpenOffice.org puzzle.
MR: So if someone were to say to you, "I don't need OpenOffice.org, because I already own a copy of Microsoft Office, " how would you respond?
PL: That's an interesting question because I think if you asked ten different people they are going to come up with ten different answers. My personal feeling, and this is just my opinion, is that if you already have Microsoft Office, assuming you've paid for it somehow, either implicitly because you bought your computer and it was already loaded on there, or you went out and bought it, then I think OpenOffice.org doesn't make much sense for you because you are trying to get a copy that simulates something you already have, which seems kind of silly. Where I really try to tell people about OpenOffice.org is when they say, "I really need to go buy Microsoft Office because I need to read documents from work at home." That's where I say OpenOffice.org makes a lot of sense for people, because to buy Microsoft Office is a lot of extra cost for small things like that.
MR: Yeah, and I was thinking, if you were any type of small business with just five to ten computers, running Linux and OpenOffice.org, you'd save thousands of dollars that could otherwise be used for something like marketing or advertising or whatever small startup costs there are. So in that way, open source software seems to provide interesting economic opportunities.
PL: Yeah, in essence it reduces the "tax" they have to pay to read other people's documents and I think that is where it makes sense. But for certain big firms on Wall Street, the 98 percent compatibility with Microsoft Office may not be good enough. However, small businesses, people trying to start up, nonprofits, and schools is where money is tight. That "tax" is quite burdensome for what they are using Microsoft Office to do.
MR: Do you look at the time you spend developing open source software as a type of community service that's comparable to the service provided by someone who volunteers to clean up the neighborhood, or tutor a high school student? When you're spending those hours and the midnight oil is burning, do you find a lot of satisfaction in being able to give back to such a large group of people?
PL: Yeah, I definitely do. And the other thing, too, is--I can't lie--it is actually a lot of fun, and that's why I keep doing it.
You know, it's one of those things that's like, well, if it was no fun, or not interesting to me, I probably wouldn't have done it, or stuck with it this long. In fact, that is one thing that many people who are looking for features sometimes don't really understand. How I come up with all my development priorities tends to be around stuff that interests me, and hopefully interests the community as well. So I try to give back as much as I can, but at the same time, I realize there's a limited number of people like me, and we are forced to figure out what provides the greatest benefit for the greatest number of people.
It's nice to get the feeling that a very small number of people can make a huge difference like this. This all just started as a hobby. You know what I say , "If you can do something, do it." Don't wait for somebody to tell you that it's easy to do, because it won't be easy. OpenOffice.org has taken a lot of effort, but we're getting to the point where we're yielding the benefits for all the time put in, and people are getting something back for it.
MR: Yeah, so just thinking of the difficulty involved in an open source project of this size, is there any one thing that you would say is the hardest part of doing the project? Or are there just a ton of smaller, difficult things?
PL: I think one of the key problems that you're going to run into on any type of project is that you're never going to have enough people. What I see with a lot of open source projects is the constant refrain of, "We're looking for developers to help us out." And I think one of the problems open source has in general is that there is this stereotype out there that it is done by a bunch of college students working in their dorm. I think that is kind of a myth.
The reality is that a lot of open source is funded by real companies. For example, OpenOffice.org is funded by several dozen full-time engineers from Sun. Mozilla actually has a lot of full-time engineers who work on Firefox. So a lot of money is flowing into successful open source projects. The real key about many open source projects is that you do need funding at some point. In my case, I saved my pennies over the years and through my consulting gig I can afford to do this. But I'm not your average open source product. In most cases, you can't assume that 50,000 developers are going to come out of the woodwork and help you.
In most cases, when you start, you are going to be the sole developer, maybe you'll pick up a second one, and that's the way it will be for the most part, 'till real money comes in. That is what I have seen in most open source projects. So I think the biggest hurdle is trying to contain your goals to fit within the likelihood that you are only going to have only yourself to do it.
MR: So would you say it's definitely an uphill battle, if a proficient computer scientist were to come to you and say that they were going to make a career in the open source software market? Is that something that you would say is very difficult?
PL: I would say go find a job with a software company that is working on an open source project--that would probably be your best bet. You'll learn the experience of working with others, because that is very important. Software development is like having four people change one tire on a car. You gotta have the coordination. Working independently is fine, but I think the more valuable thing for engineers coming out of school is getting used to seeing how other people develop, and realistically, within a software development company is where you're gonna see how to do that. That's the experience that is necessary, because once you're open source, those skills are doubly important. It's nice to work by yourself but it's still very difficult. Even when you start getting one or two other people, it can really take a lot of coordination.
But if you're asking, "Can people make a living doing open source independently?" I know a few who have done it, but for the most part, what I've seen is unlikelihood on the whole. A few people have done it, I recouped some of my costs through donations, but I really don't make a full living doing that. Actually, donations are far lower than I made as an engineer working for Sun, so I am still always constantly out there hitting up big companies for money to support this; so it's still a tough road to make a living doing it.
But the reality is that although open source software may be given away for free, someone still has to pay for it. It has to be funded somehow.
MR: So how would you recommend an aspiring open source software developer with time to kill get involved in a project like NeoOffice/J? What's a good entry point?
PL: I would say that the problem with open source, of any sort, or any development, is that developers have to find their own entry point. One thing I've always felt is that when people show up and say, "I'm really interested in helping," my first question is, "Well, great, have you tried compiling it, or have you tried anything?" The most important thing for open source that we're looking for is not people who need their hand held, but for them to prove their competence by slugging it through and trying to build it, and when it doesn't build, don't throw up their hands. What I see a lot with OpenOffice.org development is "It didn't compile." Well, OK, it didn't compile and you haven't fixed it, so you're showing that you're really not interested in helping, or it's outside your skills to be helping.
Assuming you do have the skills, you can get involved by compiling it, and then looking through bug reports--go fix those first. A lot of people I know show up to our site and say, "I'm willing to help, tell me how." So I always tell people, "Great, go compile it, and why don't you go fix one of the bugs we have?" That, unfortunately, eliminates about 98 percent of the people who show up, because that's not sexy.
And one thing I would really emphasize to open source developers is that most software is not sexy. Most of it is very tedious, boring code that will drive you crazy. And if you don't like that, you'll find it very hard to make a living in software engineering.
And to give an example, it took us two years to get NeoOffice/J to the point where it just worked and didn't crash all the time, just because it is such a large application. Even when I was a seasoned engineer at Sun, back in 2000, I still had a lot of trouble really getting my arms around OpenOffice.org. It was just so big. So, in a lot of ways engineers have a really good tool to find their way in terms of how much can they reasonably help without actually getting in too deep. It's really trying to compile it and try to fix a bug, that really makes a good entry point. If you find that even compiling it is just overwhelming, you found out early, without spending too much time, that this probably isn't your project, and maybe you need something smaller. But if you really thrive on that big, nasty code, you'll be drawn to it. That's a good sign that it's up your alley. And that's the nice thing about open source--people can try and decide whether it's their cup of tea or not.
MR: Yeah, so just speaking of the huge size of a project like NeoOffice/J, how many lines of code are we talking about?
PL: Let me put it this way, NeoOffice/J modified only a couple percent of the OpenOffice.org code. I purposefully tried to minimize the amount of code that was changed; but the amount of code that I had to change is probably in the tens of thousands of lines, and that's a small, small percentage. Total source code base if you check out a snapshot from OpenOffice.org is about a half a gigabyte, and it's just huge. As far as size of code, you just can't get much bigger than office suites. They're the biggest and nastiest out there. It's probably an order of magnitude bigger than Firefox.
MR: Wow, how many people contributed to this kind of huge code base over time?
PL: I do know that at one point Sun had at least 50 full-time software engineers working on OpenOffice.org. Plus, they have a separate dozen working on documentation and translations, and probably another dozen working on lease engineering, and another dozen working on quality assurance. They had an organization of well over a hundred people making this happen, and they started this thing about 15 years ago. Now they weren't always at that size. Let's say if you average it out and start at one, we are probably talking an average of 50 people over 10-15 years to get it to where it is today. That's a huge investment.
MR: Yeah, absolutely. Just in the NeoOffice/J portion you've worked on, how many hours would you guesstimate you've spent over these two years, to get it into the nice state that it is?
PL: I haven't kept accurate figures, but I think we are over 3,000 hours now, and then Ed Peterlin spent probably another 400 or 500 on top of that, so we're probably getting close to three man-years now.
MR: Yeah, I was gonna say that that is quite a bit. That averages out to be something along the lines of several hours a day--every single day--doesn't it?
PL: Probably more than that. I hate to admit it, but I actually wake up, and because I work out of my home, I start working on code.
MR: So is it fair to say that if someone asks what do you do for fun, an honest answer would be, "I write code!"
PL: I do like code.
MR: That's excellent, Patrick. Thanks so much for taking time out of your busy life to share details about NeoOffice/J, OpenOffice.org, and open source software development. This really is exciting stuff.
PL: You're very welcome.
Matthew Russell is a computer scientist from middle Tennessee; and serves Digital Reasoning Systems as the Director of Advanced Technology. Hacking and writing are two activities essential to his renaissance man regimen.
Return to the Mac DevCenter
Copyright © 2009 O'Reilly Media, Inc.