Spreadsheets und andere Werkzeuge

Jeder kennt Spreadsheets oder Tabellenkalkulationen. Sie sind eine der archetypischen Anwendungen auf PCs und das schon seit Jahrzehnten. Sie haben in der grauen Vorzeit der Datenverarbeitung mit PCs eine kleine Revolution eingeleitet, indem finanzielle Planspiele und Szenarioanalysen interaktiv möglich wurden. Inzwischen sind Spreadsheets auch im naturwissenschaftlichen Bereich zu einer der meist genutzten Anwendungen geworden und man kommt fast täglich mit ihnen in Kontakt. Hier werden sie im Allgemeinen nicht für Planspiele sondern für die Erfassung, Verarbeitung und Analyse experimenteller Daten genutzt. 

Die mit Abstand am weitesten verbreitete Tabellenkalkulation ist Excel. Ähnlich wie bei Papiertaschentüchern ist hier der Produktname einer Tabellenkalkulation zum Synonym für die ganze Softwaregattung geworden. 

Der Gegenentwurf zu Tabellenkalkulationen, deren Grundelemente durch die große Tabellen und Bezüge zwischen verschiedenen Bereichen der Tabellen gebildet werden, sind auf numerische Datenverarbeitung und Datenanalyse spezialisierte Programmier- und Skriptsprachen wie Matlab, Scilab, Gnu Octave oder Gnu R. 

Warum ist Excel und Co auch im wissenschaftlichen Bereich so viel beliebter als die genannten Werkzeuge? Tabellenkalkulation vermitteln offenbar vielen Menschen das Gefühl einfach anwendbar zu sein. Man kann viel mit der Maus erreichen, braucht abgesehen von der jeweiligen Formelsprache der Tabellenkalkulation keine Schlüsselwörter und Sprachkonstrukte zu lernen und kann direkt und interaktiv in Daten eingreifen. Tabellenkalkulationen sind auch fast immer schon auf einem Rechner vorhanden, so dass sehr früh ihre Grundstrukturen und Ideen verinnerlicht werden. Eine Tabellenkalkulation dürfte daher in den meisten Fällen eines der ersten "ernste" Programmen sein mit denen man im Kindesalter in Kontakt kommt, mit dem man seine ersten Plots erstellt und dann auch im Studium seine Praktikumsversuche auswertet. Man glaubt sie daher zu beherrschen, produktiv mit ihr zu sein und steht Alternativen die andere Grundkonzepte verfolgen mit Unverständnis gegenüber. 

Die weite Verbreitung von Excel und anderen Tabellenkalkulationen und ihre manchmal unbedachte Verwendung ist oft ein Problem und manchmal sogar ein großes Produktivitätshindernis. Zunächst sind da die ganz offensichtlichen Unzulänglichkeiten und ärgerlichen Beschränkungen der Software an sich. Zeilen- und Spaltenbeschränkungen, Beschränkungen der maximalen Anzahl von Datenpunkten in einem Plot, Schwierigkeiten Plots und Graphiken in vernünftigen Dateiformaten zu exportieren und oft absolut mangelhafte Performance bei Operationen mit größeren Datenmengen sind nur einige dieser Unzulänglichkeiten. Zugegebenermaßen haben sich viele dieser Punkte in den aktuellen Versionen der Programme entschärft, aber selbst die eine Million Tabellenzeilen die Excel 2007 inzwischen verwalten kann sind nicht unbedingt viel, wenn automatisch erfasste Daten zu verarbeiten sind. 
Viel problematischer ist die Tatsache, dass sich Exceldateien zu einem allgemein anerkannten Standardformat für tabellarische Daten entwickelt hat, welches auch zum Austausch von Daten verwendet wird. Nach wie vor ist Excel ein teures geschlossenes Produkt, welches nur für einige wenige Betriebssysteme zur Verfügung steht. Das ursprüngliche binäre Datenformat von Excel ist teilweise propritär teilweise dokumentiert, das neue XML basierte Datenformat ist zwar offen, aber mit vernünftigem Aufwand kaum vollständig in andere Anwendungen zu implementieren. In meinen Augen widerspricht es grundlegenden Ideen einer modernen und offenen Wissenschaft, seine Daten in einem faktisch geschlossenen Format zu speichern und davon auszugehen dass alle Welt über die kostenpflichtigen Werkzeuge zum lesen dieser Daten zur Verfügung hat. 
Die weite Verbreitung und die Gewöhnung von Tabellenkalkulationen wie Excel führt dazu, dass dieses Werkzeug gar nicht mehr losgelassen wird, selbst wenn eigentlich ganz offensichtlich ist, dass ein anderes Werkzeug nötig ist. Die immer gleiche Auswertung von hunderttausenden automatisch erfassten Datensätzen mit Excel durchzuführen, so dass die erste Amtshandlung der Datenimport per Hand für jeden einzelnen Messtag ist, kommt einer Selbstgeißelung nahe. Wird ein solches Problem mit einer Skriptsprache gelöst, ist der Aufwand zu Beginn zwar größer, schließlich muss ein komplettes Programm entwickelt und getestet werden, dafür ist der Aufwand im Anschluss daran nur noch sehr gering.

In komplexen aber durchaus immer wiederkehrenden Anwendungen versagt dann auch das vermeintlich so einfache und intuitive Grundmodell von Tabellenkalkulationen völlig. Automatisch aktualisierte Querbezüge zwischen verschiedenen Teilen einer Tabelle, verschiedenen Tabellen oder sogar verschiedenen Dateien sind ab einer gewissen Komplexität kein Segen sondern vielmehr Fluch. Aufwändige Spreadsheets kommen einer mehrdimensionalen graphischen Form der GOTO Spaghetti Programmierung gleich. Während man in einer Programmiersprache mit Objekten und Variablen umgeht die zwar abstrakt sind, aber über ihre Namen einen direkten inhaltlichen Bezug zu den Daten die sie repräsentieren haben, operiert man in Tabellenkalkulationen mit abstrakten und von den Daten selbst vollkommen entkoppelten Spalten- und Zeilenindizes. Wenn dann noch Makros, also ausgeführter Code, in Spreadsheets genutzt werden, wird es oft so unübersichtlich und komplex, dass man den Autor braucht um auch nur grob zu verstehen wie ein Spreadsheet funktioniert und was es eigentlich tut. Ein Stück Matlab oder Python Code zu verstehen, welcher die gleiche Datenauswertung implementiert wie ein solches Spreadsheet ist dann auch nicht schwieriger. 
Spreadsheets fördern nicht die Modularisierbarkeit und die Wiederverwendbarkeit von Funktionalitäten. Bei codebasierten Ansätzen zur Datenauswertung ist Modularisierbarkeit und Wiederverwendbarkeit im Gegensatz dazu ein zentrales Element. In Kombination mit (verteilten) Versionskontrollsystemen wie Git oder Mercurial ergibt sich die Möglichkeit eines kollaborativen Arbeitsansatz, welcher die gemeinsame Arbeit eines ganzen Teams an einer komplexen Datenauswertung ermöglicht. 

Tabellenkalkulationsprogramme sind zweifellos in bestimmten Anwendungsfällen sinnvolle Werkzeuge aber ihr unbedachter Einsatz in Bereichen für die das Grundkonzept einer Tabellenkalkulation nie gedacht war ist ein wirkliches Produktiviätshindernis. Ich hoffe dass sich die Angst vor spezialisierten Programmiersprachen und die Abneigung gegen Quellcode in Zukunft verliert und Tabellenkalkulationen endlich wieder so verwendet werden wie das ursprünglich gedacht war.