Wednesday, May 11, 2011

Calligra is the Future of Free Software Office Suites

Edit and foreword: Some people told me offline that this blog can be read as aggressive towards LibreOffice. That is not my intention at all. Just look at it as a post highlighting the advantages and strong points of the Calligra Suite. So without further ado...

A couple of days ago Michael Meeks published a blog called 'LibreOffice is the future of Free Software Office suites'. Michael is one of the lead developers of LibreOffice and also one of the founders of the Document Foundation, the organization behind LibreOffice. In that blog he makes a number of points that leads to his conclusion in the title:
  • LibreOffice is vendor neutral
  • LibreOffice is robust to participants leaving
  • Linux distributions are safer with LibreOffice
  • LibreOffice has a different, and better QA model
  • Division is (sadly) sometimes necessary
  • The Document Foundation champions ODF
  • We are transparent about our contributors
Each of those points is a section in the text. If you haven't read the blog already, you should probably do that now before continuing your reading here. It's quite long but it's a good read.

However...

What is obvious when reading that text is that Michael only compares LibreOffice to one other free office suite: OpenOffice.org. He probably has a good platform to stand on when saying that compared to OpenOffice.org, LibreOffice is more future secure.

But let's examine his arguments in relation to another free office suite: the Calligra Suite (short: Calligra). And more importantly, let's examine what he is
not saying.

First of all, all of the advantages mentioned above are also true for Calligra. We don't have the Document Foundation behind us, but we do have one of the largest open source communities on Earth: the KDE community. Other than that, the similiarities are striking.

But what do we have more? We have:
  • Flexibility
  • A Clean and Well Kept Ćode Base
  • Qt
Let's examine them one by one.

Flexibility

The Calligra suite is incredibly flexible. Most of the code form the shared libraries or shared plugins. The applications themselves comprise only a small minority of the total code. Only code that is unique to a particular application is maintained for that application; if anything can be shared, it is immediately moved to a library or a plugin that can be used in all applications.

Calligra also has a strong separation between the engine and user interfaces. This means that it's easy to create new user interfaces for new situations or environments. Today Calligra has two officially supported user interfaces on top of the engine: a standard desktop one and one for smartphones (Calligra Mobile). There is also a new, more general, user interface being developed for tablets and other touch based devices. In addition to that, several companies are at this moment developing their own user interfaces for their own special needs on top of the Calligra engine.

Calligra can be adapted to the needs of new user groups very easily. In OpenOffice.org there was a long-running project called OOo4Kids. This project aimed (aims?) at producing a simplified user interface for kids and took several years to develop. The same could have been done using our Flake technology in 2-3 weeks.

It is also easy to create a subset of the standard features for Calligra by disabling or simply not installing a number of the plugins. If you want to extend Calligra, it is similarly easy to create new plugins and add them to your installation.


A Clean and Well Kept Code Base

Calligra has a clean and well kept code base. This means that code that can be shared is shared. There is no old garbage lying around in the corners. The directory structure is sound.

To mention some things that we don't have:
  • There are no comments in German that have to be translated.
  • There are no large chunks of disabled code that was left for future reference because no version control system was used for a long time.
  • We have one string class instead of five(!).
  • We have one bool variable type instead of four (of which one can take 3 values).
  • We have one textbox implementation for all of Calligra and not one for the text application and one for the presentation application.
In addition to what LibreOffice has, Calligra has one very advanced painting program (Krita), one project management application (Plan) and one note-taking application (Braindump). In the next release there will also be a new application for doing network diagrams (Flow).

All of this is created by 1.1 MLoC (million lines of code), as opposed to 5.5 MLoC for LibreOffice, according to the sloccount tool.

This all means that if you work on Calligra you will:
  • quicker get up to speed with the code base
  • get more done with less work
  • have to step around fewer roadblocks
  • have more fun (ok, this one is subjective)
How much better productivity will this lead to? Let's see in the next section.

Qt

I would wager a significant sum that the main reason why Calligra gets so much done with so little is because of the Qt toolkit, a free C++ toolkit under LGPL. In my opinion, Qt is the best toolkit anywhere for C++, and most likely for any language. Not only is it very, very efficient to work with, it is also very comprehensive and wide-ranging.

And it is developed from the start to be cross-platform. Using Qt means that you will immediately have a head start when it comes to portability. Qt runs on Linux, Windows, Mac OS X and many embedded platforms, and with a native look&feel. Calligra runs on most Unix variants today. It can be built and run on Windows; it is not yet packaged but will soon be.

If Calligra was only using Qt, it would also already run on Mac OS X, but we also use parts of the KDE libraries, some parts of which are not yet ported to the Macintosh platform.

Here are some of the features of the Qt toolkit that we use in Calligra and which applications using other toolkits (or none at all) have to implement themselves:
  • A graphics toolkit with native look and feel on different platforms.
  • Platform abstraction.
  • An advanced UI toolkit with many different layout options that adapt to different dialog sizes.
  • A dialog builder that can autogenerate code (Qt Designer)
  • Advanced graphics primitives and paint model.
  • XML parsing and generation (although we have some code of our own here)
We also use some features from the KDE libraries:
  • An advanced system for internationalization and localization
  • Plugin finding and loading
  • Object embedding, allowing embedding of Calligra components in other applications (KParts)
So how much does this buy us? Let us look at an example.

LibreOffice has a Google Summer of Code project called 'Implementing multi-line edit bar in calc'. The abstract says:


Libre office is an opensource multi-platform productivity suite. Calc is used to perform calculations, analyse information and manage lists in spreadsheets. But currently it is very tedious to edit the cell contents when the contents grows in length. The contents keep spreading horizontally along the single line text input bar provided. The aim of this project is to implement a multi-line re-sizable input bar with a scroll bar and word wrap feature, which when its contents grow will shift the overflowing string to the next line. This will provide easier editing of the cell contents and will provide a more modular user interface.

This sounds like a worthwhile project. To show large formulas in a single line is bad usability. But at what cost?

A Google Summer of Code project is supposed to take a little over 2 months for the students to code, including time to get familiar with the code base and tools. Compare this with doing the same project using Qt: it would be done in 10-20 lines of code as far as I understand. Let's allow for some advanced features and call it 1000 lines. Still a significant difference in effort needed, almost a factor 10. The same difference can be seen in the OOo4Kids project mentioned above.


Conclusion

OpenOffice.org and to a lesser degree LibreOffice have many many more users than Calligra at this point. However, they are all at the desktop using full-sized screens. Because of the big memory and CPU footprint and the heavy intertwining of the UI with the engine they will not be able to adapt to the mobile arena with touch input and much smaller screens in many years.

Calligra on the other hand, already has adapted to those environments. There exists already today a community UI called Calligra Mobile which is well integrated into Maemo 5 on the Nokia N900. This interface is easy to adapt to other operating systems like MeeGo. At the same time, there are several other UI's being developed outside public eyes to be released in a few months.

The Calligra engine is today of high quality and with most of the ODF feature set covered. The user interfaces for the desktop is lagging behind, but the community has just started improving it with the help of user interface designers. To the help we have a clean, efficient code base and the best toolkit on Earth. The community is growing with new developers every week.

This is a race between Achilles and the Tortoise. The Tortoise has a long head start, but there is no way he will be able to keep up with the agility and speed of Achilles. So in the short, maybe medium, term LibreOffice is the future of free software office suites. On the desktop.

In the long run, and already now on non-desktop environments, Calligra is the future of free software office suites.

33 Comments:

Blogger Bios Element said...

I totally agree. I've always thought it odd how LibreOffice always gets front page attention when it's really not 'that' amazing of a product.

9:40 PM  
Blogger SDiZ said...

If KOffice is so much better, why it have lower adoption?

Yes.

You guess it right: Windows.

Koffice always take windows as a second class citizen. The windows installer downloads from a repository with missing dependency here or there.

11:26 PM  
Blogger Phil & Pam said...

I would tend to say you are pretty much on the money with your summary BUT and you did mention them, not all the equivalent bases in daily usability are yet covered. Until users can happily use Calligra on Linux, Mac or Windows just the same as they do MS Office they will continue to opt for the package that has allowed them to do so and in almost a mirror fashion - LibreOffice (OOo). Don't get me wrong, I really want Calligra to gain higher adoption rates but alas I don't think that will happen till it is all just transparent to the everyday user and gives them at least what LibreOffice does.

Let's just hope that soon Calligri will be the "apparent" equivalent of LibreOffice/MS Office to the everyday user. Some good old fashioned heavy publicising of the product and I think we are in with a chance. I am sure most coders would be more than happy with that outcome but they won't look at coding Calligra if it doesn't have a userbase. Chicken and Egg type of thing.

Take a look at comparisons of suites in wikipedia for example and the things that immediately stick out with Calligra are XML support and PDF. Now Wikipedia doesn't specify much, it just shows that LibreOffice is given the tick (it shows YES) whereas Calligra is shown as Import under XML. For PDF Calligra shows Export Only. Now most people reading this will know that the PDF Import function in Libre/OOo is basic to be kind but Joe Average User doesn't necessarily know that. They see that there is some kind of exception showing for Calligra - that can't be good. It is obvious that we need to see "Like" responses in all those boxes before people will believe Calligra can do all that LibreOffice does if we are going to get more users to adopt Calligra. I don't think the coders need convincing of the beauty of Q so much as what the Users need to be convinced it is worth the change to Calligra.

Let's go for it - this is a great product that needs just a little more of the nuts and bolts tightened and we are away.

11:59 PM  
Blogger Kirilo said...

I warmly welcome the concept of Calligra and understand that it is superior to LibreOffice for some theoretical reasons, but if you try to get your work done (I'm talking about the word processor) you just have to go back to LibreOffice: Even after three main versions after the rewrite basic functionality like footnotes or tables are poorly or not at all implemented.
And have a look at the screenshot http://www.cyrilbrosch-net/kword.png - a document containing a picture, some text, a table and footnotes, all mashed up.
Sorry, but in this deplorable state KWord is just for writing letters. Although I would really like to give it a try, it's simply not possible.

1:11 AM  
Blogger Kirilo said...

Of course, the link in my former comment should be http://www.cyrilbrosch.net/kword.png
For comparison, here is what it should look like: http://www.cyrilbrosch.net/lo.png

1:16 AM  
Blogger ingwa said...

Bios: I don't think that's strange at all. Right now LibreOffic *is* a much better product when you look at it from the user point of view. My blog was not about that, but about the long term development potential.

SDiZ: Calligra (and KOffice) are not so much better. I'm just saying they have a better foundation for future development. Packaging of Calligra for Windows is coming.

Phil&Pam: Yes, very true. And work to improve the desktop user interface has begun. Over the next few months we will release a series of snapshots before the real release and any feedback on those are much appreciated.

Kirilo: KOffice is not Calligra. KOffice is what Calligra was 6 months ago and there have been many many improvements since then. One of the things that we put special attention to was text layout. Tables is a special focus area of that. If you could create a bug on bugs.kde.org and attach that file, I will make sure that it is tested with the current Calligra Words, and if it doesn't work we will fix it. If you don't want that, you can send it to me and I will forward it to the Words maintainer. The file is also interesting because it contains a non-western character set, which we don't have many test files for.

5:23 AM  
Blogger Paristo said...

I would say that KOffice (and/or Calligra) is the future. Why?

Because ODF is not same thing as OpenOffice.org or LibreOffice.

Ain't that the whole point with ODF that we would not need to care at all what the F***** software we use?
If we start pushing one software/company etc over others, we are not better than those who wants to make proprietary formats and software!

Open Source is about freedom, and to get that, we need to stand in same line.
If we give someone too much attention and/or power, they abuse it. Example OpenOffice.org were slow, it did not actually developed the software anymore as fast as it should have been. The development should be rapid.
Canonical has taken software from upstream and does not contribute back almost anything and still markets all them as own and is trying to generate a own fanatic group of followers what some of the Apple clients and MS clients are.

KOffice and Calligra needs more attention but it need to be do right, always remember the community and the teamwork. Never steal others fame and respect who did what and publicity tell always people clearly who actually makes the software.

Calligra has change to be a good part of the community but it can turn easily bad as what happened with Canonical and OpenOffice.org.

8:52 AM  
Blogger Nicolas said...

Any date for an official version of Calligra so normal people can use this suite?

11:06 AM  
Blogger Rafael said...

Well... if you take the analogy of Achilles and the tortoise, then Calligra will never catch up. ;) Be careful with your analogies...

1:09 PM  
Blogger Aquí No said...

We believe in Calligra. That's the matter.

5:05 PM  
Blogger Tucanae Services said...

In light of what is happening with TrollTech owners of Qt and Nokia's move to Windows7 Phone I might hedge bets on the stability angle till further notice.

6:47 PM  
Blogger Paul said...

When do you expect some kind of release version of Calligra that differs from KOffice? I use PCCLinuxOS as my distro and all that's available is KOffice. I'm not sure if that's because they haven't taken the time to package it, or because there isn't a Calligra release yet.

9:27 PM  
Blogger Bruce said...

looking forward to Calligra when it available... very much hoping two things will be sorted though: currently there is a problem with the cursor in KWord making it unusable, being able to freeze rows and columns in KSpread, as will as the split option

10:45 PM  
Blogger Petar said...

The instructions on the site are for KOffice !?

2:01 AM  
Blogger stefon said...

just for the sake of correctness: Achilles is NEVER able to overtake the tortoise. (in the mathematical sense this metaphor is used ) *g*

but im happy to read about the activities of calligra!

4:08 AM  
Blogger ingwa said...

First: The comments that were already on this blog were *not* removed by me. There was a crash at blogger.com and they lost all posts from a period of 30 hours. Apparently they managed to restore the posts, but not the comments. :-(

Paul: The first snapshot will be released on wednesday, and the first official release somewhere this fall. We are looking at september or october. The snapshot will be packaged by most linux distros, but you will have to install a new repo, most likely.

Bruce: The bugs are probably fixed already. The feature wishes are being taken care of as fast as we can, but we do have to prioritize. Focus and prio 1 right now are fixing usability problems. Prio 2 is adding editing capabilities to features that are already supported by the engine and also the occasional new feature.

Peter: That will be fixed before the snapshot.

Stefan: both you and I know how that really works out, don't we? :-) The so-called paradox is only created to illustrate faulty thinking.

4:42 AM  
Blogger Viale Fabrice said...

I will be please that calligra succeeds... But if it is so marvellous, why Koffice - Calligra are in beta state for the origin? And frankly, time that KDE developers learn to build user interface (and especially Calligra ones). Moreover stop the pathetic and parochial behaviors that consist at claiming your library is bigger than the others. The results are disappointing.

12:38 AM  
Blogger urbanofreitas said...

Diversity and options are desirable and a good thing.

Calligra Suite seems a very promising office suite, but for me, that enjoy open software (not strictly free!) the goal should be to build a Free Software Office Suite that is better than Microsoft Office!

So I thing that both projects should think in partnerships rather strictly compete. Don't have to merge ;), but find common areas where can collaborate and be better than MS Office.


Keep the awesome work.

12:39 AM  
Blogger GreyGeek77 said...

For those suggesting that Nokia's control of the Qt API may mean the death or crippling of Qt, they should read the KDE Free Qt Foundation agreement with Nokia, which is here.

Qt is not in any danger, and if Nokia fails to uphold the agreement to keep significant updates flowing at least at an annual rate, then it can forked if necessary.

9:12 AM  
Blogger Clareview Perspective said...

Like many others, I agree that Calligra has the best potential, and I can hardly wait until it bears more fruit than at present.

Best of fortune with the first public release. I am convinced you're on the right path.

3:51 PM  
Blogger Neomito said...

Ojalas y Calligra mejore en muchos aspectos io lo use en su nombre antiguo koffice q por cierto me dio algunos problemas elcursor no aparecia y no podia ver donde estaba algo q tambien vi es q cuando queria hacer enter no veia si mis oracion de letras terminaba.... pero bueno ojalas y calligra no se demore mucho me agrada mucho su interfas pero le falta muchisimo

3:21 PM  
Blogger Smart Blogger said...

I have used Libere Office and found it quiet similar to MS Office, but still there are quiet changes. Since that is not so popular in India, I found it a bit difficult in finding some tools during use. But it can be handy with use and may be better than MS Office. I want there to be some feature like PDF to Word Converter which will be nice to have.

6:00 AM  
Blogger Isolde Alexeyeva said...

You guys make it really easy for all the folks out there.
bookmaking service

5:58 AM  
Blogger Antic_Hero said...

These articles have got complete sense without confusing the readers.website tutorial

11:45 PM  
Blogger JaT said...

Does your stupid word processor allow language tagging of the text now?

7:47 AM  
Blogger saM1 said...

I'm just looking for an alternative to open/libre office so as you said "go for it". I'm wanna try this office suit (sure i want), but those dependencies about kdebase and kdelibs are so heavy for a lfs+xfce4 user like me (siag office is not an option). I'm feel stuck on OOS against my will but hey, i can't do it better (sadly =().

Hope calligra (or kde) community make it more independent from kde desktop some day.

2:37 PM  
Blogger Arshpreet Wadehra said...

Nice Post
AASHUZONE

7:24 AM  
Blogger Sweet Fairy said...

I agree. And i have stored this and a lot more software in a safe hard drive i only need to update them.

9:10 AM  
Blogger James McCarthy said...

Great post! I am sure many will get interested with this "software companies" Thanks for sharing this post. I learned a lot. Keep posting!

10:36 AM  
Blogger James McCarthy said...

Thanks for your statement in software company section. I had truly enjoyed what you had to say. These comments have really supported my zeal in writing for several of the newest topics.

1:46 AM  
Blogger ChrisDar said...

I agree with much of what you state in this ingwa. Thanks for sharing.
Medisoft

7:10 PM  
Blogger Sampson Greenovich said...

I love to help people. There are a lot of people out there that need the help of others. I always want to be that person that is able to help others.
http://lvaccident.com/

5:00 PM  
Blogger John Dudley said...

Acetech is a leading software development company with a delivery center in Dwaka Delhi , India.To know more about Acetech services Visit:- http://www.acetechindia.com/about-us.html

5:55 AM  

Post a Comment

<< Home