Frameworks sind in der Softwareentwicklung sehr wichtige Bausteine. Sie nehmen dem Softwareentwickler Arbeit ab, die immer wiederkehrt. Sie sind in der Zwischenzeit oft “Open Source” und damit kostenlos, und zuverlässig, weil sie von einer sehr agilen und lebendigen Community gepflegt werden. Allerding, kostenlos ist nicht kostenfrei. Erst muss man ein Framework, das eingesetzt werden soll, evaluieren und sofern dies nicht geschehen ist, eine Einarbeitung vornehmen, vielleicht sogar Erweiterungen. Aber man spart damit Aufwendungen und wiederkehrende Basisarbeiten.

Das leuchtet ein und ist doch nur die halbe Wahrheit.

Zu Beispiel findet man für ORM (Object Relational Mapping)  zwei Arten von Bewertungen:

  • Der Primus unter den ORM-Frameworks erfüllt oben erwähnten Kriterien bestens.
  • Wo gibt es eigentlich ein Framework, das die ORM-Thematik problemlos löst und wirklich simpel ist?

Von vielen Programmierern wird der einfache Einsatz von Frameworks gefordert. Richtig, es gibt eine Lernkurve, man lernt also die Verwendung eines Frameworks und dessen Konfiguration.

Dabei kann es vorkommen, dass die Komplexität so hoch ist, als lerne man eine neue Programmiersprache. Und so stellt sich die Frage, ob Konfiguration und Implementierung eines Frameworks intuitiv und auf den Entwickler optimiert sind? Sind diese Frameworks gleichzeitig skalierbar und genügen technisch den hohen Ansprüchen der Kunden? Und muss ich eine neue Programmier-/Konfigurationssprache lernen? Oder kippt das Projekt, weil ich aufgrund von Abhängigkeiten nicht die beiden notwendigen Frameworks einsetzen kann?

Also doch keine Frameworks verwenden?

Das kann nicht die Lösung sein. Aber es gibt kleine, über die Jahre erstaunlich stabile Frameworks, die sich ein exakt umrissenes Aufgabengebiet herausgegriffen haben und dies gut lösen.

Die Frage ist also nicht, ob Frameworks eingesetzt werden sollen, sondern, was man von einem Framework fordern kann, z.B.

  • Ein Framework soll komplexe Aufgaben lösen und sie mittels einer einfachen Schnittstelle verfügbar machen
  • Die Abhängigkeiten zu anderen Frameworks sollen gering und unproblematisch sein
  • Der Code soll aufgeräumt und gut lesbar sein, so dass Wartung jederzeit möglich ist.

Frameworks, die größere Leistungsspektren abhandeln und einfach anzuwenden sind, müssen Simplifizierungen vornehmen. Dies ist nur durch Annahmen möglich. Annahmen schränken zum Teil auch ein. Das Hauptproblem ist die Art der Vereinfachung.

Man soll alles so einfach wie möglich machen - aber nicht einfacher. (A. Einstein)

Die Scandio GmbH nutzt Frameworks dort, wo diese dem Kunden einen Nutzen bringen. Wir wählen die eigesetzte Technologie aus, wenn wir die Problemstellung des Kunden kennen. Nicht vorher.