Struppi: Diskussionszusammenfassung auf Wikipedia

Beitrag lesen

Fand bei Wikipedias Protypeartikel eigentlich eine gute Zusammenfassung dieser Diskussion (;-):

Naja.

"Advocates of class-based object models who criticize prototype-based systems ..

Ich weiß nicht ob es euch aufgefallen ist, ich kritisiere das prototype System nicht. Ich arbeite damit ja lange genug und ich finde Javascript Toll.

Ich sag nur wie es ist. Es ist Fakt, dass JS ein anderes Konzept hat und dass es manche OOP Paradigmen gibt, die nur über Umwege umgesetzt werden können. Das  aufgrund der extremen Dynamik der Sprache, das Programmieren manchmal eine große Dispziplin erfordert. Ich hab oft genug schon dagegessen und stundelang irgendwelche Objekte gesucht, die auf unerklärliche Weise nicht mehr verfügbar waren oder irgendwo anders her kamen. Das ist auch eine der in Foren am häufigsten gestellten Fragen, "warum ist mein this nicht mehr die Instanz meines Objektes?"

Auch ich habe deshalb schon Tage damit verbracht, mir für diese Schwierigkeiten Hilfen zu bauen, ein Framework oder Helper Objekte. Und letztlich erkannt, dass, wie so oft, weniger mehr ist.

Trotzdem ist bleibt es schwierig und nicht umsonst gibt es in YUI, Mootools, protptye, usw. überall diese Funktionen um dem JS Programmierer zu helfen. Und solange du nicht sicher bist, welches das Beste ist, ist es nervig, da alle andere Wege anbieten. Es wäre schöner, wenn es einen Weg gäbe, den die Sprache an sich hätte und wie es aussieht sind diese Dinge auf dem Weg (werden aber vermutlich 10 Jahre brauchen, bis sie allgemein eingesetzt werden können).

Wenn ob man JS wirklich eine OO Sprache nennen will, dann müßten solche Sachen wie Class, private, protected und einen Klassenweite scope geben und nicht die Aussage, dann muss man sich eben mit anderen Techniken helfen oder dieses oder jenes pattern ist aber eleganter. Denn wie gesagt, solche Muster lassen sich mit so gut wie jeder Sprache umsetzen und Objekte oder Strukturen gibt es auch fast überall, das würde dann letztlich bedeuten jede Sprache ist eine OO Sprache. Was aber am Kern vorbei geht. Die Frage dabei ist, was bietet dir die Sprache an?

Denn im Prinzip stimmt es auch, du kannst mit jeder Sprache OO programmieren. Aber ob man JS, mit seinem zwei dafür zu Verfügung gestellten Eigenschaften 'new' und 'prototype', als OOP Sprache bezeichnen kann, halte ich zumindest für überzogen. Sie hilft dir ein bisschen dabei, aber für die Umsetzung der Konzepte, bist du verantwortlich und musst dich - zumindest momentan noch -selber drum kümmern.

Genau darum geht es in diesem Thread. Ausgangspunkt der Diskussion, war eine Bibliothek, die versucht hat die Konzepte zu erweitern, wenn JS diese hätte wäre sowas nicht nötig. Ihr sagt solche Bibliotheken sind überflüssig, was seltsam ist, denn YUI, Mootools usw. bieten genau das auch an. Also kann es nicht überflüssig sein und es scheint also notwendig zu sein JS damit auf die Sprünge zu helfen.

Und ich stimme da Mathias auch völlig zu, für diese Hilfe benötigt es vor allem einen anderen Ansatz, als in anderen Sprachen wie z.b. Java, der sich mit wenigen Funktionen umsetzen läßt und nicht alle OOP Paradigmen 100% erfüllt. Dann kann man auch in JS OO programmieren.

Struppi.

0 112

public protected and private in javascript

Florian Bücklers
  • javascript
  1. 0
    Struppi
    1. 0
      jobo
      1. 0
        jobo
      2. 0
        Florian Bücklers
        1. 1

          Standortbestimmung: Programmierparadigmen, OOP, OOP in JS ...

          peterS.
          1. 0
            Florian Bückkers
            1. 0
              peterS.
              1. 0
                jobo
              2. 0
                Florian Bücklers
              3. 2
                peterS.
                1. 0
                  peterS.
            2. 3
              molily
      3. 0
        molily
        1. 0
          jobo
  2. 1
    Struppi
    1. 0
      Florian Bücklers
  3. 2
    molily
    1. 0

      javascripts oop und ein beispiel

      jobo
      1. 0
        Struppi
    2. 1
      Florian Bücklers
      1. 1
        molily
        1. 0
          Struppi
          1. 1
            molily
            1. 0
              Struppi
              1. 0
                jobo
                1. 0
                  Struppi
              2. 1
                molily
                1. 0
                  Struppi
                  1. 0
                    molily
                    1. 0
                      Struppi
                      1. 0
                        jobo
                        1. 0
                          Struppi
                          1. 0
                            jobo
                          2. 1
                            molily
                            1. 0
                              jobo
                              1. 0
                                jobo
                  2. 1
                    molily
                2. 0
                  Florian Bücklers
                  1. 0
                    jobo
                    1. 0
                      Struppi
                      1. 0
                        jobo
                        1. 0
                          Struppi
                          1. 0
                            jobo
                            1. 0

                              was ist OOP und gibt es eine Implementation in Ecmascript

                              jobo
                            2. 0

                              OOP in Javascript - Object prototypisch erweitern

                              jobo
                            3. 0
                              Struppi
                              1. 0
                                jobo
                                1. 0

                                  protected und Javascript - übergeordnetes (Sicherheits-)Konzept

                                  jobo
                                2. 0
                                  Struppi
                                  1. 0
                                    jobo
                                    1. 0

                                      Diskussionszusammenfassung auf Wikipedia

                                      jobo
                                      1. 0
                                        Struppi
                                        1. 2
                                          molily
                                          1. 0

                                            Diskussionszusammenfassung von molily und node.js

                                            jobo
                                            1. 0
                                              Struppi
                                              1. 0

                                                der Punkt um den es geht ... Privatheitskonzept von Javascript

                                                jobo
                                                1. 0
                                                  Struppi
                                                  1. 0
                                                    jobo
                                                  2. 0

                                                    serverseitiges Javascript - node.js

                                                    jobo
                                                    1. 0
                                                      peterS.
                                                  3. 0

                                                    mitlesender

                                                    peterS.
                                                    • menschelei
                                                    1. 0
                                                      JürgenB
                                            2. 0
                                              molily
                                              1. 0

                                                Diskussionszusammenfassung von molily, node.js und loops

                                                jobo
                      2. 2
                        molily
                        1. 0
                          Struppi
                          1. 0

                            Privatheitskonzept in Javascript

                            jobo
                            1. 0
                              Struppi
                          2. 0
                            molily
                            1. 1
                              molily
                          3. 0
                            jobo
                            1. 0

                              Codereuse und DesignPatterns OOP ohne Vererbung und POO

                              jobo
                              1. 0
                                JürgenB
                                1. 0
                                  jobo
                          4. 0
                            Don P
                            1. 0

                              privat und (pseudo-)"Klassen" - Prototype und Scopevariablen

                              jobo
                              1. 0
                                Don P
                                1. 0
                                  Struppi
                                  1. 0
                                    Don P
                                    1. 0
                                      Struppi
                                      1. 0
                                        Don P
                                        1. 0
                                          Struppi
                                          1. 0

                                            Konstruktor-Closure vs. Prototyp

                                            molily
                                            1. 0
                                              jobo
                                          2. 0
                                            jobo
                                            1. 0
                                              jobo
                                            2. 0
                                              Struppi
                                              1. 0
                                                jobo
                                                1. 0

                                                  Crockfords "module pattern" - unabhängig von YUI(YAHOO)

                                                  jobo
                                                2. 0
                                                  peterS.
                                                  1. 0
                                                    jobo
                                                    1. 0
                                                      Struppi
                                                      1. 0
                                                        jobo
                                                        1. 0
                                                          Struppi
                                                          1. 0

                                                            Performance und "this" im Kontruktor

                                                            jobo
                                                            1. 0
                                                              Struppi
                                                              1. 0
                                                                jobo
                                                                1. 0
                                                                  Struppi
                                                                  1. 0
                                                                    jobo
                                                  2. 0
                                                    Don P
                                                    1. 0

                                                      private mit "revealing module patter" und "speaking code"

                                                      jobo
                                                    2. 0
                                                      Struppi
                                    2. 0
                                      jobo
                                      1. 0
                                        Struppi
                                        1. 0
                                          jobo
                            2. 0
                              Struppi
                  2. 1
                    molily
            2. 0
              jobo
              1. 2
                molily
              2. 1
                molily
                1. 0
                  jobo