Ars Magna: the revolution is overdue
Das Essay von Dave West mag deutlich machen, warum Schlagworte wie „Object Oriented” oder „Agile” letztlich nicht darüber hinweghelfen, daß das theoretische Verständnis der „Kunst” der Softwareentwicklung kaum über ihre Anfänge in den 80ern hinausgekommen ist, obwohl die Bedeutung von Software für das, was die Jetztzeit noch zur „running civilization” macht, kaum zu überschätzen ist:
The World runs on software, software that works.
Airplanes - that could not fly without software - cross the sky.[…] Millions of people have hearts that beat 24/7/365, thanks to software. Modern life - absent the Internet and the software that keeps it running and growing - is almost inconceivable.
[…]
We are beginning to recognize that the systems into which we deploy software and the systems we use to develop software are "complex" - non-deterministic and with self-organizing and emergent properties. Ultra-Large Scale systems are qualitatively different from anything we have attempted before
Ich verweise im Zusammenhang mal auf meinen Versuch über Theorie als Abstraktion der Wirklichkeit.
Cubase 5 - VST-Expression (9)
Noch ein YouTube-Fund: mein VST-Expression-Demo (das man auch auf der Cubase5-DVD findet) als Screen-Movie mit japanischen Kommentaren. Sehr cool – da habe ich also doch noch, unvermutet, meinen weltweiten Number Something Hit.
Cubase 5 - VST-Expression (8)
Die Kollegen von der Vienna Sound Library haben wirklich kapiert, worum es bei VST Expression geht – das Video gibt einen sehr schönen Einstieg in das Feature. Dabei übertreffen die von der VSL realisierten Expression-Maps mühelos die wildesten Vorstellungen über mögliche „Use Cases”, die wir beim Design des Features diskutiert hatten.
USB to S/PDIF
Ich suche gerade nach einer Lösung, Audio via S/PDIF vom Notebook an einen Surround-Decoder schicken. Dabei bin ich über diverse Angebote gestolpert, die einen „USB to S/PDIF”-Konverter anbieten. Die billigsten Angebote implementieren lediglich das USB 1.1-Protokoll, obwohl bei USB Version 2.0 längst schon Standard ist. Zum Vergleich: USB 1.1 ist mit 12 mbit/s spezifiziert, und USB 2.0 „schafft” die 40fache Datenübertragungsrate, 480 mbit/s.
Ich vermute, ein am „optimalen Sound” interessierter HiFi-Freak würde über die Billiglösung bloß die Nase rümpfen, allein, weil die Zahlen nicht stimmen. Ich mußte jedenfalls für einen Moment den Taschenrechner herausholen, um mir selber klar zu machen, daß der erste Instinkt in die Irre führt - auch ein betagtes Protokoll wie USB 1.0 reicht hier völlig aus.
CD-Audio kommt mit einer Abtastrate von 44.1 kHz in 16 Bit Auflösung. Das bedeutet: 44.100 Samples pro Sekunde pro Kanal, in Stereo also „mal 2”. Das sind demnach 44.100(Samples) * 2(Stereo) * 16(Bits pro Sample) = 1411200 Bits pro Sekunde, oder (gerundet) 1400 kbit/s = 1.4 mbit/s.
CD-Audio (1.4 mbit/s) kann man also problemlos über USB 1.0 (12 mbit/s) - oder auch W-LAN (11 mbit/s) - übertragen.
Der Rest - das instinktive Naserümpfen - ist pure Magie, die im Vergleich die Kunst jedes Astrologen oder Händchenauflegers wie strikte Wissenschaft wirken läßt.
[Man (ich z.B., gelegentlich) verwechselt gerne Bits (verwendet für Übertragungsraten) und Bytes (für Datengrößen). 1 Byte hat 8 Bit, und CD-Audio (1411,2 kbit/s dividiert durch 8) überträgt eine Audiodatei von 176,4 kB in einer Sekunde. Eine Stunde CD-Audio braucht Speicherplatz für 176,4 kB * 60 (Sekunden pro Minute) * 60 (Minuten pro Stunde) = 635.040 kB = ca. 640 MB auf einer Audio-CD.]
CyberLink PowerDVD - Absturz zurück aufs Desktop
Ich benutze zum DVD-Playback (unter MS Windows) seit langer Zeit PowerDVD von CyberLink - nicht, weil dies die beste aller denkbaren Lösungen wäre, sondern weil meine Bedürfnisse an solch ein Programm eher rudimentär sind, und allen DVD- bzw. Blue-ray-Laufwerken, die ich bisher gekauft habe, auch immer eine OEM-Version von PowerDVD kostenlos beilag. Da es damit schon immer möglich war, Audio über S/PDIF auszugeben, ging das auch mit meinem Surround-Setup zusammen, und ich hatte keinen Grund, etwas anders zu probieren - wobei ich mißtrauisch wurde, als das bei Blue-ray, angeblich aus Gründen des Kopierschutzes, nicht mehr funktionierte. Aber darüber habe ich mich ja erst neulich aufgeregt.
Ich wollte die erste Folge der 2. Staffel von „Lost” sehen. Das ist daran gescheitert, daß PowerDVD 7.3 beim Versuch, die Wiedergabe zu starten, schlicht eingefroren ist - auf dem Bildschirm ging gar nichts mehr, und ich konnte nur noch mit dem Taskmanager das Programm beenden. Es nutzte auch nicht, das letzte Update zu installieren oder die Grafiktreiber zu aktualisieren.
Ich habe dann kurz entschlossen die neueste und umfangreichste Version von PowerDVD (9 Ultra) im Onlineshop von CyberLink gekauft. Dabei war ich nach nicht einmal einer halben Stunde mit Download, Bezahlung (via PayPal) und Registrierung beschäftigt und schon dabei, die erste Folge von „Lost2” zu schauen - Klasse, dachte ich.
Am nächsten Abend wollte ich die zweite Folge sehen - und beim Wollen ist es dann auch geblieben. PowerDVD verabschiedet sich, nachdem man die DVD startet, gruß- und kommentarlos ohne Fehlermeldung, und stürzt auf das Desktop ab. Ich habe mich zwei Abende damit beschäftigt, die letzten Updates von Treibern (Grafik, Audio) und dem Programm selbst aufzuspielen, und ein manuelles Cleanup der Registry (nach Anweisungen der Support-Pages bei Cyberlink) versucht - leider erfolglos. Ich kann das Programm, nachdem ich es de- und wieder neu installiert habe, genau einmal starten und dazu bringen, eine DVD problemlos abzuspielen. Alle folgenden Starts führen dazu, daß sich die Applikation nach dem ersten Zugriff auf das DVD-Laufwerk ins Nirwana verabschiedet.
Normalerweise wäre da jetzt ein Anruf beim Support fällig mit der Frage, ob denn das Problem bekannt sei. Vermutlich habe ich irgendeine Komponente in meinem System, die hier Probleme macht, und obwohl mein Rechner keine sonderlich exotischen Geräte unterstützt (von apokryphen Audio- und Video-Codecs oder anderem Kram, der z.B. bei der Installation eines Games gern hereinschneit, ganz zu schweigen), würde es mich nicht sonderlich wundern, wenn es da einen Konflikt zwischen zwei esoterischen Treibern gibt, von dem man bei Cyberlink nichts ahnen kann. Steinbergs Cubase (an dem ich bekanntlich nicht ganz unbeteiligt bin) hat ja ebenfalls gelegentlich harte Zeiten, mit allen nur denkbaren Systemkonfigurationen klar zu kommen, und ist in gewissen Kreisen berüchtigt dafür, neurotisch auf bestimmte Hardware zu reagieren.
Nachdem ich mich aber durch die Support-Foren - sowohl auf den deutschen wie auch den englischsprachigen Seiten - gearbeitet habe, bin ich recht sicher, daß solch ein Anruf eher wenig Sinn machen würde. Das geschilderte Problem betrifft nicht nur mich, sondern wird auch von einer Reihe anderer User geschildert - und zwar seit Monaten. Obwohl die Foren direkt auf den Seiten von Cyberlink liegen, kümmert es die Moderatoren und Supporter offenbar wenig, den Reports nachzugehen - nach ein paar Standardantworten ist dort stets Ruhe. Das hinterläßt einen außerordentlich unguten Eindruck - und das sage ich, obwohl ich den Druck ganz gut kenne, unter dem ein Supportteam nicht nur gelegentlich steht.
Ich werde eine etwas abgewandelte Version dieses Rants noch in das Forum von Cyberlink posten - ohne große Hoffnung natürlich, daß dies irgend etwas ändert. Falls ich dabei Lügen gestraft werde, gibt es hier natürlich ein Update.
Sonst habe ich einen ganz guten ersten Eindruck vom ZoomPlayer - die Standartversion ist für nicht-kommerziellen Gebrauch kostenlos, läuft hier problemlos mit allen DVDs, die bisher Streß gemacht hatten, und unterstützt (auch) Audio via SP/DIF. Allerdings ist die Software nicht ganz einfach zu konfigurieren. - Ich komme auf das Thema wohl noch zurück.
Netzwerkprodukte - Userinterfaces (5)
Wenn man vom grafischen Userinterface oder dem GUI-„Design” spricht, läuft man in Gefahr, das Userinterface mit dessen grafischer Gestaltung zu verwechseln. Ein GUI besteht zwar aus grafischen Objekten, die z.B. eine bestimmte Farbe haben und über ein mehr oder weniger gelungenes optisches Design verfügen - ein GUI ist dies aber noch lange nicht, auch wenn einem dies das Marketing in den Software-Companies gelegentlich einreden möchte. Es spielt zwar schon eine Rolle für den Anwender, ob er vor einer Applikation sitzt, deren Optik ihn anspricht, oder nicht. In manchen Fällen gibt es sogar funktionelle Auswirkungen der Gestaltung der Grafik, etwa wenn man in einem abgedunkelten Tonstudio vor einer grell leuchtenden Musiksoftware sitzt, oder womöglich grünen Text auf rotem Grund präsentiert bekommt. GUI-Design meint aber letztlich etwas anderes, nämlich die Gestaltung der Funktionalität durch aufeinander abgestimmte grafische Elemente. Dabei spielt ihre Optik eine eher untergeordnete Rolle.
Trotzdem finden sich im GUI-Design - selbst wenn man es rein funktionell betrachtet - Moden. Dabei bestehen all jene Debatten, die sich um den vermeintlich „besten Computer” drehen, letztlich aus Statements über die modischen Qualitäten des GUI im betreffenden Betriebssystem. Gleiches gilt für den Streit um das beste Programm zur Bearbeitung von Text, Grafik, oder Musik, oder um den besten Internet-Browser.
Bevor ich diese - zugegeben stark zugespitzte - These näher begründe, muß ich einschieben, daß es natürlich durchaus auch rationale Gründe gibt, sich für oder gegen ein bestimmtes Betriebssystem oder eine Applikation zu entscheiden. Ich behaupte aber, daß diese Gründe deutlich in der Unterzahl sind - wenn das anders wäre, würde man die Debatten erheblich sachlicher führen, ohne sie regelmäßig in emotional aufgeheizte Flame-Wars zu eskalieren. Es geht in erster Linie um subjektive Vorlieben, und zwar auch und gerade dann, wenn man nur über die funktionale Seite von Userinterfaces streitet.
Zunächst läßt sich leicht belegen, daß bestimmte Moden im GUI kommen und gehen. Ich erinnere mich z.B. noch ganz gut an meinen Versuch, auf dem Atari ST sog. „Floating Windows” zu implementieren, Fenster also, die über den „Hauptfenstern” der Applikation schweben, und in denen man beispielsweise verschiedene Modi für Operationen mit der Maus - Tools - auswählen kann. Das war auf dem Macintosh selbstverständlich, ließ sich aber auf dem Atari nur unter hohem Aufwand implementieren[1] - der Coolness-Faktor war entsprechend hoch, und sämtliche Applikationen auf dem Mac haben dieses Konzept u.a deshalb realisiert, weil es anderswo nicht zu haben war.
Irgendwann kam Microsoft mit einem anderen Modell, bei dem sämtliche Fenster nebeneinander untergebracht werden, um Überlappungen komplett zu vermeiden. Die Tools liegen stets neben den Hauptfenstern, und verdecken nicht länger Teile der zu bearbeitenden Daten (Text, Grafik, Noten, etc.). Plötzlich empfand man die Floating Windows generell als lästig, weil man der Meinung war, daß man nur noch damit beschäftigt ist, sie hin- und her zu schieben, um den Überblick über die - eigentlich im Fokus stehenden - Daten nicht zu verlieren (das Konzept der „Dockable Windows” hat definitiv seine Meriten).
Mittlerweile schlägt das Pendel wieder in die andere Richtung. In Cubase kann man eine Reihe von Fenster optional „always on top” setzen, ihnen also den Charakter von Floating Windows geben. Dabei läßt sich diese Option in den Präferenzen voreinstellen, und ist seit kurzem per Default aktiviert. Das hat durchaus Gründe - man muß keine weiten Wege mit der Maus machen, um zwischen den editierten Daten in der Mitte des Bildschirms und den Tools an dessen Rand zu wechseln.
- [1] Ich habe es damals nicht geschafft, das fehlerfrei und Release-fähig hinzubekommen.
Netzwerkprodukte - Userinterfaces (4)
Man hat in den letzten Dekaden wiederholt darüber gestritten, wie ein ideales GUI auszusehen habe, und diese Diskussionen waren nicht nur kontrovers, sondern häufig außerordentlich emotional besetzt. Eigentlich sollte man meinen, daß man es hier mit einem technischen Thema zu tun hat, bei dem sich allenfalls unbedarfte User vehement in die Haare geraten, die Fachleute hingegen eine sachliche Debatte führen. Auch unter letzteren toben aber Auseinandersetzungen, die manchmal an Glaubenskriege erinnern, und deren Ende nicht absehbar ist, auch wenn in bestimmten Teilbereichen mittlerweile stillschweigende Übereinstimmung herrscht. Die Antwort auf die Frage, warum es hier so bewegt zugeht, ist dabei wohl ein Schlüssel, um zum Thema selbst relevantes zu sagen.
Ich bin der Meinung, daß es keine allgemeingültige Theorie darüber geben kann, wie ein optimales GUI auszusehen hat. Man hat öfters versucht, allgemeine Regeln aufzustellen, was man zu tun bzw. zu lassen habe - gerade Apple hat schon früh versucht, den Macintosh-Entwicklern klare Richtlinien auf den Weg zu geben. Dabei hat man sich aber wiederholt in Widersprüche verwickelt, bzw. immer mal wieder Entwicklungen auf den Weg gebracht, die den eigenen Regeln widersprachen. Das ist eigentlich auch kein Wunder - die Anforderungen an ein GUI widersprechen einander selbst.
Ich sehe zwei zentrale Anforderungen an ein GUI, die jeweils durch andere, widersprüchliche Ansprüche in die Zange genommen werden:
-
Ein GUI soll intuitiv verständlich, gleichzeitig aber einfach bedienbar sein. Der Widerspruch zwischen diesen Anforderungen wird immer dort deutlich, wo ein Power-User mit einem GUI zurande kommen soll, das auf einen Anfänger zugeschnitten wurde. Der Profi braucht Abkürzungen jeder Art[1], wo der Einsteiger ausführlich an die Hand genommen werden will, und vice versa[2].
-
Ein GUI soll konsistent sein - d.h., eine einmal eingeübte Metapher oder Folge von Befehlen soll sich überall gleich verhalten. Copy&Paste z.B. soll sich auf alle Daten anwenden lassen, egal, wie diese konkret aussehen.
Dem Wunsch nach Konsistenz stehen andere Anforderungen entgegen:
-
Ein GUI muß an vielen Stellen redundant sein - d.h., es muß mehr als nur einen Weg bieten, ein bestimmtes Ziel zu erreichen (z.B. einen Befehl durch ein Menu, oder aber ein Icon in einer Toolbar verfügbar machen). Konsistenz und Redundanz sind zwei einander widersprechende Prinzipien.
-
Jede Präferenz, jede konfigurierbare Toolbar und jedes vom User individuell zuweisbare Tastaturkommando widerspricht der Forderung nach Konsistenz, und bedeutet zusätzlich zunehmende Komplexität, die dem intuitiven Verständnis entgegen läuft. Ohne solche Konfigurierbarkeit läßt sich aber keine halbwegs komplexe Applikation realisieren, die den Ansprüchen einer größeren Gruppe von Usern gerecht wird.
-
Weiterhin steht der Versuch, ein Interface so konsistent wie nur möglich zu implementieren, dem Unterschied in der Beschaffenheit der Daten entgegen, wodurch gelegentlich Lösungen entstehen, die aufgesetzt wirken und für den User nicht wirklich produktiv sind. Ein Beispiel hierfür ist Drag&Drop von Textblöcken in „Word” & Co. Ein Feature, das für Dateioperationen im Betriebssystem perfekten Sinn ergibt, ist nicht ohne Grund in den meisten Texteditoren in den Präferenzen abschaltbar.
In diese Rubrik gehört sogar das „universelle” Prinzip von Selection&Action - man selektiert Daten, und führt auf dieser Selektion eine Aktion aus, die man z.B. in einem Menu anwählt. Es gibt durchaus Situationen, in denen dieses - allgemein fraglos akzeptierte - Schema sich nur gewaltsam durchziehen läßt - der „Selected”-Status von farbigen Objekten in einem Grafikprogramm etwa läßt sich nur mühsam und unter Verrenkungen konsistent auf dem Bildschirm darstellen.
Um diese Widersprüche aufzulösen, hat man gelegentlich die Forderung erhoben, Monster wie „Word” oder auch „Cubase” in eine Gruppe von Modulen aufzuteilen, die jeweils auf einen bestimmten Task spezialisiert sind und die Komplexität einer Applikation, die für alles eine Lösung hat, aufteilt, und für den User beherrschbar machen. Dabei übersieht man, daß die Komplexität auf diese Weise lediglich verteilt, nicht aber reduziert wird - um den zusätzlichen Preis, daß die Userinterfaces nur locker miteinander verkoppelter Module große Probleme mit kohärentem Verhalten im GUI haben[3].
- [1] Tastaturkommandos sind nur eines von vielen Beispielen.
- [2] Im Extrem mag der Profi das grafische „Design” eines Interfaces als äußerliche „Tapete” empfinden, wo ein Einsteiger es als hilfreich „cool” bewertet.
- [3] Stichwort: OpenDoc.
Netzwerkprodukte (29) - Userinterfaces (3)
Bei der Entwicklung eines GUI („Graphic User Interface”) konkurrieren drei Herausforderung miteinander, und beim Design geht es darum, eine gewisse Balance zwischen ihnen zu finden. Zunächst ist dies die Anforderung, daß das Interface einfach zu verstehen sein soll. Zum zweiten soll es einfach bedienbar sein. Nicht zuletzt muß es sich mit den gegebenen Mitteln auch technisch umsetzen lassen.
Die beiden ersten Punkte - einfaches Verstehen wie Bedienbarkeit - scheinen einander zu bedingen, stehen aber in Konkurrenz zueinander. Ein User, der ein Programm gut beherrscht und auswendig kennt, wird i.d.R. völlig anders operieren, als jemand, der zum ersten Mal vor ihm sitzt. „Poweruser” wollen für jede Funktion einen Tastaturbefehl, während Neulinge auf vernünftig benannte Einträge in den Menus angewiesen sind. Wenn man mit einem Programm vertraut ist, kommt es darauf an, daß einzelne Arbeitsschritte optimal ineinander übergehen - eine Forderung, die darauf hinausläuft, die Werkzeuge für unterschiedliche Schritte dicht nebeneinander zu legen, was auf den ersten Blick für Verwirrung sorgt. Usf.
Ein recht schönes Beispiel für ein GUI, das anfangs überaus einleuchtend erscheint, nach einiger Gewöhnung jedoch hochgradig nervt, findet sich in der ursprünglichen Konzeption der Plug-in für Cubase VST. Man hat Mitte der 90er damit begonnen, Audio-Hardware (Effektgräte, Mischpulte, Synthesizer, usw.) im Computer zu simulieren. Um den Usern das Konzept verständlich zu machen, hat man auch die Benutzerführung der Hardware kopiert. Auf dem Computermonitor erscheinen Knöpfe und Schiebregler, blinkende LEDs und sogar Klaviertastaturen. Tatsächlich leuchtet das Konzept unmittelbar ein, und man kann die Software bedienen, ohne zuvor das Handbuch gelesen zu haben. Ohne diese Strategie wäre VST möglicherweise nicht derart populär geworden, wie es dies heute ist.
Dabei läßt die Begeisterung für die ebenso bunte wie vertraute Oberfläche jedoch nach, wenn man ernsthaft mit den virtuellen „Geräten” arbeiten will. Da stellt sich dann plötzlich heraus, daß der Text, mit dem bestimmte Werte dargestellt werden - wie auf der Hardware auch - nur eine Anzeige ist. Man kann ihn nicht doppelklicken und als Text editieren, sondern ist gezwungen, die Werte z.B. mit einem Drehregler einzustellen. Überhaupt die Knöpfe: man muß sie anklicken und mit der Maus einen Kreisbogen entlang fahren - ein Verfahren, das nicht nur ungenau ist, sondern irgendwann in den Gelenken und Sehen der Hände physische Schmerzen verursacht.
Irgendwann werden die Texte editierbar, und um einen Regler auf z.B. 0db (oder eine andere Default-Einstellung) zu bringen, muß man ihn nur noch mit gehaltener Command-Taste kurz anklicken. Auch die Drehregler verlieren ihren Schrecken, als man den Usern erlaubt, in den Präferenzen zwischen drei unterschiedlichen Modi zu wählen (u.a. einen Modus, bei dem man die Maus nicht kreisförmig, sondern auf und ab bewegt). Usf. Die Plug-in werden immer besser bedienbar, dabei aber gleichzeitig immer komplexer und schwerer zu verstehen - und zwar auch dort, wo sich an der die eigentlichen Funktionalität (der Klangerzeugung etwa) überhaupt nicht ändert. Ein Neuling hat derart viel über die Bedienkonzepte zu lernen, daß er anfangs nur verloren dasteht und nicht weiß, wo er beginnen soll.
Man kann letztlich in sämtlichen Programmen, die über ein gewisses Maß an Komplexität verfügen und schon einige Updates hinter sich haben, das Phänomen betrachten, wie ein ursprünglich logisches und stimmiges Konzept nach und nach „in die Breite geht”. Dabei rede ich gar nicht von „Bloatware” - wenn also ein Programm immer mehr aufgeblasen wird und nach Jahren über Funktionen verfügt, die allenfalls ein kleiner Teil der User nutzt, und die in erster Linie womöglich eingebaut wurden, um die Schlacht um neue Features nicht gegen die Konkurrenz zu verlieren. Schon beim Versuch, alltägliche Abläufe - den berühmten „Workflow” - so zu optimieren, daß sie mit möglichst wenigen Aktionen ausführbar sind, passiert es regelmäßig, daß eine Apllikation sich nach und nach in ein Monster verwandelt, das ein Anfänger nicht mehr durchschaut. - Interessanterweise sind an solchen Entwicklungen i.d.R. die User selber schuld.