Jeena Paradies: Ästhetik und Klarheit von Code

Beitrag lesen

Hallo,

Ja, teilweise. Generatoren würde ich auch nicht ansatzweise als Macro bezeichnen den Rest als Krücken. Meine – und ich glaube die übliche – Definition von Macro ist diese hier: Ein Syntaxkonstrukt, das vor dem Evaluieren zu einer anderen Syntax umgewandelt wird. Und diese wird dann geparst und evaluiert.

Ich sehe Macros also mehr als eine Abstraktion für den Programmierer denn für den Compiler/Interpreter. Man ist nicht mehr an die syntaktischen Konstrukte der Sprache gebunden, sondern kann was eigenes machen. Für sich selbst, für Lesbarkeit und Klarheit. Und damit ist das ein Anwendungsfall immer dann, wenn man für sich und die anderen Leser des Quellcodes Redundanz vermeiden will. Oder wenn man Dinge auslagern will.

Aaah ok dann verstehe ich. Allerdings hindert dich keiner daran einen Proprozessor vor den compiler zu spannen der genau das macht. Ich erinnere da gerne an Coffescript das das ganze wohl auf die Spitze treibt ;)

Aber ich bin da skeptisch dass das wirklich die Lesbarkeit erhöhen würde. Für dich selbst ja, für jemanden von außen eher nicht, denn dann muss er nicht nur die syntax der Programmiersprache kennen sondern auch noch die deiner Macrosprache.

Ich hab natürlich für meine „echten Macros“ etwas vor Augen, die Macros aus den LISP-Dialekten. Lisp hat den Vorteil (und Nachteil), dass die syntaktische Struktur letztendlich nur die Text-Variante eines Parsetrees ist.

Hm ok, das ist da schon was völlig anderes als ich irgendwie erwartet hätte. Aber guck dir mal den zweiten von mir verlinkten film an ab minute 25. Da programmiert John schlussendlich in Haskell eine DSL extra für Parser und die sieht, obwohl eigentlich plain Haskell, verblüffend ähnlich der BNF (Context Free Grammar).

Und im Vergleich sind dann Funktionen oder Methoden wie in Ruby eher nur Krücken, um Abstraktionen zu erreichen.

Ja ok von diesem Standpunkt aus gesehen wohl ja, wobei man an Rails ganz gut sehen kann dass wenn man es sinnvoll macht dann geht da auch schon einiges.

Aus Haskell müsstest du auch Currying kennen, ich finde damit lässt sich code viel besser lesbar machen als mit Macros (zumindest solchen wie bei C). Allerdings muss der Programmierer das Konzept auch schon vereinnamt haben, für einen Laien sind das nur unfertige Funktionen.

Es kommt halt wirklich auf die Zielgruppe drauf an. Will man dass es für Leute in diesem Forum lesbar ist, oder für eine Gruppe von Biologie-Informatik-Professoren die den ganzen Tag nichts anderes machen als Simulationen zu basteln um ihre Hypothesen zu testen.

„Warst Du nicht auch die letzten Jahre manchmal neidisch auf Jeenas Studienprogramm? Chalmers scheint mit all den Sprachen das viel interessanter zu machen als die deutsche Durchschnittsuni.“
„grinsendes Bejahen.“

;)

Hehe, ja ich kann wirklich nicht klagen was das angeht, auch wenn mir immer vorgeworfen wird ich hüpfe von einer Sprache zur nächsten nur weil sie gerade Hipp ist ;)

Jeena

3 88

Ästhetik und Klarheit von Code

Tim Tepaße
  • programmiertechnik
  1. 2
    asdf
    1. 0
      Jeena Paradies
      1. 0
        asdf
      2. 2
        molily
        1. 0
          Jeena Paradies
      3. 2
        Stefanie M.
    2. 0
      Tim Tepaße
      1. 1
        dedlfix
  2. 0
    Jeena Paradies
    1. 2
      Tim Tepaße
      1. 2
        Jeena Paradies
  3. 0
    Der Martin
    1. 1
      Jeena Paradies
    2. 1
      Tim Tepaße
      1. 0
        Der Martin
        1. 0
          Jeena Paradies
          1. 0
            Der Martin
            1. 3
              DaBear
              1. 0
                Der Martin
                1. 1
                  DaBear
                  1. 0
                    Der Martin
                    1. 1
                      Jeena Paradies
                      1. 4
                        Christian Kruse
                        1. 0
                          Christian Seiler
                          1. 0
                            Christian Kruse
                          2. 0
                            molily
                2. 0
                  Tom
            2. 2
              Tim Tepaße
              1. 0
                Der Martin
                1. 1
                  dedlfix
                  1. 0
                    Tom
                    1. 1
                      Jeena Paradies
                      1. 0
                        Tom
                        1. 0
                          Tom
                          1. 4
                            Christian Kruse
                        2. 4
                          Kai345
                2. 3
                  Christian Seiler
                  1. 0
                    Tom
                    1. 0
                      Don P
                      • menschelei
                      1. 0

                        Currying

                        Tom
              2. 0
                Stefanie M.
                1. 0
                  Tom
                  1. 0
                    Tim Tepaße
                    1. 0
                      dedlfix
                    2. 1
                      Der Martin
                      1. 2
                        molily
                2. 1
                  molily
            3. 3
              molily
              1. 0
                Der Martin
                1. 0
                  dedlfix
                  1. 0
                    Tom
                    1. 5
                      molily
                      1. 0

                        Ein Nachruf

                        Christian Seiler
                        1. 0
                          Christian Kruse
                          1. 0
                            Tom
                        2. 0
                          Der Martin
                          1. 3
                            Christian Seiler
                            1. 0
                              Der Martin
                        3. 0

                          Der Unterschied zwischen Nachwuchsföderung und Arroganz

                          Tom
                          • menschelei
                          1. 0

                            Was ist aus dem einstigen Nachwuchs geworden?

                            Tom
                          2. 0
                            Jeena Paradies
                        4. 1
                          dedlfix
                      2. 0
                        Tom
                        1. 0
                          Tim Tepaße
                          1. 0
                            Der Martin
                            1. 5
                              molily
                              1. 1
                                dedlfix
                                1. 3
                                  molily
                                  1. 3
                                    Don P
                          2. 0
                            Tom
                            1. 0
                              Tim Tepaße
                              1. 0
                                dedlfix
        2. 0
          Christian Seiler
        3. 0
          Don P
    3. 0
      Tom
      1. 0
        Der Martin
    4. 0
      Don P
      1. 0
        Jeena Paradies
        1. 0
          Christian Seiler
          1. 0
            Christian Kruse
          2. 0
            molily
  4. 1
    molily
    1. 0
      Tim Tepaße
  5. 0
    reborn
  6. 0
    Buchtipp
  7. 0
    jobo
    1. 0
      jobo