donp: Grundkonzepte

Beitrag lesen

Hallo,

Jetzt muss ich doch auch noch meinen Senf dazugeben:

Bis jetzt wurden schon viele interessante Eigenschaften von JavaScript aufgezählt, und insgesamt ergibt sich immer der Eindruck, als sei JavaScript ohne irgendwelche Web-Browser gar nicht existenzfähig. Im deutschen Wikipedia wurde sie einmal ausdrücklich als "web-basierte" Programmiersprache bezeichnet.

Das ist IMHO aber so nicht (mehr) korrekt. Obwohl ursprünglich für Web-Browser entwickelt, hat Javascript inzwischen auch ausserhalb vom Web weite Verbreitung als Programmiersprache gefunden (z.B. in Adobe Photoshop, InDesign, PDF).

Das Besondere an JavaScript als Programmiersprache kann also nicht sein, dass es z.B. so toll mit Style-Eigenschaften, HTML-Elementen, oder Events umgehen kann, sondern solche Dinge sind eigentlich nur der API des Browsers bzw. allgemeiner der Applikation zu verdanken, in die JavaScript als Programmiersprache eingebunden wird.

Tatsächlich verdankt JavaScript sogar seine größte Schwäche nur der Tatsache, dass es ursprünglich für Web-Browser entwickelt wurde (nämlich die defautmäßig globalen Variablen).

Man hätte auch Visual Basic oder was immer mit Browsern verknüpfen können mit einer entsprechenden API, die Zugriff auf's DOM usw. erlaubt (ist ja meines Wissens auch gemacht worden).

Was erzählt ihr jemanden, dem ihr JavaScript in seinen paar Grundkonzepten erklären müsst, welche zählt ihr da auf.

Da würde ich bei der Objektorientierung anfangen, und zwar speziell bei der prototypischen Vererbung, die zumindest mir bei keiner anderen Programmiersprache so begegnet ist. Ich halte dieses Konzept für schlichweg genial. Die klassische Vererbung mit Konstruktoren, Destruktoren usw. ist dagegen richtig umständlich.

Auch sonst gehe ich mit @peterS konform:

»lamda-kalkuel« und in diesem zusammenhang dann »rekursion« und »currying« - weniger theoretisch dann auf alle faelle »closure«s

sind wichtige Besonderheiten, die JavaScript von anderen Sprachen unterscheidet.

Nicht unbedingt "normal" für eine Programmiersprache ist der lockere Umgang mit Datentypen.

Gruß, Don P