JavaScriptDays: vom 10 Tage Hack zur ersten Universalsprache?

1,853
-1

Published on

Es ist nicht dokumentiert, ob Programmiersprachen-Gurus wie Stroustrup oder Wirth tatsächlich zu manischen Anfällen neigen, wenn Sie die Sprachkonstrukte von JavaScript sehen. Das laute Lachen der Security-Gurus, das erst Stunden später in einem Kichern versickert, ist währenddessen häufiger zu hören. Trotzdem wird diese Sprache inzwischen in alles eingebaut was elektrisch ist, vom eingebetteten Arduino über den Fernseher bis zur hochskalierbaren Enterprise-Anwendung. Warum ist das passiert, und was haben wir noch zu erwarten?

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,853
On Slideshare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
6
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

JavaScriptDays: vom 10 Tage Hack zur ersten Universalsprache?

  1. 1. 10-Tage-Hack oder U!"v#r$%&$pr%(#?Mittwoch, 13. März 13Hallo Zusammen!
  2. 2. Er$)#r T%&* !%( +#r M"))%,$p%-$# ...Mittwoch, 13. März 13Tja, da habe ich den ersten Talk nach der Mittagspause, das ist immer so mittelsuper.
  3. 3. Mittwoch, 13. März 13Die Leute kommen erholt, entspannt wieder in den Talk .Mal ehrlich, wer wäre jetzt lieber im Biergarten?Ja, genau. Wollen wir los? Wir haben noch 30 Minuten. Wer ist alles aus Bayern? Ok, das heistZeit für 2 Mass. Wer ist aus Norddeutschland? Es gibt auch Halblitergläser, und ja, dasnennen die hier tatsächlich „kleines Bier“.
  4. 4. K#.!/)#: w#!",#r (%r)#r C/!)#!)Mittwoch, 13. März 13Ok, das würde aber der Verlag nicht mögen. Aber das macht nichts, deshalb ist es ja einekeynote. Es erwartet also keiner, dass toller neuer Content kommt.
  5. 5. K#.!/)#: 0#(r $(&#()# M-$"*Mittwoch, 13. März 13Man könnte zum Beispiel einfach mehr schlechte Musik in seinen Vortrag einbauen. Check.
  6. 6. JavaScript D#r z-rü*,#b&"#b#!# *&#"!# Br-+#r v/! J%v%Mittwoch, 13. März 13Eigentlich sollte der Talk anders heissen ...
  7. 7. #aufschreiMittwoch, 13. März 13nach der Aufschrei-Debatte, und insbesondere nach dem PHPness-Skandal des Verlages hierhabe ich davon abstand genommen, und mich um political correctness bemüht. Also, zweiterversuch ...
  8. 8. JavaScript D"# z-rü*,#b&"#b#!# *&#"!# S(w#$)#r v/! J%v%Mittwoch, 13. März 13Daraufhin korrekt die feminine Form gewählt ...
  9. 9. %-( !"() b#$$#r...Mittwoch, 13. März 13... aber so richtig viel besser war das nicht.
  10. 10. JavaScript W%r-0 +#r +//f# *&#"!# Br-+#r v/! J%v% %0 E!+# +/( $"#,)#Mittwoch, 13. März 13Also, eigentlich erzähle ich hier auch, warum der kleine Bruder von Java am Ende doch siegte.Damit die Dramaturgie stimmt werden ich ihn also vorher massiv schlecht machen.
  11. 11. W%$ ,"b) +#0 +#!! üb#r(%-p) +%$ R#() +%$ z- b#-r)#"&#!?Mittwoch, 13. März 13Da stellt sich natürlich die frage, ob ich das überhaupt darf? Ist der mann da vorne überhauptqualifiziert? Was bildet der sich ein?
  12. 12. Johann-Peter Hartmann Grü!+#r & CTOMittwoch, 13. März 13Ich bin CTO bei Mayflower, aber eigentlich der klassische Hacker-Become-Manager-der-aber-eigentlich-lieber-wieder-Hacker-wäre. Kennt ihr bestimmt welche von. Ich bin da auchderjenige, der vor ein paar Jahren das Javascript mit in den Claim wollte.
  13. 13. Mittwoch, 13. März 13Wirklich Ahnung habe ich nur von PHP. Da war ich schon vor 13 Jahren als Speaker unterwegs.Wer hat ebenfalls einen Migrationshintergrund in dieser Beziehung?
  14. 14. W%$ ,"b) +#0 +#!! üb#r(%-p) +%$ R#() +%$ z- b#-r)#"&#!?Mittwoch, 13. März 13Faktisch kann man die Frage nach dem Recht also klar beantworten. Nein, dem gibt eigentlichkeiner das Recht.
  15. 15. W%$ ,"b) +#0 +#!! üb#r(%-p) +%$ R#() +%$ z- b#-r)#"&#!?Mittwoch, 13. März 13 eher wenig.Faktisch kann man die Frage nach dem Recht also klar beantworten. Nein, dem gibt eigentlichkeiner das Recht.
  16. 16. JavaScript2003 Rich Internet Applications. IE only.2005Mittwoch, 13. März 13 Web 2.0 Security BrowserSecuritySo ein bischen JavaScript habe ich allerdings gemacht - zB 2002 einen javaScript WYSIWYG-Editor (ie only) geschrieben, und 2004 auch Rich Internet Applications, damals für dieHypoVereinsbank. Richtig auf den Radar kam JavaScript dann im Rahmen von Web 2.0 Securityund SektionEins. Da kannte ich mich wieder gut aus, werdet Ihr später merken. Ich bin alsoalt, aber nicht nur ich, sondern auch JavaScript. Wie am ersten Beispiel gut zu erkennen.
  17. 17. Mittwoch, 13. März 13JavaScript hat einen langen Weg hinter sich, und auf der Strecke hat sich viel getan.Ich weiss nicht wie es Euch geht, aber ich kann mich nicht an das Jahr erinnern, wenn ich nurdie Jahreszahl höre. Aber spiel mir ein Lied aus dem Jahr vor, und ich weiß wieder, was zudem Zeitpunkt los war. Also gibt es die Geschichte von JavaScript eingeordnet in schlechteMusik.
  18. 18. 1995 Hey, Brendan! Willst Du für uns Scheme für Browser entwickeln?Mittwoch, 13. März 13Das war 1995. Da spielte Techno, in diesem Fall Kirmestechno, noch eine echte Rolle.Wer kennt den jungen Herrn unten rechts?
  19. 19. 1995 W/-(%, //&, $(#0#! (define (sum-with x) (lambda (y) (+ y x)))Mittwoch, 13. März 13Brendan Euch war hingegen eine coole Sau, und hat deshalb funktional entwickelt - inScheme, das ist ein Lisp-Dialekt.
  20. 20. 1995Mittwoch, 13. März 13Und genau das war auch der Grund, warum sich beide handelseinig wurden ...
  21. 21. 1995 Uhm, Brendan... Scheme ... also ... wir haben wen neues kennengelernt ...Mittwoch, 13. März 13In der Zwischenzeit hatte allerdings Netscape jemand anders kennengelernt ..
  22. 22. 1995 .. wäre Java-Syntax möglich?Mittwoch, 13. März 13Und er musste den Syntax einmal komplett durch die Mangel nehmen.
  23. 23. 1995 Hr0pf. com.sun.awt.getFactoryFactoryFactory()Mittwoch, 13. März 13So richtig super fand er das nicht, und er hat viele der grundlegenden Konzepte - etwa dieeinfache Objektorientierung, die von Self geerbt wurde - beibehalten. Nur eben wenigerklammern. Dafür bleibt Prototypenbasierte Vererbung.
  24. 24. 199510 DAYSMittwoch, 13. März 13Apropos Prototypenbasierte Vererbung. Er bekam genau 10 Tage Zeit, die Welt - in diesemFall unsere - als Prototyp zu bauen.
  25. 25. 1995 • Y#%r 2000 B-,$ • $)r"!, = pr"0")"v# • S)r"!, = /b1#)Mittwoch, 13. März 13Aber die neue Bekanntschaft von Netscape - auf den Namen Sun hörend - setzte sich durch,und sowohl Javaesquer Syntax als auch Name setzte sich durch. Und ein paar lustige Java-Eigenheiten, wie parallele Primitive und Objekt-Typen für die gleiche Aufgabe wurdenübernommen, mit impliziter Konvertierung immerhin - wie auch der Jahr-2000-Bug. Siehedas Logo oben, man wollte es tatsächlich als Java-Ableger vermarkten.
  26. 26. 1995 [TM]Mittwoch, 13. März 13Ein weiterer Effekt: Bis heute gehört die Trademark JavaScript Oracle.
  27. 27. 1995 Pr/)/)2 === Pr/+-*)Mittwoch, 13. März 13Aber wir hätten es ihm sagen können - wenn die Demo funktioniert ist sie das Produkt.Da stand er jetzt. Eigentlich wollte er Scheme machen, und eigentlich war es nur ein Prototyp
  28. 28. 1995Mittwoch, 13. März 13Durch das Timing konnte Sun unmittelbar in den zweiten Release von Netscape springen. Dieerste Beta vom Netscape Navigator hatte die Sprache noch als Livescript drin. Erst mit Beta 4hiess es JavaScript, und dort war auch Java mit dabei. Ich habe das damals miterlebt, war abereigentlich wegen einer ganz anderen Neuerung nervös - es wurden auch Frames eingeführt,das klang damals tatsächlich wie ein brillianter Plan.
  29. 29. J%v% J%v%Sr"p) K/0p/!#!)#! Sr"p)# A!w#!+-!,#! H%*$ Pr/f#$$"/!#&&# H/bb.%!w#!+#r- S/3w%r# S/3w%r#Mittwoch, 13. März 13Sun und Netscape hatten aber durchaus einen Plan, als sie beide Sprachen gleichzeitigeinführten. Java sollte das Profi-Tool werden, mit dem Schwerpunkt auf Applikationen undKomponenten, und Javascript das kleine Hackertool für den Feierabendentwickler.
  30. 30. E"!f%( F&4"b#& Mä()", S(!#&&Mittwoch, 13. März 13Und genau daher kamen auch die Anforderungen, die Marc Andresen und co an Brendanstellten. Mach es nicht zu kompliziert. Weil klassische - also klassenbasierte - OO sokompliziert ist wurde zB auf das Modell von Self gegangen.
  31. 31. 1996Mittwoch, 13. März 131996 brachte einen neuen Spieler mit an bord, an dem das Internet vorher - zugunsten vonMSN, AOL und Compuserv - vorbeigezogen war. Der hatte schon vorher einen Browser, aberder konnte noch kein JavaScript. Der neue auch nicht, weil der Name wie gesagt Sun gehörte- er konnte deshalb JScript.
  32. 32. K/0p%)"b#& "! +#! */0"$(#! D"!,#!, "!*&. B-,$... ... %b#r !"() +"# ,&#"(#! F#%)-r#$Mittwoch, 13. März 13Da wurde der Grundstein für die IE6-Hölle gelegt, das konzept war schon damals klar -eigentlich schon kompatibel, aber nicht soweit, dass es nützlich wäre.
  33. 33. 1996 ANSI JavaScript ISO JScript IETF EcmaScript ECMAMittwoch, 13. März 13In der zwischenzeit hatte man spitzbekommen, dass die Sache mit dem Web eine grössere ist- und deshalb mit der w3c spontan eine eigene Standardisierungsorganisation gegründet. zudiesem Zeitpunkt wollte die sich aber nur drum kümmern, dass der Standard etabliert wird,nicht vom wem.
  34. 34. BrowserWarMittwoch, 13. März 13Nachdem man sich so schön auf einen Standard geeinigt hatte, konnte man sich ja wiederstreiten - der Browserwar begann. IE jagte mit allen möglichen Tricks, die noch Jahrzehntespäter Gerichte beschäftigen, Netscape den Markt ab. Und am Ende war IE der neue Standard.
  35. 35. 1999Mittwoch, 13. März 13Und Microsoft war wieder in der gewohnten Umgebung. Wenn man der Standard ist, kann man auch welche setzen.Und genau das passierte. Outlook-Developer wollen im IE 5.0 einen Background-Request im Hintergrund machenkönnen, weil sie es für Outlook Web Access brauchten.
  36. 36. 1999XMLHttpRequestMittwoch, 13. März 13Also erschufen sie ein Wunderwerk aus der Höllentechnologie ActiveX und einem Interfaceder MSXML2, mit dem man im Hintergrund XML-Requests machen konnte. Und weil es einetypische Windows-API war, hatte die open-Methode auch gleich 4 unterschiedlicheSignaturen.
  37. 37. 2000XMLHttpRequestMittwoch, 13. März 13Aber trotzdem - es war eine gute idee, eigentlich. Deshalb legte Mozilla im Jahr drauf nachund implementierte auch eine eigene Variante - analog, aber als JavaScript-Objekt, nicht alsActiveX, denn das gab es in diesem Browser ja glücklicherweise nicht.
  38. 38. Mittwoch, 13. März 13Leider war es nicht ganz perfekt, deshalb musste man noch ein bischen repariere ...
  39. 39. 2002XMLHttpRequestMittwoch, 13. März 13Und schon 2 Jahre später funktionierte es dann wirklich.
  40. 40. 2004XMLHttpRequestMittwoch, 13. März 13Und noch mal 2 Jahre später kam denn auch Safari dazu.
  41. 41. 2004Mittwoch, 13. März 13 Dass passte ganz gut, denn in diesem Jahr redete Tim O‘Reilly über das Web 2.0 - eigentlich als Beschreibungfür dynamische Internetapplikationen. Mit begriffen wie RIA und SPA spielte aber javascript schnell eine grosserolle
  42. 42. 2005Mittwoch, 13. März 13Noch mehr Rückenwind gab es ein Jahr später: Jesse James Garret denkt sich AJAX als Bezeichnung aus- für etwas, was schon 6 Jahre vorher möglich war. Deshalb haben wir Developer auch alle gesagt „Dasmachen wir doch ohnehin schon“Wer hat das auch gesagt?
  43. 43. 2006 A,# /f L"br%r"#$Mittwoch, 13. März 13Trotzdem war das wegen der unterschiedlichen xmlhttprequest-Interfaces noch eine PITA.also wurden libraries dafür erfunden. Framework-basierte Entwicklung (extjs, jquery, ... ) wirdmainstream
  44. 44. 2009Mittwoch, 13. März 132009 wird node.s veröffentlich, und auf einmal ist Javascript nicht nur sinnvoll serverfähig -das war schon zu netscapes livescript-zeiten so - sondern beantwortet mit events auch einakutes problem: wie werde ich responsiv?
  45. 45. 2011 A,# /f Fr%0#w/r*$Mittwoch, 13. März 132011 begann dann das Age of Frameworks. Natürlich gab es die auch schon vorher, aberjetzt sollte die ganze Applikation aus Javascript kommen, und nicht nur ein Teil.
  46. 46. Mittwoch, 13. März 13Und wo sind wir heute? Da fragen wir doch mal die Jungs von Redmonk, die Statistik auf Basisvon echten Diskussionen und echte Commits - konkret Stackoverflow und Github machen.Die Statistik ist vom Januar. In welcher Ecke vermutet Ihr Javacript?
  47. 47. Mittwoch, 13. März 13Genau, offensichtliche Frae - ganz rechts oben, weniger Fragen als Java auf Stackoverflow,dafür mehr Lösungen auf Github. Das ist ja mal ein gutes Verhältnis
  48. 48. W/r&+ D/0"!%)"/!!Mittwoch, 13. März 13Also ist Javascript ganz oben angekommen, de World Domination ist endlich erreicht!
  49. 49. E!)#rpr"$# J%v%Sr"p)Mittwoch, 13. März 13JavaScript ist endlich im Enterprise angekommen! Dann kann ja nichts mehr schiefgehen.Also fast nichts. Fragen wir doch mal die Jungs aus der Enterprise direkt.
  50. 50. Mittwoch, 13. März 13Wer kennt das schon in JavaScript?
  51. 51. Mittwoch, 13. März 13Warum ist das so? weil alle Zahlen float sind, und float tickt eben so, wie auch in jederanderen sprache. Es gibt eben kein Integer. Was es aber gibt sind Bitoperatoren. Das heisstintern gibt es wieder, für einen kurzen Moment, integers - es wird nur jeweils gewechselt.Und auch schleifenvariablen, Iteratoren etc sind immer Floats als werte.
  52. 52. Mittwoch, 13. März 13Also Leerstring ist nicht 0 als String, aber 0 als Zahl identisch mit beidem?
  53. 53. Mittwoch, 13. März 13Inkonsistentes Typecasting
  54. 54. Mittwoch, 13. März 13Und die Reise geht weiter ... null ist ein objekt, aber gleichzeitig äquivalent undefined.Mit NaN gibt es sogar eine Entität, die niemals identisch zu sich selbst ist ...
  55. 55. E!)#rpr"$# J%v%Sr"p)??Mittwoch, 13. März 13Man merkt der Sprache also an, dass sie in 10 Tagen geschaffen wurde. Es gibt noch vieleandere beispiele - zum Beispiel die Verwendung von with oder eben dem == vergleich.Wurde das eigentlich hier auf der Konferenz schon erzählt? Wenn noch nicht: das kommtbestimmt noch :-)
  56. 56. Mittwoch, 13. März 13 DOMAusserdem hat JavaScript Browser die schlechteste API der Welt.Ebenfalls als spontaner Hack im Rahmen von Netscape 2 entstanden,dann zu intermediate DOM aufgebohrt, dann von Microsoft erweitert,dann vom w3c standardisiert.
  57. 57. J#+#r Br/w$#r $-pp/r)#+ -!)#r$("#+&"( v"#& A-( ,#r!# 0%& b-,,. ... ... /+#r %bwär)$*/0p%)"b#& b-,,.. S)%!+%r+"$"#r-!, *%0 #r$) $pä) S/ -0f%!,r#"(, +%$$ S#-r"). *%p-)) ,#,%!,#! "$).Mittwoch, 13. März 13Das hat zur Folge, dass DOM nicht nur mit jede Browsertypen, sondern auch nach Versionunterschiedlich supported wird. Gerne mit Fehlern, die dann aber für Kompabilitätdringelassen werden. Die Standardisierung auf einen gemeinsamen Level gab es erst mit derdritten version. Die APIs sind inzwische so komplex, dass jede Änderung an DOM praktischneue Security-Probleme impliziert.
  58. 58. S#-r").?!Mittwoch, 13. März 13Security: Fuzzer (Das sind scanner, die nach crashes suchen) finden mit jedem Algorithmusneue Bugs in allen Browsern. Security und JavaScript ist eh ein eigenes Thema.
  59. 59. Sp#"(#r == C/+# == D%)#! von Neumann-ArchitekturMittwoch, 13. März 131945 hat John von Neumann die von Neumann-Architektur entwickelt. Das heisst imwesentlichen, dass es eine CPU gibt, einen Datenbuss und einen Speicher - und in diesemSpeicher liegen Daten und der ausführbare code.
  60. 60. Ursache für ... •B-ff#r Ov#r6/w$ •I!)#,#r Ov#r6/w$80%Mittwoch, 13. März 13 •F/r0%) S)r"!, B-,$ •U$# %3#r Fr##Dieses Konstrukt sorgt bei Programmiersprachen, bei denen man selbst den Speichermanagen muss für einen grossen Teil der Bugs - 80% der Security-Bugs von 1990 bis 2000gehen auf diese Konstruktion - Bugs wie oben, bei denen Daten zu Code werden, weil es fürdie CPU das gleiche ist.
  61. 61. JavaScriptGrößte Attack Surface ever: •2.5 Milliarden Clients •1 Milliarde Smartphones •Private Daten im Browser •Bankdaten im Browser •MilliardenunternehmenMittwoch, 13. März 13Mit JavaScript haben die die Programmiersprache mit der größten Angriffsfläche der Welt. Esgibt Milliarden von Clients, und inzwischen gehen alle wichtigen persönlichen Daten über ihn.Und nicht nur die persönlichen - auch viele Firmendaten sind inzwischen zum Teilausschliesslich im Web zu finden. Wer nutzt Google Calendar?
  62. 62. D/*-0#!) == C/+# == D%)#!Mittwoch, 13. März 13Jetzt hätte man erwartet, dass man aus dem C-Problem gelernt hat, und Daten und Codenicht vermischt. Aber nein - es wird noch schlimmer. Darstellung ist Code und Datenzugleich. Es wurde einfach in die Dokumentenbeschreibungssprache hineingefriemelt.
  63. 63. Ursache für ... •S#$$"/! R"+"!, •XSS •CSRF •J%v%Sr"p) H7%*"!,80%Mittwoch, 13. März 13 •C&"*1%*"!,Und da sind wir bei der Ursache für die meisten Bugs der letzten 10 Jahre. Nur wegen diesesUmstandes gibt es nämlich Attacken wie Session Riding, XSS, CSRF, JavaScript Hijacking,Clickjacking etc.
  64. 64. JavaScript „H#., "( 4#-)# +%$ üb#r%&& für D"(!“ •"! #"!#0 #",#!#! T%, <$r"p)>! •0") 4)#r!#0 S/-r#-8&#$! •"! Ur&$ 0") 1%v%$r"p)! •I! S).&#$(##)$ 0") 4pr#$$"/!()! •"! A))r"b-)#! %&$ Ev#!)!Mittwoch, 13. März 13Die Vermischung ist ja schon schlimm genug, aber JavaScript geht noch einen Schritt weiter. •Es will nämlich code überall im Dokument ausführen können.
  65. 65. JavaScript „E$ 0%() %-( !"()$ w#!! D- D"( v#r)"pp$), "( 4#-)# +%$ )r/9+#0!“ <IMG SRC="jav ascript:alert(XSS);"> <BODY onload!#$%&()*~+-_.,:;?@[/|]^`=alert("XSS")> <<SCRIPT>alert("XSS");//<</SCRIPT> <STYLE>@importjavascript:alert("XSS");</STYLE>Mittwoch, 13. März 13Und es ist noch entgegenkommend - wenn man es mal anders schreibt, hey, kein Problem,es wird trotzdem ausgeführt. Beispiele ...Warum ist das so? Bei Dokumenten will man das. Auch wenn das Dokument nicht sauber odersyntaktisch korrekt ist, trotzdem will man etwas sinnvolles darstellen. Nur passiert das danneben auch bei JavaScript.
  66. 66. JavaScript „Fü(& D"( #"!f%( w"# z-(%-$#, r"()# #$ D"r #"! w"# #$ D"r p%$$).“ [Mittwoch, 13. März 13Und damit man mit dem Code alles machen kann, gib JavaScript einem gleich die entsicherteWaffe in die Hand - man darf alles überschreiben, auch Systemfunktionen - im Beispiel alert- bishin zu [ - aka Array.prototype.constructor
  67. 67. JavaScript „W#!! D"r w%$ f#(&) - "( (%b +% !/( w%$“ •A)"v#X •F&%$( •PDF •J%v% •+ JS "! +#! P&-,"!$ $#&:)Mittwoch, 13. März 13Damit aber nicht genug - wenn einem dies nicht reicht, dann hat man gleich auch Zugriff auf •den Rest der Browserwelt. ActiveX, Flash, PDF, Java können über JavaScript gesteuert werden,und die ersten drei implementieren sogar noch ein eigenes Javascript.
  68. 68. JavaScript „A(, +"# %&)#! B-,$ $)#(#! +% %-( !/( r-0, w#!! D- +"# br%-($)“ •P&-,"!-b%$"#r)# Cr%$(#$ •D/0-b%$"#r)# Cr%$(#$ •U$# %3#r fr## ;p&/")$ •H#%p Spr%."!, •H#%p F#!, S(-"Mittwoch, 13. März 13Und natürlich ist der Browser in C geschrieben, das heisst, die alten Turing-Bugs sind auchnoch alle da. Und hier sind wir an genau der Stelle, warum die NSA und Konsorten heute6stellige Zahlen für Browserbugs zahlen - an dieser Stelle habe ich das System unterkontrolle.
  69. 69. JavaScript„W#!! D- H"&f# br%-($) - D- <!+#$) 0"( üb#r%&&“ •S*2# •A+"-0 •L/*%&# HTML-8&#$ •B#"$p"#&: D#$*)/p-8&#*&%- •B#"$p"#&: S*2#-W-r0Mittwoch, 13. März 13Mit dem Browser hört die Reise aber noch nicht auf. Inzwischen findet sich JavaScript überall,zum Beispiel auch in Chats wie Skype oder Adium. Und das ist JavaScript-Code, der imLokalen Scope läuft, und wie lokale Files ganz andere Rechte hat. Man kann damit direkt Filesaus dem Desktop auslesen, auch die letzten Skype-Würmer und Bugs basierten auf HTML/JavaScript.
  70. 70. JavaScript „U!+ "( f%!,# ,#r%+# #r$) %! ...“ •8&#-API •G#/&/%)"/! •H.br"+-M/b"&# •C%0#r% •C/!)%)$ •...Mittwoch, 13. März 13Und was macht man mit so einer fahrlässigen Infrastruktur? Man entsichert die Waffe, undgibt ihr über verschiedene APIs zugriff auf Dateien, die Geo-Location - und inzwischen überHybrid-Mobile Applications aus Phonegap etc auch Zugriff auf die Kamera und die Kontakte.
  71. 71. W"&& w"r*&"( 1#0%!+ #"!# Spr%(#, 0") +#r 0%! $/ &#"() -!+ $/ $(!#&& $/ v"#& f%&$( 0%(#! *%!!?Mittwoch, 13. März 13Und da stellt sich die Frage, warum sollte jemand so eine sprache wollen. Eine Sprache, mitder man so schnell so dermassen viel kaputt machen kann.
  72. 72. J%, ,#!%- +%$ "$) +#r P-!*).Mittwoch, 13. März 13Und genau darum geht es bei JavaScript. Die Nachteile bei Security sind die Vorteile vonheute. Die Reichweite, die Flexibilität, die Mächtigkeit - deshalb ist es so erfolgreich.
  73. 73. =0# )/ M%r*#) 1994: 5 Jahre 2004: 3 MonateMittwoch, 13. März 13Es hat sich in der Welt draussen nämlich etwas geändert - sie ist schneller geworden. DieMittlere Time to Market ist um Faktor 12 schneller geworden, durch Ursachen wie :Globalisierung, Computer und Automatisierung. (Zahlen von Agile42, mir fehlen welche fürSoftware, aber die sollten aktuell noch schärfer aussehen)
  74. 74. Sr-0 C/!)"!-/-$ D#p&/.0#!) L#%! S)%r)-p 10 D#p&/.$ % D%. 30 F#%)-r#$/W/(#Mittwoch, 13. März 13Und diese Beschleunigung ist auch genau der grund, warum es in unserer Welt nicht mehrnur agile Methoden mit zweiwöchentlichen Releases gibt, sondern auch permanenteWeiterentwicklung, Initiale Produkte aus Learn Startup die nach einem Wochenendegelaunched werden, Firmen die 30 Deploys an einem Tag oder 30 Features in der Woche inProduktion bringen.
  75. 75. JavaScript wurde als Einsteigersprache für schnelle und einfache Lösungen geschaffenMittwoch, 13. März 13Und genau für solche Anforderungen wurde JavaScript geschaffen. Zu dem Zeitpunkt zwar umEinsteiger zu adressieren, aber genau heute zahlen sich diese Entscheidungen aus.
  76. 76. E"!f%( F&4"b#& Mä()", S(!#&&Mittwoch, 13. März 13Genau eine Sprache mit diesen Eigenschaften braucht es.
  77. 77. F#%)-r#$ •sehr mächtige Sprache (JSON) •einfache Objektorientierung •Script-Sprache! •compiliert sehr schnellMittwoch, 13. März 13Beispiele: Einfache Objektorientierung, sehr mächtige Sprache mit mächtigen Konstrukten -siehe JSON! - direkt ausführbare Scriptsprache mit extrem schnellen Compile
  78. 78. D#p&/.0#!) •Browser-Umgebung •Distribution über Web und Appstore •minimale Release-KostenMittwoch, 13. März 13Aber nicht nur die Sprache selbst ist preiswert beim Fortschritt. Auch das Environment machtalles preiswert. Die Browser-Technologie ist überall vorhanden, die Distributionswege überWeb oder Appstores sind schnell, einfach und preiswert.
  79. 79. R#"(w#")# S0%r)p(/!#$ Br/w$#r$ T%b&#)$ TV$ OS E0b#++#+ D#v"#$W#b%pp&"*%)"/!#!Mittwoch, 13. März 13Wenn ich auf JavaScript setze limitiere ich mich nicht. Kein CEO der Welt braucht mehr eine strategischeEntscheidung zum Einsatz von HTML und Javascript treffen, weil es schon überall läuft.Windows 8 setzt strategisch auf html5/js, HBBTV: faktisch HTML5-Apps, die in einem Opera ablaufen - auchSetTop-Boxen, Browser-only-OSs wie Firefox OS oder ChromeOS, Arduino itself (espresso)
  80. 80. F-! F%): J%v%Sr"p) "$) +%, w/ J%v% ("! w/&&)# 1991 als Sprache für Consumer Electronics entwickelt ... TVs Mobiltelefone Videorekorder WaschmaschinenMittwoch, 13. März 13JavaScript ist heute da, wo Java einmal hinwollte.
  81. 81. JavaScript is moving outside of the browser, emerging as an important technology for cross-platform development. ... Along with the recent proliferation of other languages that compile to JavaScript, this makes us wonder if we should start to consider JavaScript as a platform and not just a language. Thoughtworks Technology Radar 10/12Mittwoch, 13. März 13Und ich beende das ganze mit einem Zitat aus dem letzten Technology Radar vonThoughtworks. JavaScript ist die kommende Cross-Platform-Entwicklungswelt, und JavaScriptwird selbst zu einer Platform. JavaScript ist mein neues Betriebssystem.
  82. 82. D%!*#!Mittwoch, 13. März 13
  83. 83. Meine Kristallkugel T#$) Dr"v#! J%v%Sr"p) w"r+ S)%!+%r+ Pr/f#$$"/!%&"$"#r-!, "! CI + D#p&/.0#!) Fr%0#w/r*$ &ö$#! 1Q-#r. %b N/+#.1$-S#-r"). w"r+ #"! >#0%Mittwoch, 13. März 13
  84. 84. C/+"!, D/1/ Hier 18:00-19:00 Martin Ruprecht (nicht ich!) Es wird also gut.Mittwoch, 13. März 13
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×