JavaScriptDays: vom 10 Tage Hack zur ersten Universalsprache?
-
Upload
johann-peter-hartmann -
Category
Documents
-
view
1.493 -
download
1
description
Transcript of JavaScriptDays: vom 10 Tage Hack zur ersten Universalsprache?
10-Tage-Hack oder
Universalsprache?
Mittwoch, 13. März 13
Hallo Zusammen!
Erster Talk nach der Mittagspause ...
Mittwoch, 13. März 13
Tja, da habe ich den ersten Talk nach der Mittagspause, das ist immer so mittelsuper.
Mittwoch, 13. März 13
Die 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 heist Zeit für 2 Mass. Wer ist aus Norddeutschland? Es gibt auch Halblitergläser, und ja, das nennen die hier tatsächlich „kleines Bier“.
Keynote: weniger harter Content
Mittwoch, 13. März 13
Ok, das würde aber der Verlag nicht mögen. Aber das macht nichts, deshalb ist es ja eine keynote. Es erwartet also keiner, dass toller neuer Content kommt.
Keynote: mehr schlechte Musik
Mittwoch, 13. März 13
Man könnte zum Beispiel einfach mehr schlechte Musik in seinen Vortrag einbauen. Check.
JavaScript
Der zurückgebliebene kleine Bruder von Java
Mittwoch, 13. März 13
Eigentlich sollte der Talk anders heissen ...
#aufschrei
Mittwoch, 13. März 13
nach der Aufschrei-Debatte, und insbesondere nach dem PHPness-Skandal des Verlages hier habe ich davon abstand genommen, und mich um political correctness bemüht. Also, zweiter versuch ...
JavaScript
Die zurückgebliebene
kleine Schwester von Java
Mittwoch, 13. März 13
Daraufhin korrekt die feminine Form gewählt ...
auch nicht besser...
Mittwoch, 13. März 13
... aber so richtig viel besser war das nicht.
JavaScriptWarum der doofe kleine Bruder von Java
am Ende doch siegte
Mittwoch, 13. März 13
Also, 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.
Was gibt dem dennüberhaupt das Recht
das zu beurteilen?
Mittwoch, 13. März 13
Da stellt sich natürlich die frage, ob ich das überhaupt darf? Ist der mann da vorne überhaupt qualifiziert? Was bildet der sich ein?
Johann-Peter Hartmann
Gründer & CTO
Mittwoch, 13. März 13
Ich 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 auch derjenige, der vor ein paar Jahren das Javascript mit in den Claim wollte.
Mittwoch, 13. März 13
Wirklich Ahnung habe ich nur von PHP. Da war ich schon vor 13 Jahren als Speaker unterwegs. Wer hat ebenfalls einen Migrationshintergrund in dieser Beziehung?
Was gibt dem dennüberhaupt das Recht
das zu beurteilen?
Mittwoch, 13. März 13
Faktisch kann man die Frage nach dem Recht also klar beantworten. Nein, dem gibt eigentlich keiner das Recht.
Was gibt dem dennüberhaupt das Recht
das zu beurteilen?
eher wenig.Mittwoch, 13. März 13
Faktisch kann man die Frage nach dem Recht also klar beantworten. Nein, dem gibt eigentlich keiner das Recht.
JavaScript20032005
Rich Internet Applications. IE only.
Web 2.0 SecurityBrowserSecurity
Mittwoch, 13. März 13
So 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 die HypoVereinsbank. Richtig auf den Radar kam JavaScript dann im Rahmen von Web 2.0 Security und SektionEins. Da kannte ich mich wieder gut aus, werdet Ihr später merken. Ich bin also alt, aber nicht nur ich, sondern auch JavaScript. Wie am ersten Beispiel gut zu erkennen.
Mittwoch, 13. März 13
JavaScript 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 nur die Jahreszahl höre. Aber spiel mir ein Lied aus dem Jahr vor, und ich weiß wieder, was zu dem Zeitpunkt los war. Also gibt es die Geschichte von JavaScript eingeordnet in schlechte Musik.
1995Hey, Brendan! Willst Du für uns
Scheme für Browser entwickeln?
Mittwoch, 13. März 13
Das war 1995. Da spielte Techno, in diesem Fall Kirmestechno, noch eine echte Rolle. Wer kennt den jungen Herrn unten rechts?
1995Wouha,
cool, scheme!(define (sum-with x) (lambda (y) (+ y
x)))
Mittwoch, 13. März 13
Brendan Euch war hingegen eine coole Sau, und hat deshalb funktional entwickelt - in Scheme, das ist ein Lisp-Dialekt.
1995
Mittwoch, 13. März 13
Und genau das war auch der Grund, warum sich beide handelseinig wurden ...
1995Uhm, Brendan...
Scheme ... also ... wir haben wen neues kennengelernt ...
Mittwoch, 13. März 13
In der Zwischenzeit hatte allerdings Netscape jemand anders kennengelernt ..
1995.. wäre Java-Syntax möglich?
Mittwoch, 13. März 13
Und er musste den Syntax einmal komplett durch die Mangel nehmen.
1995Hrmpf.
com.sun.awt.getFactoryFactoryFactory()
Mittwoch, 13. März 13
So richtig super fand er das nicht, und er hat viele der grundlegenden Konzepte - etwa die einfache Objektorientierung, die von Self geerbt wurde - beibehalten. Nur eben weniger klammern. Dafür bleibt Prototypenbasierte Vererbung.
10 DAYS
1995
Mittwoch, 13. März 13
Apropos Prototypenbasierte Vererbung. Er bekam genau 10 Tage Zeit, die Welt - in diesem Fall unsere - als Prototyp zu bauen.
•Year 2000 Bugs
•string = primitive
•String = object
1995
Mittwoch, 13. März 13
Aber 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. Siehe das Logo oben, man wollte es tatsächlich als Java-Ableger vermarkten.
[TM]
1995
Mittwoch, 13. März 13
Ein weiterer Effekt: Bis heute gehört die Trademark JavaScript Oracle.
Protot2 === Produkt
1995
Mittwoch, 13. März 13
Aber 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
1995
Mittwoch, 13. März 13
Durch das Timing konnte Sun unmittelbar in den zweiten Release von Netscape springen. Die erste Beta vom Netscape Navigator hatte die Sprache noch als Livescript drin. Erst mit Beta 4 hiess es JavaScript, und dort war auch Java mit dabei. Ich habe das damals miterlebt, war aber eigentlich wegen einer ganz anderen Neuerung nervös - es wurden auch Frames eingeführt, das klang damals tatsächlich wie ein brillianter Plan.
Java JavaScriptKomponentenAnwendungenProfessionelle
So3ware
ScripteHacksHobbyanwender-So3ware
Mittwoch, 13. März 13
Sun und Netscape hatten aber durchaus einen Plan, als sie beide Sprachen gleichzeitig einführten. Java sollte das Profi-Tool werden, mit dem Schwerpunkt auf Applikationen und Komponenten, und Javascript das kleine Hackertool für den Feierabendentwickler.
Einfach
Mächtig
Fl4ibel
SchnellMittwoch, 13. März 13
Und genau daher kamen auch die Anforderungen, die Marc Andresen und co an Brendan stellten. Mach es nicht zu kompliziert. Weil klassische - also klassenbasierte - OO so kompliziert ist wurde zB auf das Modell von Self gegangen.
1996
Mittwoch, 13. März 13
1996 brachte einen neuen Spieler mit an bord, an dem das Internet vorher - zugunsten von MSN, AOL und Compuserv - vorbeigezogen war. Der hatte schon vorher einen Browser, aber der konnte noch kein JavaScript. Der neue auch nicht, weil der Name wie gesagt Sun gehörte - er konnte deshalb JScript.
Kompatibel in den komischen Dingen, inkl. Bugs...
... aber nicht die gleichen Features
Mittwoch, 13. März 13
Da 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.
1996ANSI
ISOIETF
ECMA
JavaScriptJScriptEcmaScript
Mittwoch, 13. März 13
In 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. zu diesem Zeitpunkt wollte die sich aber nur drum kümmern, dass der Standard etabliert wird, nicht vom wem.
Browser War
Mittwoch, 13. März 13
Nachdem man sich so schön auf einen Standard geeinigt hatte, konnte man sich ja wieder streiten - der Browserwar begann. IE jagte mit allen möglichen Tricks, die noch Jahrzehnte später Gerichte beschäftigen, Netscape den Markt ab. Und am Ende war IE der neue Standard.
1999
Mittwoch, 13. März 13
Und 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 machen können, weil sie es für Outlook Web Access brauchten.
1999
XMLHttpRequestMittwoch, 13. März 13
Also erschufen sie ein Wunderwerk aus der Höllentechnologie ActiveX und einem Interface der MSXML2, mit dem man im Hintergrund XML-Requests machen konnte. Und weil es eine typische Windows-API war, hatte die open-Methode auch gleich 4 unterschiedliche Signaturen.
2000
XMLHttpRequestMittwoch, 13. März 13
Aber trotzdem - es war eine gute idee, eigentlich. Deshalb legte Mozilla im Jahr drauf nach und implementierte auch eine eigene Variante - analog, aber als JavaScript-Objekt, nicht als ActiveX, denn das gab es in diesem Browser ja glücklicherweise nicht.
Mittwoch, 13. März 13
Leider war es nicht ganz perfekt, deshalb musste man noch ein bischen repariere ...
2002
XMLHttpRequestMittwoch, 13. März 13
Und schon 2 Jahre später funktionierte es dann wirklich.
2004
XMLHttpRequestMittwoch, 13. März 13
Und noch mal 2 Jahre später kam denn auch Safari dazu.
2004
Mittwoch, 13. März 13
Dass passte ganz gut, denn in diesem Jahr redete Tim O‘Reilly über das Web 2.0 - eigentlich als Beschreibung für dynamische Internetapplikationen. Mit begriffen wie RIA und SPA spielte aber javascript schnell eine grosse rolle
2005
Mittwoch, 13. März 13
Noch 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 „Das machen wir doch ohnehin schon“ Wer hat das auch gesagt?
2006
Age of LibrariesMittwoch, 13. März 13
Trotzdem war das wegen der unterschiedlichen xmlhttprequest-Interfaces noch eine PITA. also wurden libraries dafür erfunden. Framework-basierte Entwicklung (extjs, jquery, ... ) wird mainstream
2009
Mittwoch, 13. März 13
2009 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 ein akutes problem: wie werde ich responsiv?
2011
Age of FrameworksMittwoch, 13. März 13
2011 begann dann das Age of Frameworks. Natürlich gab es die auch schon vorher, aber jetzt sollte die ganze Applikation aus Javascript kommen, und nicht nur ein Teil.
Mittwoch, 13. März 13
Und wo sind wir heute? Da fragen wir doch mal die Jungs von Redmonk, die Statistik auf Basis von echten Diskussionen und echte Commits - konkret Stackoverflow und Github machen. Die Statistik ist vom Januar. In welcher Ecke vermutet Ihr Javacript?
Mittwoch, 13. März 13
Genau, 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
World Domination!Mittwoch, 13. März 13
Also ist Javascript ganz oben angekommen, de World Domination ist endlich erreicht!
Enterprise JavaScriptMittwoch, 13. März 13
JavaScript ist endlich im Enterprise angekommen! Dann kann ja nichts mehr schiefgehen. Also fast nichts. Fragen wir doch mal die Jungs aus der Enterprise direkt.
Mittwoch, 13. März 13
Wer kennt das schon in JavaScript?
Mittwoch, 13. März 13
Warum ist das so? weil alle Zahlen float sind, und float tickt eben so, wie auch in jeder anderen sprache. Es gibt eben kein Integer. Was es aber gibt sind Bitoperatoren. Das heisst intern gibt es wieder, für einen kurzen Moment, integers - es wird nur jeweils gewechselt. Und auch schleifenvariablen, Iteratoren etc sind immer Floats als werte.
Mittwoch, 13. März 13
Also Leerstring ist nicht 0 als String, aber 0 als Zahl identisch mit beidem?
Mittwoch, 13. März 13
Inkonsistentes Typecasting
Mittwoch, 13. März 13
Und 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 ...
Enterprise JavaScript??Mittwoch, 13. März 13
Man merkt der Sprache also an, dass sie in 10 Tagen geschaffen wurde. Es gibt noch viele andere 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 kommt bestimmt noch :-)
DOMMittwoch, 13. März 13
Ausserdem 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.
Jeder Browser supported unterschiedlich viel
Auch gerne mal buggy ... ... oder abwärtskompatibel buggy.
Standardisierung kam erst spät
So umfangreich, dass Security kaputt gegangen ist.
Mittwoch, 13. März 13
Das hat zur Folge, dass DOM nicht nur mit jede Browsertypen, sondern auch nach Version unterschiedlich supported wird. Gerne mit Fehlern, die dann aber für Kompabilität dringelassen werden. Die Standardisierung auf einen gemeinsamen Level gab es erst mit der dritten version. Die APIs sind inzwische so komplex, dass jede Änderung an DOM praktisch neue Security-Probleme impliziert.
Security?!Mittwoch, 13. März 13
Security: Fuzzer (Das sind scanner, die nach crashes suchen) finden mit jedem Algorithmus neue Bugs in allen Browsern. Security und JavaScript ist eh ein eigenes Thema.
von Neumann-Architektur
Speicher == Code
== DatenMittwoch, 13. März 13
1945 hat John von Neumann die von Neumann-Architektur entwickelt. Das heisst im wesentlichen, dass es eine CPU gibt, einen Datenbuss und einen Speicher - und in diesem Speicher liegen Daten und der ausführbare code.
Ursache für ...
•Buffer Overflows•Integer Overflows•Format String Bugs•Use a3er Free80%
Mittwoch, 13. März 13
Dieses Konstrukt sorgt bei Programmiersprachen, bei denen man selbst den Speicher managen muss für einen grossen Teil der Bugs - 80% der Security-Bugs von 1990 bis 2000 gehen auf diese Konstruktion - Bugs wie oben, bei denen Daten zu Code werden, weil es für die CPU das gleiche ist.
JavaScriptGrößte Attack Surface ever:
•2.5 Milliarden Clients•1 Milliarde Smartphones•Private Daten im Browser•Bankdaten im Browser•Milliardenunternehmen
Mittwoch, 13. März 13
Mit JavaScript haben die die Programmiersprache mit der größten Angriffsfläche der Welt. Es gibt 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 Teil ausschliesslich im Web zu finden. Wer nutzt Google Calendar?
Dokument == Code
== DatenMittwoch, 13. März 13
Jetzt hätte man erwartet, dass man aus dem C-Problem gelernt hat, und Daten und Code nicht vermischt. Aber nein - es wird noch schlimmer. Darstellung ist Code und Daten zugleich. Es wurde einfach in die Dokumentenbeschreibungssprache hineingefriemelt.
Ursache für ...
•Session Riding•XSS•CSRF•JavaScript Hijacking•Clickjacking80%
Mittwoch, 13. März 13
Und da sind wir bei der Ursache für die meisten Bugs der letzten 10 Jahre. Nur wegen dieses Umstandes gibt es nämlich Attacken wie Session Riding, XSS, CSRF, JavaScript Hijacking, Clickjacking etc.
JavaScript„Hey, ich 4ecute das überall für Dich!“
•in einem eigenen Tag <script>!•mit 4ternem Source-8les!•in Urls mit javascript!•In Stylesheets mit 4pression()!•in Attributen als Event!
•Mittwoch, 13. März 13
Die 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.
JavaScript„Es macht auch nichts wenn Du Dich vertippst, ich 4ecute das tro9dem!“
<IMG SRC="jav	ascript:alert('XSS');">
<BODY onload!#$%&()*~+-_.,:;?@[/|\]^`=alert("XSS")>
<<SCRIPT>alert("XSS");//<</SCRIPT>
<STYLE>@im\port'\ja\vasc\ript:alert("XSS")';</STYLE>
Mittwoch, 13. März 13
Und 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 oder syntaktisch korrekt ist, trotzdem will man etwas sinnvolles darstellen. Nur passiert das dann eben auch bei JavaScript.
JavaScript„Fühl Dich einfach wie zuhause, richte es Dir ein wie es Dir passt.“
[Mittwoch, 13. März 13
Und damit man mit dem Code alles machen kann, gib JavaScript einem gleich die entsicherte Waffe in die Hand - man darf alles überschreiben, auch Systemfunktionen - im Beispiel alert - bishin zu [ - aka Array.prototype.constructor
JavaScript„Wenn Dir was fehlt - ich hab da noch was“
•ActiveX•Flash•PDF•Java•+ JS in den Plugins sel:t
•Mittwoch, 13. März 13
Damit 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.
JavaScript„Ah, die alten Bugs stehen da auch noch
rum, wenn Du die brauchst“
•Plugin-basierte Crashes•Dom-basierte Crashes•Use a3er free ;ploits•Heap Spraying •Heap Feng Shui
Mittwoch, 13. März 13
Und natürlich ist der Browser in C geschrieben, das heisst, die alten Turing-Bugs sind auch noch alle da. Und hier sind wir an genau der Stelle, warum die NSA und Konsorten heute 6stellige Zahlen für Browserbugs zahlen - an dieser Stelle habe ich das System unter kontrolle.
JavaScript„Wenn Du Hilfe brauchst - Du findest mich
überall“
•Sk2e•Adium•Lokale HTML-8les•Beispiel: Desktop-8leklau •Beispiel: Sk2e-Wurm
Mittwoch, 13. März 13
Mit 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 im Lokalen Scope läuft, und wie lokale Files ganz andere Rechte hat. Man kann damit direkt Files aus dem Desktop auslesen, auch die letzten Skype-Würmer und Bugs basierten auf HTML/JavaScript.
JavaScript„Und ich fange gerade erst an ...“
•8le-API•Geolocation•Hybrid-Mobile•Camera•Contacts•...
Mittwoch, 13. März 13
Und was macht man mit so einer fahrlässigen Infrastruktur? Man entsichert die Waffe, und gibt ihr über verschiedene APIs zugriff auf Dateien, die Geo-Location - und inzwischen über Hybrid-Mobile Applications aus Phonegap etc auch Zugriff auf die Kamera und die Kontakte.
Will wirklich jemand eine Sprache,mit der man so leicht und so schnell
so viel falsch machen kann?Mittwoch, 13. März 13
Und da stellt sich die Frage, warum sollte jemand so eine sprache wollen. Eine Sprache, mit der man so schnell so dermassen viel kaputt machen kann.
Ja, genau das ist
der Punkt.Mittwoch, 13. März 13
Und genau darum geht es bei JavaScript. Die Nachteile bei Security sind die Vorteile von heute. Die Reichweite, die Flexibilität, die Mächtigkeit - deshalb ist es so erfolgreich.
=me to Market
1994: 5 Jahre
2004: 3 MonateMittwoch, 13. März 13
Es hat sich in der Welt draussen nämlich etwas geändert - sie ist schneller geworden. Die Mittlere Time to Market ist um Faktor 12 schneller geworden, durch Ursachen wie : Globalisierung, Computer und Automatisierung. (Zahlen von Agile42, mir fehlen welche für Software, aber die sollten aktuell noch schärfer aussehen)
Continuous Deployment
Lean Startup
Scrum
10 Deploys a Day30 Features/Woche
Mittwoch, 13. März 13
Und diese Beschleunigung ist auch genau der grund, warum es in unserer Welt nicht mehr nur agile Methoden mit zweiwöchentlichen Releases gibt, sondern auch permanente Weiterentwicklung, Initiale Produkte aus Learn Startup die nach einem Wochenende gelaunched werden, Firmen die 30 Deploys an einem Tag oder 30 Features in der Woche in Produktion bringen.
JavaScript wurde als Einsteigersprache für schnelle und einfache Lösungen geschaffen
Mittwoch, 13. März 13
Und genau für solche Anforderungen wurde JavaScript geschaffen. Zu dem Zeitpunkt zwar um Einsteiger zu adressieren, aber genau heute zahlen sich diese Entscheidungen aus.
Einfach
Mächtig
Fl4ibel
SchnellMittwoch, 13. März 13
Genau eine Sprache mit diesen Eigenschaften braucht es.
•sehr mächtige Sprache (JSON)•einfache Objektorientierung•Script-Sprache!•compiliert sehr schnell
Features
Mittwoch, 13. März 13
Beispiele: Einfache Objektorientierung, sehr mächtige Sprache mit mächtigen Konstrukten - siehe JSON! - direkt ausführbare Scriptsprache mit extrem schnellen Compile
Deployment
•Browser-Umgebung •Distribution über Web und Appstore•minimale Release-Kosten
Mittwoch, 13. März 13
Aber nicht nur die Sprache selbst ist preiswert beim Fortschritt. Auch das Environment macht alles preiswert. Die Browser-Technologie ist überall vorhanden, die Distributionswege über Web oder Appstores sind schnell, einfach und preiswert.
ReichweiteSmartphones
Browsers
Tablets TVsOS Embedded Devices
WebapplikationenMittwoch, 13. März 13
Wenn ich auf JavaScript setze limitiere ich mich nicht. Kein CEO der Welt braucht mehr eine strategische Entscheidung 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 - auch SetTop-Boxen, Browser-only-OSs wie Firefox OS oder ChromeOS, Arduino itself (espresso)
Fun Fact:JavaScript ist da, wo Java hin wollte
1991 als Sprache für Consumer Electronicsentwickelt ...
TVsMobiltelefone
VideorekorderWaschmaschinen
Mittwoch, 13. März 13
JavaScript ist heute da, wo Java einmal hinwollte.
Thoughtworks Technology Radar 10/12
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.
Mittwoch, 13. März 13
Und ich beende das ganze mit einem Zitat aus dem letzten Technology Radar von Thoughtworks. JavaScript ist die kommende Cross-Platform-Entwicklungswelt, und JavaScript wird selbst zu einer Platform. JavaScript ist mein neues Betriebssystem.
Danke!
Mittwoch, 13. März 13
Test Driven JavaScript wird Standard
Frameworks lösen jQuery abNode.js-Security wird ein >ema
Professionalisierung in CI + Deployment
Meine Kristallkugel
Mittwoch, 13. März 13
Coding Dojo
Hier18:00-19:00Martin Ruprecht (nicht ich!)Es wird also gut.
Mittwoch, 13. März 13