Before LibreOffice there was OpenOffice, and before OpenOffice there was StarOffice…

Stefan Soyka, StarOffice developer in the early '90s

LibreOffice is the successor project to OpenOffice(.org), which in turn was based on StarOffice, a proprietary office suite developed in the 1990s. Learn more about the history here! And let’s hear from Stefan Soyka, who worked on StarOffice from 1990 – 1992…

When did you join Star Division, and what did you work on?

I came from Berlin to Hamburg to work for Marco Börries in his Star Lab in spring 1990, together with my friend and study mate Stefan. Both of us joined the project more or less at the same time and shared the same first name, which caused some confusion at first.

The situation in Hamburg needs some explaining if you are new to it. The Writer application that is the foundation of what we use today is not the first Star Writer – but thesedays it is often referred to as Star Writer 6 or Star Writer Graphic. Marco’s company Star Division, based in rural Lüneburg not far from Hamburg, had developed and sold with considerable success a text processing application with the same name, that was an MS-DOS application based on a home-grown graphics framework. A team of freelance programmers was working on it under the lead of Sven-Ola Tücke.

This was also the tool we used to write the first drafts for specifications, by the way.

The old Star Writer had a solid fanbase and sold quite well even after Star Lab started in Hamburg. So it is fair to say that the money we burned in Hamburg was earned in Lüneburg.

Marco, however, had the right feeling that graphical user interfaces were already around and taking up speed. The future (that is the time we live in now) would belong to applications running on the main graphical user interface platforms at this time, being Microsoft Windows, the X Window System and macOS. Of course there were voices that argued that graphical user interfaces were only hampering productivity and real pros would always use the command line. That may sound a bit funny today, but I took it all in my heart.

When I arrived there, development had pretty much advanced in the compatibility layer named Star View, that allowed portable programming of both operating system functions and graphical user interfaces. There was, however, no application yet. Because I had worked on a C++/X Window System project on the ODA standard (ISO 8613, Open Document Architecture), I had some background on this and formed with some others the core of the Star Writer project team.

Star Division logo

Tell us about the office location and team back then!

The offices of Star Lab at that time were at Heidenkampsweg, near Berliner Tor, in Hamburg in a quite modern building. I remember the adjacent gas station; many of us were heavy cigarette-smokers at that time, and I sometimes went there at night to get the next pack.

Dirk Bartels supervised the daily operations. He had a software company back in Berlin and he expected benefits from the Star View portability layer for his own products. His personal secretary was Marita, if I remember the name correctly, a lovely young woman, I think the only one in the project at that time. When I joined the team, there were about twenty people working there including administrative staff.

Andreas, a good-natured guy with intense freckles, managed the Star View project. Almost all the coding however, at least for the Microsoft platform, was completed by Thomas – a very young man who was incredibly well-organized and productive, the type of coder who writes a screen full of statements that compile instantly error-free. He also virtually lived in the offices. The staffing for this platform was good; the other platforms had fewer developers. I remember Dirk, a shy young man who did the Macintosh port. One day, he showed us that all output appeared like upside down. It turned out that the Macintosh uses a y-origin different from the Microsoft platform (top left, I think). That gave him certainly some headaches.

Michael, a freelancer from Lüneburg, sometimes visited Star Lab in his tiny, first generation Mazda MX-5, that he could barely fit into. He was the only engineer who contributed to both the “classic” Star Writer with Sven-Ola Tücke, and Star Lab. He introduced the first Star Basic macro language. For the Windows platform, it had been worth thinking about a Star Writer application programmers interface or component object model (OLE at that time, but was just emerging in 1991 with Word and Excel), but with portability above all, this did not come to pass.

The team at this time was Euro-centric at least – effectively most staff members came from nearby. Another great developer in the Star View team, however, was Eddy McGreal, an Irish guy, whom I saw by incidence recently in a software product presentation he held. Can’t stop hacking.

Armin kept the business in order. He was also working on internationalisation. When he married, he invited all mates to comes and celebrate. It was in a small town in the moors, I don’t remember the name, but we had a great time. When we went back to Hamburg in the morning – hopefully at least the driver was more or less sober.

In the Star Writer team, Jürgen was the most productive programmer, about two meters tall with a sad face. Playing handball was his first priority, if he was not hacking. He did incredible work under the hood, like importing exotic files from other text processors, and never complained or missed a deadline. I think we never gave him enough credit for what he achieved.

Despite all the good work, the Star Writer project did not meet the expectations in the time when I was there. Later, I spent many thoughts on why we were not more successful in the beginning, because it felt like a wasted opportunity to me. It was not for the lack of ambition: there are folders full of splendid concepts and intricate specifications. But none of us had a good blueprint of the best way to start this enormous, complex task, I believe.

What was the toolset and development process like back then?

The object-oriented programming paradigm had evolved into the first C++ standard and implementations. Before I came to Hamburg, a pre-compiler was used, on Sun Workstations at least, to generate standard K&R C code, that was fed into the platform native C-compiler. The result was not always predictable or free of errors, but luckily, at Star Division, we had the one-step Microsoft C++ compiler, so we were a step ahead at this point.

Star View, however, was a huge library and the Microsoft linker had a hard time (and needed a long time) to do the static linking. When it came to a code freeze, that is the integration of the stable versions of all projects, Stefan used an egg timer so that he didn’t miss the time when the linker had finished, to see if there were problems with the linking or not. It took so long, you could easily forget it. If it failed, it needed fixes and another round. The whole process needed much time, until Stefan one day found out that someone had tackled the problem with the Microsoft linker and had released a better implementation that did the job in a fraction of the time.

Another paradigm that came up at the time was the Model-View-Controller (MVC) pattern. It says, in short: what you see is only a volatile transformation of the model. The controller, like someone typing text into the application or a report generator producing table data output into a document, changes the model, which in turn from time to time updates the view.

Many in the project and even in the management were not comfortable with this procedure, because it appeared to make a simple thing unnecessarily complex. The argument was like: “This is meant to be a WYSIWYG text processor, and we need nothing beyond what the user sees on the screen, so let’s store this”. Nobody wanted to look at a document any different from before, when he or she opened it again – maybe on a different machine were fonts were missing or the display had a different resolution. There was a lot to explain and no proof that either concept was superior. What’s more, nobody could tell reliably and by their own experience, what adopting the MVC pattern for a text processing application meant in practice, and how the code would look like.

Then, the Unicode standard was evolving and a controversial debate started about what that meant for our plans. Speaking of 16-bit Unicode only, two aspects were unsettling: the same document would need twice the memory compared to 8-bit characters (we had no concept for memory management then and kept the whole document in RAM all the time, which obviously still needed some reworking). At that time, the model was using zero-terminated C strings for text paragraphs for the comfort of using the standard C string libraries.

Turning to Unicode, we would have to say goodbye to that and rewrite the functions we needed. It probably had not yet dawned everyone, that C strings would not suit the requirements of text attributes and formatting anyway.

UTF-8 strings, on the other hand had the downside that it was complicated to find out, how many character positions the output would use. Building substrings from UTF-8 strings is also a delicate matter, because the string can not be cut at any position without creating invalid UTF-8 character sequences.

Most of the developers working on StarOffice later will certainly be surprised, what basic considerations were moving us at the start, but man, this was all serious stuff.


StarOffice 3.1 and modern LibreOffice screenshot comparison

StarWriter 3.1 (screenshot courtesy of WinWorld) and modern LibreOffice

Do you still use LibreOffice today, and do you have any contact with old Star Division team members?

Sorry to say that I have no contact any more with my has-been workmates. I left Star Division somewhat frustrated because it took so long for the good concepts to materialize and also, because I felt, I was not the right man to promote that. But I also had a pregnant girlfriend (now my wife) in Berlin, which was even a better reason to say good-bye.

Frankly, I was relieved and amazed to see the first product. It was not free at that time. I don’t think it really paid for Marco before it went to Sun Microsystems – anyway there was no free download. With my Zyxel 14.400 baud modem, it had taken a long time anyway. I got versions on batches of CDs from time to time from my friend Stefan, though, who was still with the project.

I was not so happy with the application at first, because at that time it was a monolithic “desktop” with all applications in its belly (like Writer, Calc, Impress and Draw, I believe), which took ages on my machine to load. I would have loved to see more collaboration in it: at that time that would meant an e-mail client and calendar.

Sometimes I thought to myself, “If I had to decide …” but ended with a sigh :“There would be no Star Writer to this very day”. In fact, it would be another interesting story, which changes it took to finally make it happen.

I never had Microsoft Office for myself (I like Microsoft Publisher for the themes and the artwork that came bundled with it, but somehow Pokémon Druckstudio was an acceptable replacement). I had to buy a Microsoft licence for my children though, because teachers did not expect that someone would not have access to Microsoft Office, and I was hesitant to end my child’s learning career over this.

I use LibreOffice almost every day now. It has all I need, and probably much more.

I use LibreOffice for my everyday correspondence, and less often I use it to create PDF files for printing. I have a nice set of Star Basic macros, and a good document template I load all the formatting from, to create a good-looking A5 format book from a text file or a website, in no time at all. Creating PDF files is very easy in LibreOffice, yet it has some uncommon features that come in very handy at times, like the option to export also blank pages (that would usually be omitted). Believe me, you don’t want to go to print without the blank pages.

The E-books that I create from the same document (printing is a bit out of fashion) have no frills (they could have, of course) but they are nice to read. I confess that I find it very convenient to load them into my Kindle account, from which I can read them on any device that comes near to me.

Well, I’m not a young man anymore, I like to say that before anyone else does, and programming to empower users (with more luck in later projects) is still my passion to this day. The StarOffice project has been with me more or (sometimes) less all the way, a bit like a child I gave up for adoption at an early age.

TDF says: Thanks to Stefan for the insights into the early days of StarOffice – and we’re happy to hear that he’s still using LibreOffice today!

LibreOffice Podcast, Episode #3 – Quality Assurance (QA) in Free and Open Source Software

Xisco Fauli, Ilmari Lauhakangas and Mike Saunders from The Document Foundation, the non-profit organisation behind LibreOffice, discuss Quality Assurance (QA) in free and open source software . (This video is also available on PeerTube.)

Please confirm that you want to play a YouTube video. By accepting, you will be accessing content from YouTube, a service provided by an external third party.

YouTube privacy policy

If you accept this notice, your choice will be saved and the page will refresh.

LibreOffice Podcast, Episode #2 – Design and UX in Free and Open Source Software

Heiko Tietze from LibreOffice’s Design community tells us about UI and UX improvements in the suite, how decisions are made, and more. (Also available on PeerTube).

Please confirm that you want to play a YouTube video. By accepting, you will be accessing content from YouTube, a service provided by an external third party.

YouTube privacy policy

If you accept this notice, your choice will be saved and the page will refresh.

Community Member Monday: Ndidi Folasade Ogboi

Ndidi Folasade Ogboi

Tell us a bit about yourself!

I live in Lagos, Nigeria, and I spend my time dabbling into user experience design with research, although these days, I’m diving deeper into research. I’m a big fan of books, especially well-written fiction. Music is also a huge part of my life. Let’s just say I love anything that sounds good and sing-alongs during work.

What are you working on in the LibreOffice project right now?

I am an Outreachy intern working on improving the LibreOffice Writer templates with guidance from my mentor, Heiko Tietze. I have spent the last month understanding the community’s pain points by carrying out a survey, analysing their responses and working to create functional templates that they need. Currently, I am iterating on priority templates like DIN 5008 Business Letter, resume and academic writing templates.

I am also doing some more research on template standards and reflecting on how to create templates that would help users. My top priority is to understand styling and implement it in the templates I am creating and also curate template contents that fits into prospective user preferences.

Why did you choose to join the project, and how was the experience?

During my Outreachy contribution phase, I had a list of open-source projects I could choose from, but at the time, I wanted to test the limits of my capacity. As a UX designer with no coding background, the first task for this project was to submit a patch on Gerrit.

Every other contributor left the task obviously because of the task complexity and I remember one of my mentors, Ilmari telling me that the competition had become less tense due to the number of contributors dropping the project. It was a challenge that pushed me out of my comfort zone as it was my first time interacting with code. That was it for me. Completing that task gave me a sense of achievement and made me even more excited to continue with the project.

Ah, it was challenging at first. I also dealt with anxiety because there was so much to do and I didn’t know where to start but later, the bits started coming together. Luckily for me, I have a mentor who has been supportive since I started the project back in December and who has made my experience seamless. Whenever I face a blocker, I know I have a mentor who is always ready to provide me with resources and connect me with other members of the community that have resources that would be useful for each project phases.

Anything else you plan to do in the future? What does LibreOffice really need?

I have decided to continue contributing to adding more templates to Writer and helping improve other aspects of user experience through user research and design after my internship ends. I like it here. Working on templates in Writer is challenging no doubt – but I think I like the way it stretches me, and helps me expand my skills in the area of research and thinking about a broader user audience.

Speaking from a UX perspective, I think LibreOffice could greatly benefit from a modernized UI mostly to improve accessibility and efficiency. When I started using the Writer interface, it was quite hard for me to navigate at first; there were no modal pop-ups to help sort of onboard me into the whole experience and so having to navigate all alone made me reluctant to use the Writer tool. I also look forward to the implementation of AI because seriously, it just makes navigation and usability way easier. For example, the implementation of AI-powered suggestions for formatting would make LibreOffice feel more modern.

Thanks to Ndidi for all her contributions! 😊

Hazard: A LibreOffice Impress template to play Jeopardy-like games

Hazard LibreOffice template screenshot

Marcial Machado recently posted on Reddit about his “fully-featured LibreOffice Impress template for creating Jeopardy-style games. Just add your questions and categories, and you’re good to go!” So let’s find out more…

What does the template do?

At its core, the template is meant to emulate what a game of Jeopardy is like. You can click on any of the squares on the game board and it will send you to the slide with the associated question, where you can either return to the board in the case of a misclick, or reveal the answer to the question. Returning to the board from the revealed answer slide will erase the square you clicked on to clearly show which questions are left to be answered.

You can also use the green and red arrows at the top to give and remove points to up to 6 teams in increments of 100, in order to keep track of everyone’s correctly- and incorrectly-guessed answers. Once the board’s cleared, you can click the pink button at the bottom right to clearly display the top three teams and the points they earned. I made sure to include details on how to edit, and use, the template in the first two slides!

Why did you develop it?

The simple reason for why I developed this template was because: I use LibreOffice, I wanted a Jeopardy presentation that worked in LibreOffice, and I couldn’t find one. The more verbose reason is that there is a comparative dearth of visually-appealing presentation templates in the OPT world than there is in the PPTX world; this is no fault of the creators of OPT templates, but rather because the proprietary nature of something like PowerPoint incentivizes templates made for profit, whereas most people who create LibreOffice Impress templates do it out of interest.

This necessarily means that there are just less people making LibreOffice Impress templates in total, without mentioning the much smaller userbase LibreOffice has compared with Microsoft Office. Now, some PowerPoint files do work in Impress, and the work done by the dev team and contributors is commendable, but a converted document is still a converted document. Formatting might be slightly off, and macros are almost always a bust. Since I realized I wanted this Jeopardy project to exist, and realizing my own frustration with the fact that such a project didn’t exist already, I went ahead and tried it out myself, and then released it to the public!

Hazard LibreOffice template screenshot

Do you have any tips for other people interested in creating templates in LibreOffice?

I have a few:

  • Focus on a problem you, yourself, have. You’ll be much more eager to bring a project to completion and to a high level of quality if you have a vetted interest in the final product.
  • Tell yourself that no one, ever, is going to make what you want to be made. The problem with a community of like-minded contributors is that everyone thinks everyone else is likely to fix the problem they have, so there’s a huge diffusion of responsibility; think of walking past some trash on the sidewalk and thinking, “someone else will pick that up eventually.” No! You be the one who throws it in the trash! In the same way, once you realize there’s an issue you can fix, or you can learn how to fix, be the one to fix it – no one else is gonna fix it for you!
  • Be patient. Like, really patient. Because no one is gonna fix this problem for you, you have all the time in the world to get it right. Read some documentation, go to some forums, sit on it a few days. Maybe get some feedback. Depend on time and on others to both find motivation and create a better end-product. The Jeopardy template I ended up releasing was the third completed project I made!

Get the template from here

Community Member Monday: Moritz Duge

Moritz Duge

Tell us a bit about yourself!

I live in the north of Germany, in the city of Hamburg. Probably not so far away from where the first lines of what was called StarWriter where written, just a year before I was born.

I remember downloading StarOffice over a 64 kbit/sec line around the year 1997. And since it turned into OpenOffice.org I used it for a lot of home work in high school, student jobs and finally my bachelor thesis in computer science. For StarOffice and OpenOffice I mainly used Windows. But around the time LibreOffice started I had shifted to Linux as a daily driver.

My first contact with the LibreOffice community was when I got into a conversation with a few people at the Chaos Computer Club Congress around 2013. And as most of the last 15 years I’ll be around at the CCC too this year. As a hobby I’m engaged in politics, pushing Open Source, data protection, privacy as well as environmental protection topics. And to calm down I’m cycling, pursuing my interest for astrophysics and recently started doing Yoga.

What are you working on in the LibreOffice project right now?

In summer I’ve reworked some parts of the GPG / OpenPGP and X.509 integration in LibreOffice. Drastically improving the performance for users with large GPG keyrings like me. But also making the GPG and X.509 workflows in the LibreOffice UI more user friendly. Knowing there’s still much work left to do.

Beside I’m mostly working on the web integration of LibreOffice. I’m spending a lot of time with LOWA (LibreOffice Web Assembly) builds, improving them with my colleague Stephan Bergmann, and even committed my first patch to Emscripten to improve LOWA debugging.

My top priority is currently to work on ZetaJS, which wraps UNO into a native JavaScript API.
It’s being used to integrate LibreOffice into web apps without the need for a huge server running server side LibreOffice processes. I’ve also written some nice example use cases like this one.

Why did you choose to join the project, and how was the experience?

I’ve worked with Linux for many years. Mainly as Ruby developer and web administrator. But I’ve always had a big interest into more classical technical environments. I really like strong typing. And I’ve collected some experience with big C code bases. Like when bisecting Wine to keep old Star Trek games running, or when debugging the amdgpu Linux driver for my notebook. Although not without great help from the AMD guys!

So when looking for new tasks, I remembered the LibreOffice guys I met at the CCC and I had some talks with Thorsten Behrens who kindly offered me a job at allotropia. For me LibreOffice is one of the flagship projects of Open Source beside the Linux kernel and Firefox. And I’m enthusiastically absorbing all the C++ insider knowledge I can get from my colleague Stephan 🙂

Surely I’m a little bit of a uncommon guy. In my old job I was usually the one who had an eye for what code did, which was written by people who left the company years ago. Maybe I should say something like “you can’t improve a software if you’re unwilling to understand the existing code base”. And I like to call LibreOffice “your friendly code base from the 90s” 😉

So there’s much archaeology I can do in LibreOffice. But I also love, that because of the code base being Open Source, many developers from 10, 20 or even more years ago are still in the community. So they might still remember what some code line was for.

I’ve always preferred decentralized solutions. And I know quite well how to get around with IRC, mailinglist and Bugzilla. So I’m probably not the regular guy of today, who’s conveniently doing everything via GitHub. Nevertheless, I hope I’m forgiven when stumbling over a few conventions I didn’t know before 🙂

Beside I very much enjoyed all the nice conversations at my first LibreOffice Conference this year. And I’ve held a few conference talks about my work with ZetaJS and the LibreOffice-GPG improvements in the recent months.

Please confirm that you want to play a YouTube video. By accepting, you will be accessing content from YouTube, a service provided by an external third party.

YouTube privacy policy

If you accept this notice, your choice will be saved and the page will refresh.

Anything else you plan to do in the future? What does LibreOffice really need?

Surely web, mobile and collaborative editing are important topics. I’m myself using Collabora Online even outside IT communities since years. But I like to see it work even better with low end servers like a Raspberry Pi, to enable everyone with a small home server to serve a LibreOffice-Online instance. So moving the actual LibreOffice binary from the server into the browser’s WASM engine and enabling P2P collaborative editing is definitely a long-term goal.

Besides that, I also see that machine learning, some call it AI, can help with a lot of simple tasks. Knowing that more difficult tasks like programming often end in quite disastrous results, machine learning might be a good opportunity to help beginners to create great documents quickly with LibreOffice. And free software like SpeechNote shows me, that there’s no need to run stuff through a questionable online service. But instead only the proper training models need to be provided.

Beside I always cherish rock-solid software. Nobody will continue to use an app which constantly crashes or stores data in a broken file, resulting in many hours of writing being lost. So as in many software projects, a big priority is always to just keep things running as well as they ran before.