peterS.: Grundkonzepte

Beitrag lesen

gruss Don P,

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.

wenn man es genau naehme, waere es aber tatsaechlich so:

»Mocha« spaeter umbenannt in »LiveScript« und dann *gebrandet* »JavaScript«
waren von anfang an gefangene des gesamtsystems "web browser".
um den originalen sprachkern einigermassen vor microsoftschen kidnapping-/
erweiterungs-/verstuemmelungs- versuchen zu schuetzen, ueberantwortete man
ihn schlussendlich der kloesterlichen obhut der ECMA, wo er nun ein von der
welt abgeschiedenes leben in einer standardzelle mit der nummer 262 fuehren
muss.

und deswegen gelten eigentlich folgende formeln:

"ECMA-262" + browser/client + (w3c-)DOM = »JavaScript«
"ECMA-262" + Flash IDE (Flash MX 2004 / Flash 8) = »ActionScript 2«

Im deutschen Wikipedia wurde sie einmal ausdrücklich als "web-basierte"
Programmiersprache bezeichnet.

glaub mir, dort spielte sich ein endlos zaehes ringen um einordnung und
definition dieser sprache ab, und besonders hartnaeckig waren diejenigen
mit dem frisch erworbenen missionarischen halbwissen.
es ist ein grosses verdienst von molily, dass er mit ebensolcher ausdauer
einen vernuenftigen diskussionsstil und einen pragmatisches umgang mit dem
thema aufrechterhalten konnte - mit der aktuellen version kann man doch
ganz zufrieden sein.

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).

... und das sind noch nichtmal alle. der umgangssprachlich etablierte
begriff »JavaScript« wird in zukunft wohl fuer fast alle anwendungen
mit einer kombination aus ECMAScript-sprachkern und API-xyz entlehnt
werden. spannend zu sehen, ob es (konkurierende) versuche geben wird,
die deutungshoheit ueber diesen begriff zu erlangen.

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.

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.

z.b.: »Self« (prototypenbasierte objektorientierung + dynamisch typisiert)

Ich halte dieses Konzept für schlichweg genial.

ich finde es sogar sexy.

Auch sonst gehe ich mit @peterS konform:

»lamda-kalkuel« und in diesem zusammenhang dann »rekursion« und...

---------^ typo! da hab ich mich vertippt: »lambda-kalkuel«

...»currying« - weniger theoretisch dann auf alle faelle »closure«s.
sind wichtige Besonderheiten, die JavaScript von anderen Sprachen unterscheidet.

... und die es wiederum mit »Lisp« gemeinsam hat.

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

warum, »Smalltalk«, das vorbild aller moderner objektorientierung, _ist_
dynamisch typisiert. dieser "lockere Umgang mit Datentypen", wie Du es
nennst, hat mindestens genausoviel sexappeal wie die klassenlose oo.

vorweggenommene antwort auf ein vermutetes vorurteil:

erfolgreiches *durchkompilieren* von code, aufgrund stimmiger typen
  (compiler und (strenge) typisierung scheinen einander zu bedingen),
  garantiert fuer genau gar nichts. das A und O ist professionelles testing.

so long - peterS. - pseliger@gmx.net

--
»Because objects in JavaScript are so flexible, you will want to think differently about class hierarchies.
Deep hierarchies are inappropriate. Shallow hierarchies are efficient and expressive.« - Douglas Crockford
ie:( fl:) br:> va:( ls:& fo:) rl:| n3;} n4:} ss:} de:µ js:} mo:? zu:]