Was versteht ihr darunter wenn eine Programmiersprache elegant ist?



  • ficky du n00b schrieb:

    ~fricky schrieb:

    hustbaer schrieb:

    @~fricky:
    Ich persönlich finde solchen Code oft grauenhaft, nämlich dann wenn er dem Durchschnitts-Programmierer nicht nur nicht einfallen würde, sondern wenn der Durchschnitts-Programmierer ihn nicht verstehen wird.

    es versteht sich von selbst, dass über so einem code ein fetter kommentar steht, in dem erklärt wird, was da abläuft.
    🙂

    Ich hätte mehr von dir erwartet...

    "Schlauer Code" ist nie elegant, schön oder in sonst einer Form Vorteilhaft.

    Lass fricky in Ruhe du Gestalt! 😡



  • ficky du n00b schrieb:

    "Schlauer Code" ist nie elegant, schön oder in sonst einer Form Vorteilhaft.

    naja, aber letzlich definiert jeder für sich 'eleganz' beim programmieren anders. ich finde nun mal das 'wie-was-gemacht-wird' manchmal elegant.

    rüdiger schrieb:

    Ich finde eine Programmiersprache elegant, wenn man komplexe Probleme in einer kurzen aber verständlichen Weise formulieren kann.

    nur tun sich solche sprachen oft mit einfachen dingen schwer.
    🙂



  • ~fricky schrieb:

    rüdiger schrieb:

    Ich finde eine Programmiersprache elegant, wenn man komplexe Probleme in einer kurzen aber verständlichen Weise formulieren kann.

    nur tun sich solche sprachen oft mit einfachen dingen schwer.

    Nur weil du es nicht kannst.



  • bzto schrieb:

    Nur weil du es nicht kannst.

    und weil die sprachen nicht dafür gemacht sind. z.b. kannst ja mal versuchen einen haufen bytes mit sql oder prolog in gray-code oder sowas umzuwandeln. ich will nicht sagen, dass es unmöglich ist, aber man wird sich ganz gut einen abwürgen. damit lassen sich mit solchen sprachen besser (weil elegant) mengenorientierte und logik- aufgaben lösen als z.b. mit C
    🙂



  • ~fricky schrieb:

    bzto schrieb:

    Nur weil du es nicht kannst.

    und weil die sprachen nicht dafür gemacht sind. z.b. kannst ja mal versuchen einen haufen bytes mit sql oder prolog in gray-code oder sowas umzuwandeln. ich will nicht sagen, dass es unmöglich ist, aber man wird sich ganz gut einen abwürgen. damit lassen sich mit solchen sprachen besser (weil elegant) mengenorientierte und logik- aufgaben lösen als z.b. mit C
    🙂

    Naja, hier musst du zwischen allgemeinen und speziellen Sprachen unterscheiden. Sicher können spezielle Sprachen sehr elegant für spezifische Probleme sein. Aber es gibt ja auch allgemeinere Sprachen als Prolog, die sehr elegant sind.



  • 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