If you are a scientist and KDE user, you may already have been impressed by the range and quality of specialist software available for your use. But you may not be aware of the scientific graph plotting applications LabPlot (stable KDE 3 release with a KDE 4 version in progress) and SciDAVis (Qt4). The two projects have announced a collaboration to share common backend code to accelerate their development. We contacted the developers to get their take on their applications, the collaboration and the future of their projects. Read on to find out about the future of free software plotting.
The core developers we interviewed were extremely helpful in replying to a long list of questions we sent them in great detail and the following is a heavily edited summary of their responses. If you'd like to see exactly what they said then read the full interview.
LabPlot was started back in 2001 by Stefan Gerlach (a scientist, lecturer and IT administrator in the department of theoretical physics at the University of Konstanz) because he “needed a good plotting program and couldn't find any”. In 2006 he realized it “was time to take the next step [...] to really open up the project” and started working on the KDE 4 LabPlot 2. Stefan has another claim to fame in starting the liborigin project, a library used to import projects from the proprietary Origin program. Alexander Semke (working in theoretical hadron physics at GSI in Darmstadt) joined the LabPlot project in 2008. He'd previously used Grace, but “was never happy and comfortable with this motif-based piece of software”. LabPlot, though not everything he wanted, “had the biggest potential”. So, he joined the project: “I contacted Stefan and offered my help. There were no objections :-)”
Stefan describes LabPlot as a free KDE data analysis and visualization program that “tries to combine most of the features needed for advanced data analysis and high-quality plots under a user friendly GUI”. Alexander wants SciDAVis and LabPlot to be “the plotting application the Linux users thinks of first”.
Tilman Benkert (a former scientist now working as a software developer in Stuttgart) joined QtiPlot development after having to use Origin for his PhD thesis and publications due to a lack of a comparable free software alternative. He and Knut Franke (currently working on his diploma thesis in theoretical physics near Cologne) forked QtiPlot in 2007 to start the SciDAVis (Scientific Data Analysis and Visualisation) project and they were joined by Roger Gadiou, QtiPlot's documentation writer at the time. As Knut puts it, the fork happened because they had “different ideas [than Ion Vasilief, QtiPlot's founder and main developer] about many things, including design goals, management of community resources and the right way to make money from a free software project”. Extensive sharing of code between QtiPlot and SciDAVis in the future is unlikely – Tilman explains that “SciDAVis 0.2.0 already features an almost complete rewrite of the table and matrix code to make (among other things) the undo/redo functionality possible”. However, Knut sees some libraries used in QtiPlot that may have an application in SciDAVis: “namely liborigin2 (an improved version of the liborigin project[...]) and libraries for exporting graphics from Qt to TeX and to EMF”.
Tilman describes SciDAVis as “an interactive cross-platform data analysis and visualization program [...] aimed at high-quality plotting of scientific data” and says it “strives to combine an intuitive, easy-to-use graphical user interface with powerful features”. Knut agrees with this and explains his ultimate vision for SciDAVis as being “simple in contrast to completely script-driven tools like GNUPlot or matplotlib and [...] badly designed GUI tools such as Origin and Grace”. Additionally, SciDAVis is “powerful, because you can write Python scripts for automating tasks”. However, he modestly states that “in practically all regards, we haven't reached these grand goals yet, which is reflected by the pre-1.0 version number. Still, SciDAVis is already usable for many tasks”.
None of the developers get paid for working on the projects, so why do they contribute and make their work available as free software? There's a general sense that it's something they enjoy and that they want to make a contribution to the free software community. As Knut puts it: “I'm using the application myself, it is rewarding to see your work being useful to other people and it's a chance to give back something to the free software community that has provided me with so many great tools”. Stefan also wants to “give something back” and Tilman enjoys “creating something useful, practicing my coding skills and being an active part of the free software community”. For Alexander it's a mixture of scratching his own itch - “a stable and feature complete plotting software for linux for my own use” - and giving something back. He's been using Linux for about ten years and “from the very beginning [...] I wanted to be a part of this community, but the time elapsed and nothing happened due to the lack of time” but the “community can only survive, if a certain amount of developers participate actively in it [...] there always was a feeling of guilt – you can help, you do have the knowledge for it [...] but you don't contribute anything”.
Stefan started LabPlot as free software with the aim of “working together without any limitations”. He also had a desire to “be part of this community that created software with a quality that proprietary applications hardly ever reach”. For SciDAVis, forking from GPL QtiPlot code meant there was never going to be a debate over the licence to use. However, Knut “wouldn't want to change the license”. He acknowledges that they may “have fewer resources than a comparable commercial project, so whether it's the best way of 'getting things done' is probably arguable. It is a great way of getting the right things done, though; because you have no deadlines, marketing requirements or hierarchies that influence decisions. If you want something changed, you just do it”. Equally, “compared with selling an application as a freelance developer, you get more contributions from other people, enabling you to create something larger than what you could possible do on your own; and you get free promotion by being included in Linux distributions, and by being featured on the dot. ;-)”. Tilman summarises: “It's basically because of the four freedoms of the free software definition”.
The developers haven't generally been involved heavily in other projects (except for Stefan's work on liborigin), mainly due to a lack of time. Tilman would like to be involved in other projects “if a day had at least 48 hours. ;-)”
So how did the projects come to work together and what can we expect from the collaboration? When starting SciDAVis Tilman already knew about LabPlot but back then “there was only version 1.x which is using Qt3. Since SciDAVis used Qt4 right from the start and LabPlot 1.x also didn't have an architecture similar to what we wanted, it wasn't very well suited for a collaboration at first”. The collaboration grew out of the rewrite of LabPlot for KDE 4 and a user suggesting sharing their efforts. As Tilman recalls, “some time after the LabPlot guys started the KDE 4/Qt4-based rewrite (version 2.x), a SciDAVis user pointed out that we seem to pursue similar goals. So we contacted the labplot-devel mailing list, found out that he was right, and the collaboration started”.
Alexander has high hopes for the collaboration: “The hope is that this [...] will lead to the best plotting software the world has ever seen :-)”. Agreed is that “a big part of the code (primarily placed in the backend) will be used in both projects” and Stefan hopes this may be “made available as libraries some day”. Knut comments that such a library “could also be used for creating other (possibly special-purpose) interfaces and for stand-alone scripts”.
The collaboration has stopped short of merging the projects for a few reasons. There are (presently at least) different approaches to the user interface. Alexander notes that “SciDAVis, being a fork of QtiPlot, provides an Origin like way of doing plotting. LabPlot has a different approach. Both programs have their own user basis. This fact justifies the development of two UIs supporting different workflows”. Knut agrees with this but sees a bigger obstacle in the choice of pure Qt or KDE in the applications: “SciDAVis is expressly cross-platform, and the practical viability of KDE on Windows and Mac OS X remains to be proven. LabPlot on the other hand puts some emphasis on its integration with KDE”. Tilman also believes that “Mac OS and Windows users would be discouraged to use SciDAVis if they have to install KDE as a dependency”. Further unification down the line is not ruled out however – Alexander ponders the possibility that “maybe we'll rethink the current designs and end up with a common interface. In this case we'll still provide a KDE version of the program to better fit into the desktop” while Stefan says “if it turns out that no one is using the KDE frontend anymore I would of course help to support the Qt frontend”. In any case, Alexander argues that “a big part of the code will be used in both projects so concentration of resources on the common goals is already achieved”.
The respective choices of Qt and KDE follow similar reasoning. SciDAVis came from a fork of the Qt QtiPlot and so the simplest thing was to keep it Qt. For Stefan “the main platform for LabPlot always was the free software desktop. KDE has some nice things that are not available in Qt (like standard dialogs, icons, communication between application, application configurations, etc.)”. He's also excited about the possibilities KDE 4 will open up: “now that KDE 4 is supported on Mac and even on Windows platforms we may be able to have these features available there too”. For Alexander it was simple: “KDE is my favorite desktop. That's it :-)”. The developers also acknowledge several other projects whose technology they put to good use: the GNU Scientific Library for math, muParser, SIP and PyQt for scripting, QwtPlot3D for 3D plotting, and Qwt for 2D although Tilman says they are “working on replacing Qwt, as it is focused on widgets rather than export quality and has a couple of limitations due to it's backward compatibility to Qt3”. Stefan hopes for more import/export libraries.
Both projects have seen a lot of rewriting of code they inherited from their predecessors. Stefan began a direct port of LabPlot from KDE 3 to KDE 4 “but soon realized that it would be less work and produces cleaner code to start from scratch”. Alexander traces these major changes back to the collaboration with SciDAVis: “there was a very vivid discussion on labplot-devel about the future plans and it became very soon clear that it is worth rewriting the application completely. The SciDAVis guys brought a lot of code into the LabPlot project [...] so we didn't need to start from scratch.” He wants to move away from the dialog based interface of LabPlot 1.x - “the problems with dialogs are apparent – they cover the important information but they make the user click the 'Ok' or 'Apply' buttons all the time. This problems can be solved by using dock widgets like in Koffice2”. Tilman says that in SciDAVis too there have been a lot of changes from the QtiPlot code - “we have been and will be replacing a lot of code completely to overcome limitations of the Qt3 heritage and the inflexible architecture”.
With all these changes taking place, you might wonder about the current stability of the applications. Knut says “SciDAVis is pretty stable; fixing bugs has been a major focus of our work but the common development code (LabPlot 2.0 alpha) is neither particularly stable nor anywhere near feature-complete”. Tilman also gives SciDAVis a vote of confidence: “the stable SciDAVis branch is maintained separately from the bleeding edge development code and new features are merged only slowly into the stable version to keep it stable and usable at all times”. For LabPlot, Stefan states: “LabPlot 1.6 is stable since 2006” and Alexander also believes it is “quite usable but has some issues with stability and broken layouts at different locations in the UI[...] The alpha version of LabPlot 2 is not usable at the moment”. Nonetheless, the brave can check out the current development code of LabPlot 2 from the project's SVN. Do the developers use their own applications in their daily work? Tilman doesn't need such an application day to day, while Stefan uses GNUPlot and Grace mainly. Knut is using SciDAVis and Alexander uses mostly a combination of Mathematica and Grace.
LabPlot 1.6 and SciDAVis 0.2 are the releases for getting work done at the moment - but when can we expect to see LabPlot 2 and SciDAVis 0.3 arriving? The consensus was “when they are ready” although Tilman offered that it depends on when “the 50 developers come along who help us finish them in no time ;-)”. There is a need for contributors then. Tilman is glad that “SciDAVis benefits from several contributors who write documentation, prepare binary packages, provide translations, report bugs, and suggest features. Most needed are developers, though”. Stefan's current wishes for LabPlot are “help regarding the website and the documentation of LabPlot needs to be written someday. Of course developers are always welcome, but also non-coders can send us bug-reports and ideas in various ways (bug tracker, mailing lists, etc.)”. Knut has a catalogue of potential jobs waiting for you: “bugfixing / feature implementation tasks [...] documentation writing, creating packages for Linux distributions that don't have one (e.g. Ubuntu) [...] translations [...] extending the web pages and/or creating wiki content. Apart from that, if you think you can make the application or the project better/prettier/friendlier in some other way, do let us know”.
Outside LabPLot and SciDAVis, the core developers are all using KDE on Linux, although Tilman also uses Windows for gaming and in his job. Mostly they are on KDE 4, except for Stefan who mainly uses KDE 3. When asked for their favourite KDE applications Kmail/Kontact, Amarok, Krusader, K3B, Konsole, Okular, Dragon Player, Kdevelop, Kate, Kile, Digikam, Konqueror and Kopete all got honorable mentions. Knut admires Kmail as an example of an advanced application with an intuitive interface, something he hopes to replicate in SciDAVis: “it is usable even for novice users, although it has some rather advanced features”. Reflecting on the strengths of KDE, Knut would also “like to mention the nifty Plasma desktop at this point :-)”. Not too much seems to be lacking from their ideal desktop, but Stefan would like to see “a nice application for organizing scientific papers”.
Any final words from the four interviewees? Well, Stefan wanted to “thank all people working on SciDAVis and LabPlot. It is really nice to work with you on this project. Hopefully we can sort all things out soon and will be able to deliver an application that was never available before :-)”. All seemed keen to take advantage of the opportunity for a little promotion. If you produce graphs in your daily work (or just for fun) and find that KOffice and OpenOffice don't quite do it for you and the likes of GNUPlot are a little scary then LabPlot and SciDAVis are both well worth checking out. They'll both give you publication quality plots of your data – so then all you'll need is some publication-ready data.