Friday, February 23, 2007

Microsoft Access, eine Klasse für sich

Nachdem ich mich nochmal ganz fürchterlich über Microsoft Access aufregen musste, nun doch zur Frage, was einen an dieser Software so wahnsinnig machen kann. Vielleicht liegt es an dem eigenartigen Spagat, dass es einfach eine stinkenormale relationale Datenbank ist, mit allen Haken und Ösen, mit allen Komplexitäten (referentielle Integrität, m:n Beziehungen, usw.), aber beständig und krampfhaft versucht wird dies vor einem zu verheimlichen. Auf Biegen und Brechen, mühsam und angestrengt, mit Verrenkungen und Kapriolen, mit Assistenten und "gutgemeinten" Dialogen, letztendlich aber doch nur lückenhaft und unvollständig.

Letztendlich steht man Joel Spolsky's so formuliertem Law of Leaky Abstractions gegenüber:
"All non-trivial abstractions, to some degree, are leaky."
So gutgemeint Abstraktionen auch sein mögen, bis zu einem bestimmten Grad sind sie löchrig, d.h. sie schaffen es nicht vollständig, die Komplexität, die sie abstrahieren sollen zu verdecken.

Wobei der Grad der Löchrigkeit eigentlich ganz egal ist, weil jedes noch so kleine Loch einen irgendwann dazu zwingt sich mit den zugrundeliegenden Details zu beschäftigen.

Wobei sich das Verhältnis von "gelungener Abstraktion" zu "Löchrigkeit der Abstraktion" in Access allerhöchstens die Waage hält. Das sind dann auch nicht wirklich Löcher, das sind Scheunentore. Man könnte auch sagen, dass der Abstraktionsversuch letztendlich misslungen ist. Komplett misslungen. So was von misslungen!

Was heißt das? Zunächst mal: Ärgerlich! Ärgerlich!! ÄÄÄÄÄrrrrrggggerrrrliich!!!!!!!!!!!!! Was heißt das noch? Mit unendlich viel Aufstand wurde eine Missgeburt erzeugt! Ein Software-Frankenstein! Eine armselige Kreatur! Ein bemitleidenswertes Geschöpf!

Aber ist das vielleicht Microsoft-typisch? ASP.NET versucht ja auch, sämtliche kleinen Details von HTTP und Browsern und wasweißich wegzuabstrahieren! Und, klappt das etwa?

Was heißt das? Heißt das, dass die vermutlich Mannjahrhunderte versemmelt haben, um eine relationale Datenbank benutzerfreundlich und verständlich erscheinen zu lassen, und es nicht einmal annähernd erreicht haben?

Ja, diese Unentschiedenheit! Wie heißt das auf Englisch? To be everything to everyone. Irgendwie alles für jeden zu sein.

Warum haben die ihr Talent, ihre Begeisterung, ihre Zeit nicht für etwas wirklich Interessantes eingesetzt? Eine Datenbank, die einen SQL-Phobiker wie mich wirklich, nochmal: wirklich, ich meine: wirklich!! von diesem ganzen krampfigen Popanz mit m:n Beziehungen und referentieller Integrität und Fremdschlüsseln und anderen Schlüsseln und Schüsseln und was weiß ich ---- einfach erlöst!

Stattdessen bauen sie Dialogboxen und übersetzen diese in zig Sprachen, die mit Begriffen wie "Beziehungen" daherkommen, "Beziehungen bearbeiten", mit "Referentieller Integrität" und "Aktualisierungsweitergabe an verwandte Felder", Mensch, ich habe genug zu tun mit meinen Beziehungen und meiner Verwandschaft!! Und euer "Verknüpfungstyp..." interessiert mich nicht die Bohne!

Was heißt hier "löchrige Abstraktionen"? Das ist die Titanic, nachdem sie mit dem Eisberg zusammenstieß!

Letztendlich muss man Berge von Abstraktionsschrott, Abstraktionsmüll wegräumen, um ungefähr in eine Region vorzudringen, wo man ein wenig Produktives zustande bringt.

Für mich machen die nicht Schwieriges einfach, nein, ein lustiges Vexierspiel wird angezettelt, vordergründig Schwieriges stellt sich als einfach heraus, Einfaches als schwierig, Simples als unmöglich... Nichts ist, was es ist.

Ein wenig Wahrheit dann doch im "Beziehungen bearbeiten"-Dialog: Beziehungstyp: Undefiniert.

Ach, leckt mich doch....

1 comment:

Anonymous said...

Made my day, dankeschön! :-D

Kann dem größtenteils nur absolut zustimmen ;-)

Wobei ich noch ergänzen möchte, dass Access mich als Nicht-SQL-Phobiker (schönes Wort, danke dafür!) schon gelegentlich verwirrt, weil die "Erklärungen" z.B. bei Verbindungstypen mal irgendwie gar nicht soo toll sind ;-)