Schlechtes Design ist auch nicht sprachabhängig.
Da muß ich Dir widersprechen.
1. Eine Sprache, die kein OOD anbietet, erzwingt schlechtes Design. (Q-Basic
)
2. Eine Sprache, die sowohl prozedurale Programmierung als auch
OOP anbietet, lädt zu schlechtem Design ein (Delphi).
3. Eine Sprache, die nicht typsicher ist, lädt zu unsicherem Code ein. (C)
Ein guter Softwerker wird in so gut wie jeder Sprache (auch Q-Basic) in der Lage sein, eine gute Architektur und Struktur unterzubringen. Allerdings wird ein mittelmäßiger Programmierer, was ja per Definitionem der Großteil der Programmierer ist, aus Bequemlichkeit die Paradigmen einer Programmiersprache verwenden, die sein Problem kurzfristig am schnellsten löst und nicht den Weg wählen, der langfristig am besten und saubersten ist (weil er eben mittelmäßig ist).
Und Bequemlichkeit (oder von mir aus 'Zeitdruck', um eine beliebte Ausrede zu verwenden) liegt nun einmal in der Natur des mittelmäßigen Programmierers.
Ich will hier sicherlich keinen Delphi-Flamewar starten, aber eine Programmiersprache, die den Spagat zwischen den 80er Jahren des letzten Jahrhunderts und heute schafft, muss zwangsweise in Kategorie 2 und 3 (s.o.) fallen und somit dem Durschnittsprogrammierer die Hintertür zu schlampigem aufhalten.
Natürlich kann man mit C#/Java genauso schlampigen Code produzieren, aber es wird einem doch etwas schwerer gemacht: harte Casts gehen nur sehr umständlich, fehlende Rückgabewerte gar nicht, Range overflows sind so gut wie unmöglich usw.
Bezüglich dem Schreiben von Tests ist meine Erfahrung die, das Tests nur so einfach zu schreiben sind, wie das Test/Mocking-Framework es zulässt. Wenn ich eine CLR/Runtimeumgebung habe, die mir alle Möglichkeiten bietet (was bei Delphi nicht der Fall ist), ist es logisch, das ich mit anderen Sprachen viel einfacher Tests schreiben kann. Auch andere Delphi-Schwächen (die eher
Win32-Macken sind, aber egal) sind nicht gerade förderlich, wenn es ums Schreiben von (gemockten) Tests geht.
Ganz so gleichwertig steht Delphi hier also nicht da. Allerdings ist es wirklich so, das die Urteile der Stammtischschwätzer auf Unwissenheit beruhen, denn wer z.B. Delphi als Macro-Skriptsprache in Erinnerung hat (ein Senior-Softwarearchitekt im vorletzten Projekt), der ist einfach nicht qualifiziert genug.
So wie ich das sehe, kann Delphi durchaus mithalten und bietet mit der Option One-Codebase-many-Plattforms ein Alleinstellungsmerkmal, an das sich die anderen Sprachen /
IDE messen müssen.