Das Problem speziell bei Delphi in der letzten Zeit ist das maßlose Overengineering, bei dem gleichzeitig das Grundkonzept aus den Augen verloren wird und Konzepte vermischt werden, die nicht vermischt werden sollten bzw können.
Bestes Beispiel sind die LiveBindings, bei denen es inzwischen ca ein Duzend verschiedene gibt, die je nach Datenquelle und/oder Control, an die man es bindet variieren. Zudem haben sie oft kein einheitliches Verhalten. Lässt sich wunderbar in einer Präsentation vorführen (Klick, klack, F9, läuft, ohne eine Zeile Code) aber in einer wirklichen Anwendung möchte ich nicht mehr der sein, der hinterher sich die
dfm als Text anzeigen lassen muss, weil unter den hunderten von Bindings irgendwo ein Fehler verbirgt, weil sich jemand verschrieben hat, die Property umgenannt wurde oder sonstiges. Das alles merkt man natürlich nicht beim Kompilieren.