Der Notes Blogger Ferdi Christiant hat - mehr aus seiner Erfahrung mit Java und .NET heraus - einen schönen Artikel über die Evaluierung von Frameworks geschrieben.
http://www.ferdychristant.com/fchristant/production/fdm.nsf/vwBlogsByDate/C36E1B623E61D02E80257479006C5D1EFür mich in den letzten Jahren sicher das wichtigste technische Thema als Anwendungsentwickler. Spring, Ibatis-SQLMaps, JSF, SEAM, Hibernate, Struts, etc.
War auch in meiner diesjährigen Java-Schulung der Punkt, an dem es schwierig war, den Leuten begreiflich zu machen, was der Sinn dieser Frameworks ist.
WO: Dieses ibatis. Das nehmen wir statt JDBC. Das verbindet mit der Datenbank?
AJ: Nicht ganz. Ibatis benutzt JDBC.
WO: Aber wofür brauchen wir das dann? Es wirkt komplizierter als JDBC.
AJ: Nein. Mit JDBC ein SQL Select Statement gegen eine Datenbank abzusetzen ist einfach. Aber wenn du viele Select, Insert, Updates, Deletes hast, die auch noch transaktional zusammenarbeiten sollen, dann entsteht quasi zwangsläufig schlecht lesbarer Code. Ausserdem tippst du dich tod. Die Frameworks ermöglichen es dir, code mit guter Qualität in kurzer Zeit zu schreiben.
Frameworks haben natürlich immer eine Lernkurve. Da muß man erstmal durch. Und es gibt immer Situationen, in denen Frameworks ein bestimmte Aufgabe schwieriger machen. Und das ist ein echtes psychologisches Problem. Ich werd dann jedenfalls immer sehr sauer. Es muß auch so sein. Programmiersprachen bieten tausende von möglichen Lösungswegen. Auch das flexibelste Framework verengt diese hohe Anzahl der möglichen Lösungswege auf weniger. Die haben dann aber eine größere Chance, wirklich gut zu sein. Aber es kann sein, dass man für eine bestimmte Aufgabe, an die die Frameworkprogrammierer nicht gedacht haben, einen steinigeren Weg gehen muß als ohne Framework.
Ich hab festgestellt, das Frameworks mich insgesamt deutlich produktiver machen. Und die Lerninvestition ist fokussierter. Das heisst, ich kann sie leichter abrufen.
Noch lieber schreibe ich natürlich eigene Frameworks. Für bestimmte Aufgaben ist das auch zu rechtfertigen. Java machts durch Reflection, die Paketstruktur, etc. relativ einfach. Meine werden nur niemals so gut wie die von wirklich guten Programmiern, die dank openSource durch einen längeren Kritik-und-Verbesserungsprozess gegangen sind.
Gruß Axel