Welche Werkzeuge bietet mir z.B. Delphi/Free Pascal, um mit Crosscutting Concerns umzugehen? Kein AOP, keine Traits, kein garnix. Oder ist das ein Problem, was man als durchschnittlicher Delphi-Entwickler nicht hat? Oder doch einfach eher nicht kennt, aber durchaus hat.
Nachdem ich erstmal Google bemühen musste, listen die entsprechenden Wikipedia-Seiten durchaus auch Delphi-Optionen für AOP auf. Tauglichkeit kann ich nicht beurteilen, da ich dieser Problematik bisher nur herkömmlich begegnet bin.
Free Pascal ist für Anfänger völlig uninteressant. Es bringt keine eigene
IDE mit und Lazarus ist mehr oder weniger nicht zu gebrauchen.
FreePascal bringt durchaus eine eigene
IDE mit, aber üblicherweise wird tatsächlich Lazarus als
IDE verwendet.
Hast Du das seit dem Release der 1.0 mal verwendet? Wer Delphi > 7 gewöhnt ist, dürfte KZDesktop brauchen, aber ansonsten... das fängt schon mit so simplen Geschichten an, dass Refactoring auch über mehrere Dateien zuverlässiger funktioniert als in Delphi. Benenne ich eine Komponente in einer Form um, werden auch Referenzen im Code angepasst, anders als in Delphi. Der Editor zeigt mir, wenn ich scrolle, an in welcher Routine ich bin (sollte doch mal eine aus der Richtlinie, die kurz zu halten, ausbrechen). Den integrierten Code Formatter kann ich besser an unsere Regeln anpassen als den von Delphi. Der Object Inspector verspringt sich nicht ständig in der Zeile, was mich in Delphi öfters ärgert. Lazarus wirft mich nicht einmal täglich wegen einer Lizenzverletzung raus und lässt mich die letzten 10 Zeilen neu tippen, obwohl ich regulärer zahlender Kunde bin. Im Vergleich zu Delphi fühle ich mich für meinen Alltag in Lazarus wohler (ich bin aber auch kein Datenbankmensch bzw. wenn, dann schlichten Krams). Der Vergleich zu anderen IDEn fällt mir schwer, weil da sicher viel Gewohnheit reinspielt.
Warum sollte jemand Delphi oder das grottige Lazarus benutzen wenn er VS 2012 Express umsonst bekommt?
Wegen des in den Express-Editionen doch eher eingeschränkten Debuggers? Hat zumindest mich immer wieder genervt.