Would you be kind enough to introduce yourself to our readers and state what you do for LibreOffice?
Certainly; I am Michael Meeks, Christian, Husband, Hacker – I’ve been working on the LibreOffice code-base for many years as well as doing some chunks of GNOME work, and various other pieces across Linux from boot-charting, to performance work on the toolchain. I’ve had the pleasure of working with a huge number of talented developers from SUSE and elsewhere over the years. For LibreOffice I’m a member of the Engineering Steering Committee – where we try to make decisions about our technical direction, release management and so on. I’m also a member of The Document Foundation board where we try to wrangle budgets, resolve conflicts, and other bits. What I really like best though is the day-to-day hacking – and most importantly helping other, often new people achieve great things in the code-base.
After many years of development, LibreOffice reached version 4.0 a few days ago. What is the importance of this forth major release?
It’s a great milestone on our journey on many axis. Our interoperability story is much improved for 4.0 with new features all over the place. Our Visio story is now much improved, the initial Publisher import filter brings another new first for Free Software, and of course the CMIS support bringing lots of interoperability with Sharepoint, Alfresco etc.
We’ve worked hard behind the scenes to improve code quality, cleanliness, code re-use and build-ability, we have tighter platform integration, we’ve run sets of lint tools over the code and fixed the results, we finally have extensive unit tests to improve out-of-the-box point-zero release quality. We’ve also got a port to Android that builds and a prototype viewer behind the scenes that we’re working on – I’d love to have people help out with that.
What else – fun new features like the Android Remote control for Impress are great, and with 4.0.1 (due next week) start to work rather well under Linux, Mac and Windows. It’s great to be able to see your slides, notes and so on in your hand.
We also have a large team at KACST who have made many improvements to Arabic / Indic / Hebrew right-to-left issues which is a set of critical cumulative work for a subset of users.
Although version 4.0 compatibility improvements and new features brought enthusiasm to the users, many were disappointed by the lack of substantial user interface improvements, while others went even further asking for a completely new GUI. Why do you think people complain about such a well-used-to interface? What is the problem with the current one?
Well, there are very, very many UI problems with LibreOffice – it’s really rather hard to know where to start. Basic editing operations confuse new users and often frustrate their ability to create the document that they want. We make a hash of exposing our (powerful) styles engine in a way that people want to use it, and well – almost anything you look at in LibreOffice needs UI improvement. Interestingly lots of these changes are really relatively simple in themselves – but there are very many of them, and they add up to something that is less than perfect.
For what it’s worth, I think our competition also suffer from a poor UI experience in many ways – and fiddling with the menus and toolbars – while an interesting approach is only a partial solution here. So far the approach that has yielded real progress has been to fix small things incrementally rather than attempting huge make-or-break re-write-from-scratch type mid-flight changes. Jan Holesovsky at SUSE has been working with Mirek from the design-team to do a number of really nice UI tweaks and improvements around the place, that have improved the look for 4.0. Jan is a great mentor if you want to help out on that.
Are there any serious plans towards the creation of a completely new GUI for LibreOffice? In what direction would something like that take place?
The most serious structural GUI work is being done by Caolan McNamara from RedHat, around improving our toolkit (VCL) to add layout capabilities. We re-use glade (and glade’s native XML format) yet still with cross-platform VCL widgets. Then we’re incrementally going through our dialogs, re-drawing and improving them to use that. That makes dialogs size-able, gives significant wins to i18n and a11y to enable platform-native widgets in future and to better comply with modern UX practise / HIGs. That is a huge task, clearly. Of around 500 dialogs we have around 150 converted so far. On the plus side, that’s a great project to jump into and is substantially a mechanical code-conversion task.
What is the state of the GTK3 port and when are you going to make the leap?
The gtk3 port sits under the covers and enables our cloud / broadway prototype currently – but it is very lacking compared to our gtk2 port. I had high hopes initially that the way theming is done in gtk3 would be much better for apps like LibreOffice. Sadly while somethings are improved, simple things like populating our default colors for eg. menu text are made significantly more complicated by CSS. And of course, new dynamic widget rendering / colouring features are really hard to integrate without true native widgets. In consequence, volunteers tend to continue to invest time in improving our gtk2 theming code – which is slightly sad. Then again, the new layout work should in time enable true platform native widgets which might help somewhat here – though we have a lot of custom widgets too.
The gtk3 port is still somewhat buggy and slow when it comes to the client-side rendering which we do inside VCL itself; and things like GStreamer integration don’t work with gtk3 yet. So – it’s probably around a man month away from being a useful, ship-able backend.
Luckily, we can compile against both gtk2 and gtk3 and choose dynamically which to use at run-time, so you can try this out just by enabling experimental mode [ assuming your distro built with gtk3 support – something that we can’t easily do in our generic Linux builds due to backwards compatibility issues ].
Since you are one of the first ever Gnome developers, you are the right person to ask about integration. Gnome notifications and application menus are still not there yet. Are we going to see some Gnome integration improvements in the next versions?
Of course I still care about GNOME. I’m not entirely sure how we can best use notifications in LibreOffice – creative suggestions for some things to notify about appreciated: “now listening for a bluetooth remote” or something ? It doesn’t sound too difficult to add that – doing it tastefully so it makes sense is the key. Last I looked our only use of notifications was via zenity for compile-time progress / feedback. Clearly we have great Gtk+ file selection integration, we now have plug-able GtkPrint integration (but it’s still an ‘experimental’ feature for various API mismatch and functionality reasons). We recently added some PackageKit hooks too to allow installing missing pieces later – useful for those installing from Live-CDs.
As for application menus – Canonical funded some work to integrate via GMenuModel and various other magic with Unity for our 4.0 release (again only in distribution builds). I read a little once about GNOME Shell integration – which seemed to require moving only the ‘File’ menu into the bar, and then ask applications to put all their other menus as a child of a toolbar button somehow. That appeared to me to yield a massive reduction in usability so I did no work there yet. Hopefully when I’m finally running the shell in GNOME 3.8 with some enabling classic-mode pieces, I’ll be able to do some integration hacks in this area, and work out what is going on.
One thing I’m excited about is the ‘Documents’ browser that the UI guys (and Cosimo) have come up with – I’d love to be embedding LibreOffice there. Indeed, we have an experimentation idea for a Google Summer of Code project to work on that which should
be really fun. I’d love to have a student interested in working on that with me this summer. Re-factoring a good, small, fast tiled renderer out of our core is something we’ve started for our mobile ports, but needs some real improvement that integration in Documents can provide.
LibreOffice impress remote for Android devices was a fantastic little tool to offer with the 4.0 release. Should we be hoping for more things on the Android front soon?
I’m glad you like the remote – that’s a chunk of work from Andrzej Hunt, myself, Tor Lillqvist and others and it’s looking really good cross-platform for 4.0.1 – but you really need the pre-release version. It is a nice example of a really sweet feature pushed into the mass market by Free Software.
As for porting the main app to Android, the latest and greatest code for this is in master and can be played with for a viewer – it’s in a pre-Alpha state currently, but most of the most vile problems of cross-compiling and bootstrapping on Android are already solved. If you want to hack on it you can get hourly builds for X86 and ARM – but unless you’re going to help fix bugs, there’s no need for end-user QA just yet.
My last question is about the rumors that we heard lately, that want Microsoft preparing a Linux version for Office. How would something like that affect LibreOffice in your opinion?
Clearly we compete vigorously with Microsoft in this space. So far there is no real competition in the Linux Desktop space which is nice. Having said that – I use Codeweavers / WINE routinely to run MS Office under Linux for interoperability testing, and to run our Windows LibreOffice builds too – it’s a wonderful tool. So – clearly technically this is not a terribly hard thing to do – the rest is just a business decision someone else has to make; good luck with that.
As for how that would affect LibreOffice, from our direct downloads we know that around 87% of our users are on Windows, 10% on Mac, and 2% on Linux (the other 1% is some rounding error). As such we seem to be competing quite nicely on all platforms. That of course doesn’t show the scale of our Linux user base since it neglects pre-installed distribution builds of LibreOffice.
For me though, Free Software is about the awesome social goodness of working together with friends in the open at a common goal and excelling at the tough engineering challenges we’ve set ourselves. I’m convinced LibreOffice will always be better than any proprietary alternative for this alone.