Über’s Programmieren

Freeware, Open Source, CC, u.a. – das sind wunderbare Sachen. Man bekommt Software für seinen Rechner, ohne dafür bezahlen zu müssen. Manchmal sind Kuckuckseier dabei, manchmal nur wiederkehrende Spendenaufrufe. Und man findet Software für Aufgaben, für die es im kommerziellen Markt offensichtlich nicht genug Kunden und demzufolge auch keine Lösungen gibt.

Als Programmierer steht man ja vor allerlei Problemen. Wobei ich gleich vorweg sagen will, dass ich keiner bin. Ein wenig HTML und PHP, dann hört’s aber auch schon auf. Und weil ich es nicht ständig mache, fehlen mir bei den Sprachen immer die “Vokabeln” und ich muss erst in Dokumentationen rumwühlen, um den passenden Befehl zu finden. Nur die Grammatik hab ich noch ein wenig drauf. 😉 Aber ich möchte mich trotzdem mal über Programmierer und ihre Software auslassen. Die regen mich ab und zu nämlich mal auf, weil sie zu wenig an die Nutzer ihrer Software danken. Was für einen Programmierer selbstverständlich sein kann, ist für Otto Normalnutzer alles andere als normal. Und umgekehrt. Und das wirkt sich frustrierend aus. Zumindest auf der Nutzerseite, wie ich es gerade erst wieder erlebt habe.

Wenn man für Desktop-Rechner etwas programmiert, steht man vor mindestens einer Aufgabe. Oder genauer: mindestens drei. Und die heißen Windows, macOS und Linux. Wer möchte, kann noch ein paar Exoten mit dazuzählen. Aber zur Illustration soll es reichen. Möchte man also möglichst viele Nutzer erreichen, darf man für drei Betriebssystemplattformen (zuzüglich aller ihrer Versionen) programmieren. Und dabei sind die Handy-Betriebssysteme noch gar nicht mit dabei. 😉 Mehrere zur Auswahl stehende Programmierplattformen machen die Sache nicht einfacher.

Informatiker überspringen bitte beim Lesen diesen Absatz, jetzt wirds populärwissenschaftlich. 😉 Eine Programmierplattform, die es auf allerlei Betriebssystemen gibt, ist Java. Grob vereinfacht: Einmal programmiert und für die großen Betriebssysteme gleichzeitig verfügbar. Dafür muss nur auf dem jeweiligen Rechner auch Java installiert sein, Als Mittler sozusagen zwischen dem Programm und dem Betriebssystem. Die Idee finde ich schon mal nicht schlecht. Sicher hat sie auch Nachteile, aber dazu bin ich zu wenig Programmierer, um das einzuschätzen. Betriebssystemnahe Programme wird man über den Weg vermutlich nicht schreiben können (Virenschutz oder so), die müssen zu tief ins System rein, um zu wirken, und da stört die Java-Ebene dazwischen sicherlich. Aber Anwendungsprogramme gehen. Es gibt derer in Vielzahl und man kann sie nutzen. Ein großes ist beispielsweise das Office-Paket LibreOffice, dass ohne die Java-Unterlage nicht funktioniert. Aber auch kleinere Sachen greifen auf Java zurück.

Neben LibreOffice habe ich (mindestens) drei weitere Programme auf dem Rechner, die mit Java als Plattform arbeiten. Das funktioniert seit Jahren wunderbar, selbst einen Rechnerumzug haben die Programme mitgemacht. Meine Hardware ist noch relativ aktuell, ich bin bzw. war also ob des wunderbar laufenden Systems sehr glücklich.

Aber dann kam der Tag eines Updates. Es war kein Windowsupdate! Auch installierte Software guckt regelmäßig nach, ob es neue Versionen gibt und meldet das. So passiert am letzten Wochenende mit einem meiner Java-“Programme”. Also lade ich wie gewöhnlich die neue Version herunter und lasse sie installieren. Danach läuft sie aber nicht mehr. Dafür gibt es eine Fehlermeldung mit dem Hinweis, dass diese Software jetzt mindestens Java 11 (ja, auch hier gibt es Versionsnummern) voraussetzt. Gleichzeitig wurde durch das Fehlermeldungsfenster die entsprechende Download-Webseite java.com/de/download im dafür startenden Browser aufgerufen. Nur: Da gibt es Java 8, aber kein 11 oder mehr. Blöd. Entsprechende Kommentare im Nutzerforum der Software von den Programieren, auf den Fehler hingewiesen: Soll sich der Nutzer doch selber kümmern (mal grob zusammengefasst). Auch die Kritik, dass die Java-11-Voraussetzung doch wenigsten vorher hätte kommuniziert werden sollen, wurde weggebügelt mit dem Hinweis, dass das wohl schon ein halbes Jahr vorher im Forum gestanden hätte. Aber mal ehrlich: Wer verfolgt Nutzerforen für eine von einem genutzte Software, wenn alles wunderbar funktioniert???

Einfach nur eine Software nutzen geht also nicht, ich musste mir etwas Zeit nehmen, um das Problem zu lösen. Suchmaschinen helfen da, wenn man weiß, wonach man eigentlich sucht. Letztendlich hatte ich die Software, die ich ja unbedingt weiter nutzen wollte, irgendwann wieder am laufen. Ich hatte eine Java-11-Installationsdatei gefunden, sie installiert und alles war gut. Nach einigem hin und her, auf das ich hier aber nicht eingehen will. Die Software lief jedenfalls wieder. Etwas später startete ich, weil ich dann mit ihm arbeiten wollte, ein anderes Programm, das auch auf Java basiert. Nur: Nichts passierte. Das war Mist. Irgendwie fand es “sein” Java nicht. De- und wieder neu installieren brachte nichts. Java 8 und 11 sauber installieren (geht das überhaupt gleichzeitig?) brachte auch keinen Erfolg. Also machte ich mich auch hier wieder auf die Suche nach einer Lösung. Was das wieder alles an Zeit fraß?! Auf der Webseite zum Programm gab es keine hilfreichen Tipps, eine Suchmaschine bot lösungserhoffende Hinweise an. Die Software wurde vom ursprünglichen Entwickler offensichtlich nicht mehr weiter gepflegt (Updates gabs meiner Erinnerung nach auch schon ewig keine mehr). Aber andere Programmierer hatten einen “Seitenarm” der Programmversionen geschaffen und so gab es eine sehr viel neuere Version zum Downloaden. Windows-Installationsdatei? Fehlanzeige! Zip-Datei zum einfach in den Ordner kopieren? Fehlanzeige! ISCH RASTE AUS! Wann denken die Programmierer mal an Otto Normalnutzer?!

Das Zauberwort hier hieß übrigens GitHub. Das positive: Davon hatte ich schon mal gehört. Das negative: Bisher hatte ich nur davon gehört. Aber es gab wenigstens eine Anleitung, die ich verstand, obwohl sie in einer mir fremden Sprache geschrieben war. Ich installierte also noch irgendein “Hilfsprogramm”, mit dem ich dann die gesuchte Software auf windowsuntypische Art, aber zuverlässig auf den Rechner bekam (und wohl auch Updates bekommen würde). Nutzerfreundlich ist aber anders. Für den Nerd an sich (ich meine das gar nicht abwertend) mag das eine Lösung sein, aber für den, der einfach nur seinen Rechner nutzen will, nicht!

Was das alles wieder für Zeit gefressen hat! Mit einem einfachen, schnellen Update fing es an. Dann Fehlersuche und -behebung (mit kleineren Rückschlägen), dann Auftritt des neuen Fehlers, wieder Fehlersuche und -behebung, Wiedereinrichtung der Software, Rekonstruktion der Daten. Und dann noch die Niederschrift dieses Blogartikels! Als ob ich nichts besseres zu tun hätte. Deshalb, liebe hervorragende, großes leistende und meine Anerkennung habende Programmierer freier Software: Danke für Eure Arbeit! Aber bitte auch ein wenig an die Nutzer denken und alles so ein bisschen idiotensicherer bauen. Das wäre schön. Danke!

Langsam reicht’s – für was neues

Laut einem Artikel auf ZDNet wertet die “Internetbotschafterin der Bundesregierung” Gesche Joost das Ergebnis einer Studie (ICILS) so aus, dass Schüler schon im Grundschulalter anfangen müssen, Programmieren zu lernen. Das ist sicher ein interessanter Gedanke, wird aber die Klassen wieder in zwei Teile differenzieren: den eher rational, algorythmisch und den ganzheitlich, emotional denken könnenden Schülern. Den Effekt kann man bereits jetzt wunderbar beobachten bei den Lernenden, die beispielsweise eher Mathematik oder eher Sozialkunde oder eher Sprachen begreifen.

Das ist aber noch nicht mal das bemerkenswerte, was aber den Gedanken durchaus induzieren könnte, spätestens nach der Orientierungsstufe das Programmieren in den Wahlpflichtbereich zu übernehmen. Dort können dann diejenigen, denen sowas liegt, besonders an die Art und Weise des Denkens bei der Programmierung herangeführt werden.

Verwerflich finde ich Joost’s Gedanken, das Programmieren lernen in die vorhandenen Fächer zu integrieren. Das ist ja eine Strategie, die auch schon bei anderen wichtigen Themen, wie zum Beispiel der Medienbildung, wunderbar geklappt hat. Nicht. Aber vielleicht findet sich genau hier ein interessanter Ansatz für die Problemlösung. Wenn man die Themen der Medienbildung und die der aktuellen Forderungen von Gesche Joost (Wie funktionieren die Medien, wie geht man mit ihnen um, wie wertet man deren Produkte, wie gestaltet man sie selber, wie programmiert man Webseiten, Apps, sonstiges? usw.) vereint, reichen die zur Vermittlung anstehenden Kenntnisse und Fertigkeiten locker aus, um damit ein Unterrichtsfach neu zu begründen und ins gesamte Schulsystem aufzunehmen.