Die Geschichte von Matrex [1] beginnt wie die vieler anderer freier Projekte – jemand ist unzufrieden mit einer vorhandenen Software, programmiert etwas Neues, veröffentlicht eine erste Version und findet in der Community andere kreative Köpfe, die mitarbeiten, das Programm portieren und übersetzen oder Anleitungen schreiben. So geschehen auch im Sommer 2006, als Andrea Ferrandi sich über seine Tabellenkalkulation ärgerte.
Genauer gesagt war er unzufrieden mit der Art und Weise, wie er in seinem Job Inhalte aus einer Datenbank in Excel aufbereiten sollte. Die Vorgabe war, Daten in eine Tabelle zu laden, die gewünschte Formel nebenan in die oberste Zelle zu schreiben und anschließend in die darunter liegenden Zellen zu kopieren. Ferrandi überlegte sich, dass es doch viel eleganter und übersichtlicher wäre, Formeln direkt auf ganze Spalten anzuwenden – die Idee zu Matrex war geboren.
Folge dem weißen Kaninchen
Anders als bei einer klassischen Tabellenkalkulation hantiert der Nutzer in Matrex mit ganzen Datenblöcken, etwa Listen oder mehrspaltigen Tabellen voller Zahlen, und nicht mit Zellen in Tabellenblättern. Auf diese Blöcke wendet er Formeln an, die anhand der Eingabematrix eine Ausgabematrix erzeugen. Angenommen es gibt eine Tabelle mit Verkaufszahlen: Die Spalten sind in zwölf Regionen und nach den Jahren 2001 bis 2011 aufgeschlüsselt. Um die Gesamtzahlen der Jahre zu ermitteln, ruft der Benutzer die Spaltensummen-Funktion auf und erhält eine einspaltige Matrix (also einen Vektor) mit den Ergebnissen in seiner Sammlung.
Für solche einfachen Aufgaben reicht eine Tabellenkalkulation freilich vollkommen aus. Sammeln sich aber Daten aus vielen verschiedenen Quellen an, eventuell auch noch in Kombination mit hinter Zellen versteckten Formeln, verliert auch der versierteste Zahlenjongleur irgendwann die Übersicht.
Matrex löst dieses Problem dadurch, dass die Formeln (Funktionen genannt) gleichberechtigt zu den Daten sind. Beiden kann der Anwender Namen geben, sie außerdem in einer hierarchischen Baumstruktur anordnen und so einen Überblick über Daten, Berechnungen und Zwischenergebnisse in seinem Projekt bekommen. Mehrere Matrizen fügt er jederzeit zu so genannten Presentations zusammen, die wieder an die traditionellen Tabellenblätter erinnern (siehe Abbildung 1).
Matrex reloaded
Anspruchsvolle Anwender, die bei in Matrex vorhandenen Funktionen etwas vermissen, greifen dank Adapter auf externe Tools wie R, Matlab, Octave oder Scilab zurück. Darüber hinaus ist es möglich, eigene Formeln in den Sprachen Jython, Java, Jruby oder Groovy zu schreiben. Die aktuelle Programmversion bringt ein kleines, aber feines IDE mit, um Skripte zu bearbeiten und testen. Auch sonst versteht sich Matrex prächtig mit der Außenwelt. Das Java-Programm erlaubt – neben dem obligatorischen Im- und Export von CSV und XLS – über eine JDBC-Schnittstelle auf externe Datenbanken zuzugreifen.
Optional arbeitet Matrex im Client-Server-Modus. In einem solchen Szenario liegen die Berechnungen und Projektdaten auf einem Rechner. Mehrere Benutzer können dann gleichzeitig von mehreren anderen Computern aus Verbindung zu diesem Server aufnehmen und auf die entfernten Daten zugreifen und damit arbeiten.
Matrex eignet sich damit vor allem für Unternehmen, aber auch aufgeschlossene Anwender, die ihre hochkomplexen Tabellenblätter fein säuberlich sezieren möchten, sollten dem Programm eine Chance geben. Selbst wenn die Entscheidung später lautet, doch bei Open Office Calc oder Excel & Co. zu bleiben, kann Matrex ein interessanter Zwischenschritt auf dem Weg von der reinen Tabellenkalkulation hin zu Datenbanken und Skriptsprachen sein.
Wer so begeistert ist, dass er bei dem Projekt mitmachen möchte, sollte auf jeden Fall das Blog des Entwicklers Andrea Ferrandi besuchen [2]. Hier berichtet er nicht nur regelmäßig über Features neuer Versionen, sondern teilt auch seine Pläne für die Zukunft mit, kündigt Testversionen an und scheut auch nicht davor zurück, Schwierigkeiten zu erwähnen, auf die er gelegentlich stößt. Das Projekt freut sich über jede Hilfe. Potenzielle Entwickler finden auf der Matrex-Webseite einige ausformulierte Ideen und konkrete Wünsche.