Was versteht ihr darunter wenn eine Programmiersprache elegant ist?



  • Ich finde eine Programmiersprache elegant, wenn ich einfache wie auch komplexe Probleme klar und verständlich formulieren kann. Und zwar so, dass ich keinen Kommentar dazu schreiben muss, was da eigentlich gemacht wird.

    Ein elegantes Programm ist ein Programm wo jeder Durchschnittsprogrammierer beim Lesen sagen würde, er hätte es genau so gemacht.



  • Eleganz (wikipedia):

    Ausdruck von besonderem Stil und Geschmack ...
    ästhetisches Konzept und Ideal, das an Schönheit und Grazie orientiert ist ... herausragende Gestaltung ...
    Schlichtheit, Minimalismus ...

    Erfüllt C++ diesen hohen Anspruch? Vielleicht im Bereich der STL und im Bereich der Performance. Ansonsten findet man eher Mittelmaß, Flickschusterei und hohen Tippaufwand bei C++.



  • Erhard Henkes schrieb:

    Vielleicht im Bereich der STL ...

    schau dir mal den code der stl an. von schönheit, grazie und dergleichen ziemlich weit entfernt, würde ich sagen.
    🙂



  • abc.w schrieb:

    Von den Paar Programmiersprachen, mit denen ich in Berührung gekommen bin, Pascal, C, C++, VHDL, Assembler IA32, finde am elegantesten C.
    - wenig Redundanz, d.h nicht übermässig geschwätzig ;), einfache Sprachkonstrukte

    Aha, aber der Sprachumfang selbst ist redundant. Mir fallen z.B. spontan drei Methoden der Pointer- Dereferenzierung ein (Pointerderf., Array, Arrayanker), die über unterschiedliche Syntaxen nahezu das Gleiche bewirken.

    abc.w schrieb:

    - von links nach rechts und von oben nach unten lesbar

    Ah, noch nichts von der right- to- left- Methode zur Typenauflösung gehört?

    abc.w schrieb:

    - einfache Struktur des Programms

    Ist jetzt wohl nicht eine Eleganz der Sprache.

    abc.w schrieb:

    - unterstützt goto (nein, nein, ist nur ein Scherz 😉

    Besser so. Eine Mehrfachbenutzung von Symbolen für völlig unterschiedliche Operationen trägt natürlich auch gewaltig zur "Lesbarkeit" bei. Dazu ist die Syntax insgesamt sperrig, inkonsistent und nicht von ungefähr gibt es für C Wettbewerbe, in denen darum geeifert wird, das unleserlichste Programm zu schreiben.
    Von berufeneren Geistern als mir ist indes die stiefmütterliche Behandlung von Zeichenketten nicht als Basistyp, sondern in externe Libs ausgelagert bekrittelt worden. Über die Lücken, die undefiniertes Verhalten ergeben, brauchen wir wohl auch nicht weiter zu diskutieren ...

    C ist zweckdienlich, weil es gut skaliert (vom Controller bis zum Mainframe), so weit standardisiert und verbreitet ist, daß Code auf Sourceebene recycelbar wird.
    Aber echt, "elegant" ist was anderes.

    char *(*(**foo[][17])())[];
    

    😃



  • So, nachdem das geklärt ist, würde ich vorschlagen, dass wir auch gleich darüber diskutieren, was denn einen eleganten Besen ausmacht? Rutenbesen oder Handfeger? Wodurch zeichnet sich elegantes Fegen überhaupt aus? ...

    .. so ein Unsinn, der hier diskutiert wird. Ihr könntet alle auch gleich Philosophie studieren .. 🙄


Anmelden zum Antworten