Welche Programmiersprachen sind genormt?



  • Hi,

    Teilweise sind aber auch Standardisierungen extrem unflexibel.
    Ich habe jetzt nur ein paar Beispiele aus Delphi da:
    http://de.wikibooks.org/wiki/Programmierkurs:_Delphi:_Programmierstil
    Rechten Rand auf 80: wer druckt heute noch seitenweise Quelltext aus? In Zeiten von Widescreen mit Horizontalauflösungen von 1920 und mehr nicht mehr wirklich zu rechtfertigen. Wenn wirklich mal was gedruckt werden muss, dann eben Querformat.

    if a > b then...
    

    für mich, der ich von C komme gehört um JEDEN Vergleich eine Klammer ->

    if ( a > b ) then...
    

    keine Lerzeichen nach öffnenden und vor schleißenden Klammern und vor Doppelpunkt:

    procedure Hilfe(Text: string);
    

    -> ist für mich wesentlich unübersichtlihcer als

    procedure Hilfe( Text : string );
    

    Anordnung der Case-elemente:

    case Wert of
      Bedingung:
        begin
          ...
        end;
    else  { case }
      ...
    end;
    

    Warum den Else-Zweig vorziehen und hinten in Klammern angeben dass es das Else von case ist? Else ist auch nur ein besonderer Wert, nämlich der von allen verschiedene, also gehört er bei mir auf die Höhe der Bedingungen.

    case Wert of
      Bedingung:
        begin
          ...
        end;
      else 
      ...
    end;
    

    Warum soll man nicht die einzelnen Anweisung pro Bedingung auch mal wenn es passt hntereinander schreiben?

    case a of
      1 : begin Meckern( 'Eins' ); Wegschmeissen( 1  ); end;
      2 : begin Meckern( 'Zwei' ); Wegschmeissen( 2  ); end;
      3 : begin Meckern( 'Drei' ); Wegschmeissen( 3  ); end;
    end;
    

    Hier würde ein auseinanderziehen das ganze nur verkomplizieren...

    All das sind Freiheiten, auf die ich nicht verzichten möchte, weil sie den Quelltext für mich übersichtlich machen.
    Eine starre Normung (Es gibt Quelltextprüftools die sowas anmeckern würden) würde mich da doch sehr einschränken. Bis sich solche Normen an die reale Existenz moderner überbreiter Bildschirme wo es nicht mehr auf jeden Millimeter ankommt anpassen können bei so schnellen gremien wie der ISO Jahre vergehen.

    Gruß Mümmel


  • Administrator

    muemmel schrieb:

    Teilweise sind aber auch Standardisierungen extrem unflexibel.
    Ich habe jetzt nur ein paar Beispiele aus Delphi da:
    http://de.wikibooks.org/wiki/Programmierkurs:_Delphi:_Programmierstil

    Ehm, ist das nicht einfach nur eine Richtlinie? Eine Richtlinie ist wohl was anderes als eine Normierung. C# hat auch Code-Richtlinien. Und es lohnt sich oft, wenn man sich daran hält, da man dann konsistenten Code erzeugt, welcher zum Beispiel auch mit der Standardbibliothek übereinstimmt.

    Programmierstile sind in erster Linie eine Gewöhnungsfrage. Das Argument "Ich komme aus C, daher verwende ich in allen Programmiersprachen den C Stil" halte ich für sehr verkehrt. Es lohnt sich durchaus für alle Programmiersprachen, sich einen anderen Stil anzugewöhnen, bzw. einfach einigermasen der Richtlinie der Sprache zu folgen. Das hilft beim Umschalten bei der Denkweise, wie man programmieren muss. Anderes Werkzeug, andere Handhabung.

    Grüssli



  • Jetzt will ich doch auch mal meinen Senf dazu geben.

    Also C++ ist genormt. Und das finde ich gut so. Das bedeutet sicher nicht, dass jedes C++ Programm überall läuft. Aber das bedeutet immerhin, dass der allergrösste Teil des existierenden C++-Codes auf vielen Plattformen mit unterschiedlichsten Compilern lauffähig ist.

    Man schaue sich doch mal in der Open-Source-Welt um. Da gibt es viele Programme, die in C++ geschrieben wurden. In aller Regel wurden sie aber nicht für eine bestimmte Plattform geschrieben.

    Nehmen wir beispielsweise KDE. Das ist ein sehr grosses System, welches sowohl auf x86 unter Linux mit gcc als auch auf Sparc unter Solaris mit dem Sun Workshop compiler übersetzbar ist und dann auch läuft. Oder wie wäre es mit Firefox?

    Danke 👍 an die Leute, die sich um eine Standardisierung von C++ bemüht haben. Sicher ist nicht alles perfekt und das eine oder andere #ifdef ist notwendig, aber im grossen und ganzen läuft das.



  • sei hier bloss nicht für Standarisierung oder Normen und versuche das dann nicht auch noch zu begründen. Mich haben die bis zum Schluß nicht verstanden und dachten ich wollte gleich jede Kleinigkeit oder jede Sprache einer Norm unterziehen. Entweder können die hier nicht verstehen, lesen oder nicht abstrahieren. 🙄



  • tntnet schrieb:

    Jetzt will ich doch auch mal meinen Senf dazu geben ....

    Danke 👍 an die Leute, die sich um eine Standardisierung von C++ bemüht haben. Sicher ist nicht alles perfekt und das eine oder andere #ifdef ist notwendig, aber im grossen und ganzen läuft das.

    👍 So ist es! In den Zeiten vor C und C++ gab es sinnvoll nur FORTRAN. Dafür gab es auch standardisierte Normen, nur wurden sie allgemein als erfüllbares Minimum angesehen und beliebig erweitert. Wer Software entwickeln wollte, musste dies auf dem System A tun und beim Anwender auf dem System B installieren. Man tat also sich selbst einen grossen Gefallen, nur gesicherte Standards einzusetzen.

    Jede Programmiersprache kommt mit einem gesicherten Standard gut aus. Allen Rest packt man in Funktionsbibliotheken, die austauschbar sind. C und C++ haben das in vorbildlicher Weise gemacht.



  • Ich finde Standard und Normen auch gut. Ich mag es nicht wenn jeder machen kann was und wie er will, das hat was von Anarchie und um dieses Chaos halbwegs in den Griff zu bekommen bedarf es viel Energie, Zeit, Geld und Nerven. Die beiden Extreme sind Freiheit und Chaos auf der einen und Normen und Ordnung auf der anderen Seite. Man sollte da einen guten Mittelweg finden und das ist bestimmt nicht einfach, aber beide Extreme sind kein akzeptabler Zustand für gute Projektarbeit.

    G hibbes



  • In den Zeiten vor C und C++ gab es sinnvoll nur FORTRAN.

    Jaja ja, was fuer ein Bullshit. Und bevor es den Elektroherd gab, hat man sein Fleisch noch ueber offenes Feuer gebraten.



  • Warum kommen eigentlich immer so viele schwachsinnige "Argumente", wenn es um Programmiersprachen geht?



  • Weil sich einige persönlich angegriffen fühlen wenn ihre Entscheidung für eine Technologie oder sonst etwas kritisiert wird. Für denjenigen fühlt es sich dann so an als wenn er als Mensch was falsch macht und je nach Ego geht das gut oder auch nicht.

    Mit dem Alter ist einem dann so ziemlich egal was Andere denken und man macht das was einem Spaß macht auch wenn es in den Augen anderer keinen Sinn macht.

    Hier habe ich oft gelesen:
    "Das macht man heute anders, schneller, besser?" "Dafür gibt es andere Sprachen?""Das gibt es aber schon in einer Lib!" "Keiner schriebt heute mehr seine kompletten Programme in Assembler!" "Warum willst du eine eigene 3D-Engine nur mit Software-Renderer schreiben?" "Warum willst du das Rad neu erfinden?" usw. Die Antwort auf all diese Fragen ist:"Weil ich es machen will und es mir einen heiden Spaß macht." und das ist der Sinn der dahinter steckt und auch was bringt, nämlich die Befriedigung des eigenen Wissensdurstes und somit Entspannung in der Freizeit.

    Gruß blue-tec



  • muemmel schrieb:

    Rechten Rand auf 80: wer druckt heute noch seitenweise Quelltext aus? In Zeiten von Widescreen mit Horizontalauflösungen von 1920 und mehr nicht mehr wirklich zu rechtfertigen.

    Vielleicht will nicht jeder seinen Editor im Vollbild haben. Vielleicht hat es seine Gründe, warum in Zeitschriften der Text in mehreren Spalten gedruckt wird...



  • Exakt, bei zu vielen Zeichen ist es für das Auge schwer die nächste Zeile zu finden deswegen werden die Texte auch in Zeitschriften und auf guten Internetseiten in Spalten unterteilt. Ich nutze eine höhere Auflösung auch nicht dazu etwas in Vollbild zu machen ausser wenn ich in Qt-Creator beispielsweise 2 Quelltexte nebeneinander habe. Ansonsten habe ich meistens ein PDF auf der einen Seite und meine IDE auf der anderen. Ich mag auch Internetseite sehr die nicht eine hohe Auflösung verlangen, weil ich dadurch auch meinen Browser nicht maximieren muss und somit auch mal nebenbei mit VLC einen Film laufen lassen kann.

    Also ich halte mich immer noch an die 80 Zeichen Regel da es einfach lesbarer ist und man auch mehrere Quelltexte nebeneinander haben kann.



  • In Xaml wirds da mit den 80 Zeichen schon extrem schwer ^^
    Also ich finde Code hässlich wo alles auf 80 Zeichen gezwungen wird, da hat man dann links so Code Klötze und viel unbenutzten Platz.
    Man sollte es schon nicht übertreiben, das ist klar, aber ein höheren durchschnitt als gerade mal 80 schadet nicht.

    Kann man irgendwie seine durchschnittszeilenlänge messen lassen?



  • Anzahl der Zeichen / Anzahl der Zeile, vielleicht Leerzeilen oder so heraus filtern.



  • blue-tec schrieb:

    Also ich halte mich immer noch an die 80 Zeichen Regel da es einfach lesbarer ist und man auch mehrere Quelltexte nebeneinander haben kann.

    Ich arbeite mit altem Fortran-Code. Damals war es so, dass der Code erst in der 7. Spalte anfing und nach der 72. Spalte aufhören musste. Ich zeige euch mal ein paar Variablennamen, damit Ihr sehen könnt, zu was das führt...

    chsml, dagrf,dagrfd,dagrfu,dagrr,dagrrd,dagrru,dagrt,
    dagrtd,dagrtu,drdr,dzdfs,dzdr,dzdtr,grf,grfd,grfu,grr,
    grrd,grru,grt,grtd,grtu,rdf,rdfd,rdff,rdffd,rdffu,rdfu,
    rdr,rdrd,rdrf,rdrfd,rdrfu,rdrrd,rdrru,rdrt,rdrtd,rdrtu,
    rdru,rdt,rdtd,rdtf,rdtfd,rdtfu,rdtt,rdttd,rdttu,rdtu,
    ro,ro2,rod,rou,rv1,rv2,rv3,rvsin1,sint1,sint2,tant1
    

    Alles klar? 😋 Die 80-Spalten-Regel ist IMHO rein geschichtlich zu begründen und die sollte man sich auch nicht schön reden. IMHO sollte man heutzutage Zeilen so lang schreiben, wie man sie braucht, so lange es halbwegs im Rahmen bleibt. Starre Regeln sind in dem Zusammenhang kontraproduktiv und führen zu schlechtem Code, weil man deshalb an anderen Stellen Abstriche macht.



  • knivil schrieb:

    Anzahl der Zeichen / Anzahl der Zeile, vielleicht Leerzeilen oder so heraus filtern.

    Ich meinte jetzt eher nicht manuell, ich wollte schauen was der durchschnitt eines ganzen Projektes ist, die Code Metrics zeigen nur die Zeilen anzahl, aber nicht die länge.



  • Gregor schrieb:

    Ich zeige euch mal ein paar Variablennamen, damit Ihr sehen könnt, zu was das führt...

    Andererseits ist call-with-current-continuation auch irgendwie seltsam. Die Diskussion "lange Namen gegen kurze" erinnert mich in letzter Zeit immer an zwei Maler, die streiten, welche Farben schöner sind.
    🙂



  • Na, so hat jeder halt seine Meinung, ich bleibe sogar meist unter den 80 ich finde halt alles was stark drüber ist unübersichtlich:

    1. fürs Lesen
    2. fürs Arbeiten mit mehreren Fenstern nebeneinander
    3. fürs Drucken in Dokumenten oder auf Webseiten

    Das mir den Webseiten habe ich hier auch schon gesehen, wo ich dann echt lang nach links scrollen musste um das Ende der Zeile zu sehen, fand ich nicht schön. Ich rede hier natürlich nur von C++.

    Aber Geschmäcker sind ja verschieden.



  • mngbd schrieb:

    Gregor schrieb:

    Ich zeige euch mal ein paar Variablennamen, damit Ihr sehen könnt, zu was das führt...

    Andererseits ist call-with-current-continuation auch irgendwie seltsam. Die Diskussion "lange Namen gegen kurze" erinnert mich in letzter Zeit immer an zwei Maler, die streiten, welche Farben schöner sind.
    🙂

    Bei einem Namen wie "call-with-current-continuation" kann ich mir ohne in der Doku nachzuschauen denken, was da ungefähr passieren wird.
    Bei einem Namen wie "chsml" aus Gregors Posting fällt mir das in jeder Hinsicht schwieriger.

    Ich finde es eindeutig, welches Namensschema ich bevorzugen würde.



  • CSL schrieb:

    knivil schrieb:

    Anzahl der Zeichen / Anzahl der Zeile, vielleicht Leerzeilen oder so heraus filtern.

    Ich meinte jetzt eher nicht manuell, ich wollte schauen was der durchschnitt eines ganzen Projektes ist, die Code Metrics zeigen nur die Zeilen anzahl, aber nicht die länge.

    Das geht doch einfach auf der Kommandozeile:

    find . -name '*.cpp' -o -name '*.h'|xargs awk 'length($0) > 0 { Z=Z+1; L=L+length($0)} END { print L/Z }'
    

    Ich liebe Unix/Linux mit seiner Shell 👍 😉 .


  • Administrator

    blue-tec schrieb:

    Aber Geschmäcker sind ja verschieden.

    Schriftgrössen und Schriftarten auch 🙂

    Grüssli


Anmelden zum Antworten