Einzelnen Beitrag anzeigen

Benutzerbild von negaH
negaH

Registriert seit: 25. Jun 2003
Ort: Thüringen
2.950 Beiträge
 
#22

Re: lokale Variablen mit globaler Lebensdauer?

  Alt 14. Jul 2005, 00:55
Argumente wie:

- das wird es nicht mehr geben
- Borland wird es in seinem Compiler nicht mehr unterstützen
- es ist ein schlechter Stil
- schau dir mal andere Sprachen an
- in Sprache X ist das aber möglich
- mit Objekten sollte man Singeltons benutzen

zählen rein garnichts. Im Delphi gibt es initialisierte Konstanten die wie statische Variablen auch lokal zu einer Funktion benutzt werden können. Das ist der Stand der Dinge über den wir reden.

Aber aus solchen Argumenten eine Begründung zu konstruieren warum die Benutzung solch einer Funktionaltiät ein schlechter Programmierstil darstellt ist unlogisch und irrwitzig.

Schau mal, ich meine das ein guter Programmierstil reingarnichts damit zutun hat ob man bestehende Funktionalität einer Programmiersprache nun so oder so benutzt. Ich habe in meinen 20 Jahren die ich als Programmierer garbeitet habe viel Software gesehen. Interessant sind natürlich nur die Projekte die auch ihr gestecktes Ziel erreicht haben. Und dabei musste ich feststellen das guter Programmierstil in Assembler, Basic, Pascal, C und sogar VBA möglich ist, ohne oder mit OOP, ohne oder mit Interfaces, rein procedural oder eben nicht. Das dieser gute Stil Programme sein konnten die Spaghetti Code waren, oder fast schon kryptische C Sourcen oder eben OOP in Pascal.
Ich habe aber auch schon Software gesehen die den vergeblichen Versuch unternommen haben wirklich alles OOP konform in Klassen zu kapseln, und?, dadurch ist der ReportBuilder auch nicht besser geworden als andere viel einfachere Lösungen. Wer den RB gekauft hat sollte sich wirklichmal in dessen Source einarbeiten.

Ehrlich gesagt, ich bewundere Sources bei denen jede einzelne Sourcezeile wirklich zum Gesamtwerk beiträgt, alles ist durchdacht, angefangen beim benutzten Algorithmus der auf handfesten mathematischen Berechnungen beruht, über die richtige Wahl der effizientesten Datenstrukturen (was auch einfache Records sein könnten) über diereale Umsetzung als Source bis hin zur fertigen Software. Dabei war es im Grunde egal mit welcher Sprache programmiert wurde und/oder welchen Stil der Programmier sich angeeignet hatte (hauptsache dieser Stil war sauber strukturiert).
Wichtig ist dann nur eine Aussage: "Wow das hat der Programmierer ja genial gelösst!"

Das heist also das ein Programmierer der einen guten Programmierstil besitzt mit JEGLICHEM Werkzeug immer einen guten Stil haben wird, egal welche Programmiertechnologien ihm zur Verfügung stand. Das wichtigste Indiz für einen guten Stil ist nicht die Beschränkung auf eine geringe Menge aller Möglichkeiten einer Sprache, sondern das wichtigste Indiz ist die effiziente und an das Problem angepasste Verwendung ALLER Möglichkeiten einer Programmiersprache.

Die Aussagen das OOP, .NET etc. pp. DEN besten Stil in der Programmierung darstellen sind also meiner Meinung nach eine sehr kurzsichtige und aufdoktrierte Sichtweise der Dinge. Eine solche Sicht muß zwangsläufig in eine Idiotie führen, denn man versperrt sich die unvoreingenommene Sicht auf all die anderen möglichen Wege eine Software zu programmieren. Mann was haben wir nicht alles in den letzten Jahren an Trends kommen und wieder sterben sehen. Was ist eigentlich aus Kylix geworden, was aus Corba, was aus dem Extreme Programming. Alles ist gescheitert weil mehr die Marketingexperten das sagen hatten, weil die Mode in die Programmierung Einzug gehalten hat, und mit der Mode kamen die überflüssigen Mode-Schöpfer in unsere Branche. Wir streben nach immer neueren Sprachfeatures weil man glaubt dadurch dann ein besserer Programmierer zu werden. Ich erinnere mich an ein simples Problem hier in der Delphi Praxis: bau die Lottoziehungen im Fernsehen als Program nach. Es hat mich viele Postings gekostet um auf das eigentliche Problem aller Lösungsvorschläge hinzudeuten, es verständlich zu machen. Nämlich das Erkennen des eigentlichen Problemes um die korrekte Lösung zu finden, und nicht der beste Weg zu irgendeiner halbrichtigen Lösung.

Schau mal: ich programmiere in ganz verschiedenen Sprachen auf ganz verschiedenen Plattformen. Zb. Delphi auf PC's, C/C++/Pascal auf Handhelds, C/Asm auf Mikrokontrollern und VHDL/ABEL auf FPGA's/CPLD's. Alles hat mit Programmierung zu tun, keine der unterschiedlichen Sprachen oder Plattformen lässt einen direkten Vergleich untereinander zu, sie sind zu verschieden. Und denoch behaupte ich das wenn ich dir einen Source in Delphi für PC's und einen Source in C/Assembler für zb. einen Atmel Mikrokontroller zuschicke du denoch einen Stil EINER Person in der Art der Programmierung erkennen wirst. Wie bitte schön passt da OOP als Methode der Programmierung hinein ?
Ich behaupte mal das man den ausgeprägten Stil eines Programmieres auch "durch die Sprache hindurch" wiedererkennen kann. Die Sprache, ja selbst die unterschiedlichen Methoden des Programmierens, ist zur Bewertung eines Programmier-Stils absolut irrelevant. Es geht viel mehr um Kreativität, wie ein Mensch ein Problem erfassen konnte, wie dieser Mensch seine Aufgaben organisiert, welches Wissen er dafür verwendet und ihm zur Verfügung steht, und ob er zeilstrebig diszipliniert und sauber arbeiten kann. Erst danach kommt die Technologie in Form seiner Werkzeuge zum tragen, sprich die Programmiersprache.

Ihr verwechselt den Programmierstil mit äußeren Umweltbegingungen, irgendwelchen Gegebenheiten irgendwelcher Sprachen oder bestimmter Technologien, irgendwelchen vorgekauten Meinungen von Mode-Schöpfern. Wie zb. Microsoft pusht .NET also muß es gut sein, Borland forciert OOP also ist es guter Stil. Shit sage ich dazu nur, den der Programmierstil ist allerhöchsten vergleichbar mit dem schriftstellerischen Schreibstil eines Buchautors oder mit der Pinselführung und Farbauswahl eines Malers.

Gruß Hagen
  Mit Zitat antworten Zitat