E
Die Frage ist, ob man halbwegs gare Software erstellen möchte, oder es wirklich um größere Architekturen geht. Bei letzteren kann es schon fatal sein, wenn man die Features vom Framework nicht korrekt ausnutzt. Denn unoptimale Ausnutzung ist bei vielen Frameworks dann eben doch Frickelarbeit. Man kriegt es hin, klar, aber sauber im Sinne von gut änderbar, erweiterbar, wartbar? Das denke ich nicht.
Ich hatte mit QT z.B. nicht viel gemacht und war jetzt auch nicht besonders tief in einem Framework drin (ja, das spielt eine Rolle, aber nicht nur). Bei der Entwicklung sind mir mehr und mehr Details erst später aufgefallen. Allein, dass man die Container richtig mit Layouts verbindet und ineinandersteckt. Das Prinzip ist altbewährt, aber bis es dann so aussieht, wie man es haben möchte, oder bis man versteht, wie QT tickt, das kann dauern.
Oder nehmen wir Threads. Klar, die kann man auch über boost verwenden. Bei QT muss man aber zum Beispiel darauf achten, dass man ein QObject erstellt und das erst in einen Thread schieben muss. Anders kann man es lösen, doch das ist dann wegen der Signalzuordnung unsauber und führt zu einigen Problemen. Das findet man nicht in einer Woche raus. Das steht nämlich auch nicht direkt in der Doku als Beispiel, sondern man muss es sich zuerst suchen - obwohl man vorher gar nicht weiß, dass es hier ein Problem gibt (generell hat die Doku einige Schwächen, was ich von vielen bemängelt las; könnte mittlerweile "behoben" sein, bezweifle ich aber).
Auch das Mime-Konzept ist seltsam, dann ist für diverse Event-Methoden noch das ein oder andere zu beachten, was je nach Framework unterschiedlich ist usw. usf.
Edit: Noch ein super Beispiel, wie ich finde: Komm Mal hinter die Facetten von Model und View beispielsweise bei einem Tree bei QT. Da gibt es diverse Abstraktionen wie QModelIndex. Um das richtig zu verwenden, muss man diverse Prüfungen machen und alle möglichen Methoden überschreiben. Dann muss man an bestimmten Stellen irgendwelche Signale senden... alles überhaupt nicht intuitiv. Und Fehler dort sind schwierig zu finden. Und verbinde das dann noch mit Drag&Drop oder anderen Konzepten/Techniken, die in QT ihre Eigenheiten haben und nicht auf das Modell selbst zugeschnitten sind, und Du hast Spaß. Eine Woche kann alleine dafür draufgehen.
Man kriegt nach einer Woche sicherlich etwas zusammengeklickt. Eine größere Software zu erstellen, die reibungsfrei funktioniert, kann aber schon ein Weilchen dauern. Und eine wirklich größere Software architektonisch sauber aufzusetzen, setzt in meinen Augen eine sehr gute Kenntnis mit den Eigenheiten des Frameworks hinaus. Denn auch die Kleinigkeiten und die Erfahrung damit beeinflussen eine große Architektur meiner Erfahrung nach maßgeblich.
Schließe mich im Grunde also somit denen an, die sagen "Eine Woche ist gar nichts".