Ja, aber...

An sich stimme ich dieser Regel zu, und verwende selber beim Programmieren fast nie die *;-Kommentare, da man (wie angesprochen) den Strichpunkt am Ende des Kommentars doch recht schnell vergisst (vor allem wenn man auch andere Programmiersprachen gewöhnt ist...)

Allerdings sollte man auch einen gravierenden Nachteil dieser Regel nicht außer Acht lassen: Gerade bei der Fehlersuche hat man häufig dass Problem, dass man größere Codeabschnitte auskommentieren will. Wenn man aber in einem solchen Abschnitt Blockkommentare der Form /* ... Kommentar... */ verwendet, ist das nicht mehr möglich.

Gibt es Vorschläge zur Lösung dieses Problems? Als Workaround kann man natürlich das Pseudo-Auskommentieren mittels %MACRO / %MEND verwenden, aber das ist jetzt nicht unbedingt guter Programmierstil :-) Ideal wäre natürlich, wenn SAS irgendwann einmal auch Zeilenkommentare im C++/Java-Style zulassen würde (mit // am Anfang).

größere Codeabschnitte auskommentieren ...

machen wir bei SSI immer mit
%macro AUS; /* yyyymmdd: AUS, jetzt der Grund warum aus */
und
%mend AUS;
Wegen dem sprechenden Namen AUS ist diese Technik m.E. sehr wohl guter Programmierstil. "Gut" im Sinne von: Besser geht es nicht.
Mit dem "Einheits"-Makro verhindern wir das Voll-Laufen der Macro-Def-Sammlung im saswork.
Bei Bedarf kann man mit
%AUS;
den Code jederzeit testweise und temporär reaktivieren. Beim Dauer-Reaktivieren sollte man zumindest den Namen ändern, die Makro-Klammer könnte bleiben (das würde den Auswand des erneuten Ausrückens sparen, siehe die Einrück-Regel, wobei das Ein-/Ausrücken dank den <<2- bzw. >>2-PGM-Anweisungen sehr flott von der Hand geht).

Die C++/Java-Technik (mit // am Anfang) wäre m.E. umständlicher. Man müßte in jeder Zeile das // einfügen.

// Kommentar

Bei der C++/Java-Technik haben Sie mich glaube ich falsch verstanden, ich will nicht jede Code-Zeile mit // auskommentieren (obwohl Eclipse das auch auf Knopfdruck macht :-) )

Ich nutze in diesen Programmiersprachen die Zeilenkommentare da, wo ich jetzt in SAS die Blockkommentare nutze, d.h. statt

/* Kommentar */ 
Codezeile;

schreibe ich

// Kommentar
Codezeile;

Im Prinzip also das, was man auch mit dem SAS-Zeilenkommentar erreicht - nur weniger fehleranfällig, da man keinen Strichpunkt vergessen kann. Den ganzen Block kann man dann z.B. beim Testen ganz einfach mit

/* 
   // Hier steht ein Zeilenkommentar
   ... auskommentierter Code
*/

relativ einfach auskommentieren...

Das Auskommentieren mittels Macros mache ich in der Praxis schon genauso, nur finde ich, dass es nicht unbedingt die Lesbarkeit fördert (was sicherlich auch Geschmackssache ist)

Mißverständnis beim C++-/Java-Kommentar

Stimmt, das mit dem C++-/Java-Kommentar war bei mir tatsächlich ein Mißverständnis.
So wie es jetzt in dem Beitrag (MartinHaffner, 10 März, 2006 - 13:36) steht, sieht es auch zum auskommentieren von ganzen Abschnitten sehr "schön" und handlich aus.
Als Zeilen-Kommentar wäre mir die C++-/Java-Kommentar auch sehr lieb, denn es passiert in der täglichen Praxis leider zu oft, dass man beim kopieren (mit Copy&Paste) hinten ein Kommentar-Zu zu viel hinkopiert, was dann "irgendwann" zu (unnötigen) Fehlern führt. Diese Falle wäre bei einem //-Kommentar gar nicht mehr vorhanden! Das wäre ein guter Fortschritt.

Lieber %macro aus

Nach vielen leidvollen Erfahrungen verwende auch ich Macros, zum (temporären) deaktivieren von Code. Der wichtigste Vorteil ist, dass dann alle Methoden um Kommentieren frei bleiben.

/*
Ist für längere Erläuterungen
*/

/**
Ist eine Sonderform die von meinem Parser in die automatische Dokumentation übernommen wird.
*/

und

* Diese Meldung wird bei der Ausführung eines Macros mit der Option
MPRINT zusammen mit dem Code im Log ausgegeben. ;