1unitedpower: Fragen zum erstellen moderner Webseiten

Beitrag lesen

  • verboses und viel kompliziertes Typsystem Du meinst wegen der Ausgaben bei Fehlern?

Nein, das meine ich nicht. Die Fehlererkennung vor der Laufzeit ist ja gerade der Clue bei Typsystemen, und je mehr Fehler man auf diese Weise aufdecken kann, desto besser.

Insgesamt ziehe ich starke Typisierung einer dynamischen Typisierung vor.

C++ ist schwach und statisch typisiert, das heißt das einige Typfehler zwar vom Compiler erkannt werden können (das ist die statische Komponenten), aber dass zur Laufzeit trotzdem noch Typfehler auftreten können (das ist die schwache Komponente).

Worauf ich eigentlich hinaus wollte: Das C++ Typsystem ist irre kompliziert und sehr langatmig, mindestens auf zwei Weisen: Es gibt nur wenige Typinferenz-Regeln, das heißt Typannotationen müssen in den meisten Fällen ausgeschrieben werden. Und zweitens werden Typannotationen oft über Teilausdrücke fragmentiert, das macht sie schlechter lesbar. Ein Beispiel aus der Wikipedia.

vector<int> pick_vector_with_biggest_fifth_element(
    vector<int> left,
    vector<int> right
)

Der Rückgabewert der Funktion wird vor der Definition notiert, die Typen für die Parameter innerhalb der formalen Parameterliste. Ich bevorzuge da Typannotationen wie in funktionalen Sprachen. In PureScript würde man diesen Typen zum Beispiel so angeben:

pick_vector_with_biggest_fifth_element :: (Vector Int, Vector Int) -> Vector Int

(Mit Haskell-Syntax-Highlighting, weil 's besser aussieht).

Darüber hinaus finde ich das Typsystem kompliziert in dem Sinne, dass ihm kein formales Schema zugrunde liegt und seine Regeln deshalb schwer zu erfassen sind. Es kann nicht mit mathematischen Theorien auf diesem Gebiet (Typtheorie, Beweistheorie oder Kategorientheorie) erklärt werden. Das mag ziemlich realitätsverdrossen klingen, aber es führt in der Praxis einfach dazu, dass man viele Datentypen immer wieder neu definiert anstatt sie durch geeignete Spezialisierungen abstrakterer Typen zu definieren (Functor, Monoid, Monad, Comonad etc.). Algebraische Typsysteme sind insofern simpler, als dass ihre Regeln sehr transparent und nachvollziehbar sind – nicht simpler im Sinne von "einfacher zu erlernen".

0 115

Fragen zum erstellen moderner Webseiten

Christian Wansart
  • barrierefreiheit
  • sonstiges
  1. 1
    dedlfix
    1. 0
      Christian Wansart
      1. 0
        dedlfix
        1. 0
          Christian Kruse
          1. 0
            dedlfix
            1. 0
              Christian Kruse
              1. 0
                Christian Wansart
                1. 0
                  Christian Kruse
                  1. 0
                    Christian Wansart
              2. 1
                marctrix
                1. 0
                  Christian Kruse
                  1. 0
                    marctrix
                    1. 0
                      Christian Kruse
                      1. 0
                        marctrix
                        1. 0
                          Christian Kruse
                          1. 1
                            Gunnar Bittersmann
                            1. 0
                              Christian Kruse
  2. 0
    Linuchs
    1. 0
      Christian Wansart
      1. 0
        Robert B.
        1. 0
          Christian Wansart
          1. 0
            Der Martin
            1. 1
              Gunnar Bittersmann
              1. 0
                Der Martin
    2. 0
      Gunnar Bittersmann
      1. 1
        marctrix
    3. 0
      Auge
      1. 0
        Der Martin
        1. 0
          Auge
          1. 1
            Gunnar Bittersmann
            1. 0
              Auge
              1. 0
                Der Martin
                1. 0
                  Auge
                  1. 0
                    Der Martin
                    1. 0
                      Auge
                      1. 0
                        Christian Wansart
              2. 0
                Gunnar Bittersmann
                1. 0
                  1unitedpower
    4. 0
      1unitedpower
    5. 0
      Frameworknutzer
      1. 2
        Gunnar Bittersmann
  3. 0
    Gunnar Bittersmann
    1. 0
      dedlfix
      1. 0
        Gunnar Bittersmann
        1. 0
          dedlfix
        2. 1
          Frameworknutzer
          1. 1
            marctrix
            1. 0
              Frameworknutzer
              1. 2
                Gunnar Bittersmann
              2. 3
                marctrix
                1. 0
                  Gunnar Bittersmann
                  1. 0
                    marctrix
                    1. 0
                      1unitedpower
            2. 2
              Gunnar Bittersmann
              1. 0
                Matthias Apsel
                • menschelei
                • sonstiges
                1. 0
                  Der Martin
                  1. 0
                    Gunnar Bittersmann
                    1. 0
                      Tabellenkalk
              2. 0
                1unitedpower
          2. 0
            Gunnar Bittersmann
    2. 0
      Christian Wansart
      1. 0
        dedlfix
        1. 0
          Christian Wansart
          1. 0
            Matthias Apsel
            1. 0
              Christian Wansart
          2. 1
            dedlfix
            1. 1
              Christian Wansart
              1. 2
                Christian Kruse
                1. 1
                  Christian Wansart
                  1. 0
                    Christian Kruse
                    1. 0
                      Christian Wansart
                2. 0
                  1unitedpower
                  1. 0
                    Christian Wansart
                    1. 1
                      Christian Kruse
                      1. 0
                        Christian Wansart
                        1. 0
                          1unitedpower
                    2. 1
                      1unitedpower
                      1. 0
                        Christian Wansart
                        1. 0
                          Christian Kruse
                          1. 0
                            Christian Wansart
              2. 0
                dedlfix
                1. 0
                  Christian Wansart
                  1. 0
                    dedlfix
                    1. 0
                      Christian Wansart
                  2. 0
                    Matthias Apsel
                    1. 0
                      Christian Kruse
                      1. 0
                        Matthias Apsel
                        1. 0
                          Christian Kruse
                          1. 0
                            Christian Wansart
                            1. 1
                              Matthias Apsel
                              1. 0
                                Christian Wansart
                            2. 0
                              Gunnar Bittersmann
                              • css
                              • performance
                      2. 0
                        dedlfix
          3. 0
            Auge
            • browser
            1. 0
              Christian Wansart
              1. 0
                Auge
      2. 0
        Gunnar Bittersmann
  4. 0
    pl
    1. 1
      Gunnar Bittersmann
      1. 0
        Der Martin
        1. 1
          Gunnar Bittersmann
      2. 0
        Christian Wansart
        1. 0
          dedlfix
          1. 0
            Christian Wansart
            1. 0
              dedlfix
              1. 0
                Christian Wansart
        2. 0
          pl
      3. 0
        MudGuard
        1. 0
          Gunnar Bittersmann
  5. 2
    Frameworknutzer
    1. 1
      marctrix
      1. 0
        marctrix
  6. -2
    pl
    1. 0
      dedlfix
      • zu diesem forum