How to build an open source Java office suite in 30 days
Anthony Goubard explains how he managed to build Joeffice in one month
Could you construct the basic components of an office suite and get it running on multiple OSes and browsers within 30 days?
One month on from setting himself this particularly tough challenge, Java developer Anthony Goubard has released the alpha version of Joeffice; a open source Java office suite comprising of a word processor, spreadsheet, presentation software, a database editor and a drawing viewer.
Goubard told JAXenter that the idea was spawned from his sprawling mess of documents, and that he wanted to help developers out in a similar situation.
“As many developers know, during the day we often use an IDE and an office suite. It amazed me to see how it’s no problem to have 30 files opened in an IDE and it’s a mess when we have 10 documents opened in an office suite,” he said.
The Amsterdam-based developer says that Joeffice is “developers and students” seeking a free office package. In order to keep things simple, Goubard tried “write clean code as much as possible” so newcomers could pick up Java as they went along.
Joeffice is also aimed at developers with specific office suite needs, such as wanting to deploy a timesheet in an applet, update a spreadsheet in real time or save documents in shared directories.
“At the moment to develop a business application, companies have the choice between writing an office macro or a specific application. I think Joeffice offers something in between,” Goubard told us.
Another underlying goal of the project was to offer something different to other open source options. Goubard believes that the likes of LibreOffice and OpenOffice “focus too much of being a clone of Microsoft Office” and” and not enough “instead of improving the user experience.
Holding experience building Swing applications with his own company Japplis, Goubard opted for the NetBeans platform as the basis for the project rather than its main competitor Eclipse. Aside from some reused Java code, other libraries used in the creation of Joeffice include Apache POI to read Microsoft Office documents and Apache Batik for SVG files.
“Eclipse RCP is based on SWT, [while] NetBeans is based on Swing which I consider better than SWT. I think there is more documentation and books on it and I’m also a long time NetBeans user,” explained Goubard.
While creating Joeffice, Goubard documented the development process with daily Youtube videos. Goubard told JAXenter that creating Joeffice “was easier” than he thought it would be, only spending an eight hours on average per day on the project. However, the ambitious target of completing it in 30 days wasn’t without its problems, falling foul of many bugs in libraries as well as Java’s WORA promise.
“My goal was to show that it’s not impossible to inspire other developers to participate,” Goubard reveals, before paraphrasing Eric Ries’ adage from The Lean Startup that “it’s better to release something not totally finished and listen to what people want, than to work one year on something and then realize nobody was interested in it”.
It’s important to remember that Joeffice isn’t anywhere near completion. Expecting such a turnaround from one man in a month would be extremely hopeful, yet alone laughable. Goubard explains that the alpha release “isn’t about great software” but is actually a call to the community to come help him build the rest.
“According to Wikipedia there are 10 million Java developers [in the world], if just 1% would participate in this project that would mean 100 000 Java developers working on creating an office suite,” Goubard explains. “That would make the life of people using an office [suite] easier.”
Where Joeffice heads next is undecided. Goubard envisages the 1.0 release to be “roughly equivalent to Google Docs in terms of features”. While that might seem like pie in the sky at this point, there’s nothing stopping Java developers joining to build a fully functional open source Java suite.
Joeffice is looking for developers to collaborate and do upstream work. If you want to get involved, all the details to get started are here.
Images courtesy of Joeffice and mkosut