Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Scala.js at code.talks 2014, Hamburg

Scala.js at code.talks 2014, Hamburg

Scala.js at a glance - a quick overview of what Scala.js is and how it works.

Lutz Hühnken

September 10, 2014
Tweet

More Decks by Lutz Hühnken

Other Decks in Programming

Transcript

  1. Über mich • Java seit ~1997 • Im Laufe der

    Zeit verschiedenste Rollen: Consultant, Architekt, IT Projektleiter, IT Manager, Scrum Master. • Meine “Entdeckung” von Scala (ca. 2011) hat mich wieder zum Programmieren gebracht • Seit 2012 Entwicklung mit Scala (vor allem REST-Services für mobile Anwendungen) • Seit April 2014 Trainer und Consultant bei Typesafe scala.js code.talks 2014 2
  2. Front-End / JavaScript Erfahrungen scala.js code.talks 2014 3 • Backoffice

    für Reise-Website mit GWT • Migration umfangreicher Set-Top-Box / TV Applikation von Flash nach “HTML5” (JavaScript/jQuery) • PhoneGap-Applikation mit jqMobi, require.js, underscore.js, backbone.js
  3. JavaScript ist so eine Sache.. scala.js code.talks 2014 5 •

    Eine moderne Web-Anwendung ist im wesentlichen eine JavaScript-Anwendung • JavaScript ist plattformübergreifend verfügbar, erfordert keinerlei Installation, ist von Nutzern akzeptiert • Aber…
  4. JavaScript ist so eine Sache.. scala.js code.talks 2014 6 •

    Andererseits betreiben viele Leute einigen Aufwand, um nicht in JavaScript programmieren zu müssen • CoffeeScript, TypeScript, Dart, ClojureScript, Haste, Ceylon, emscripten… • Platform ja, Sprache nein?
  5. Und jetzt auch noch Scala.. scala.js code.talks 2014 7 Wenn

    man Scala mag, warum es nicht auch für das Front-End verwenden? Scala.js ermöglicht dies.
  6. Compiler Plug-in • scala-js sbt Plug-In erweitert Scala-Compiler um ein

    Compiler-Plug-In • Compiliert den AST nach JavaScript • erzeugt auch “Source Map” • optimiert Code (Google Closure) • bester Startpunkt: sbt sample project scala.js code.talks 2014 10
  7. Scala.js Eigenschaften • uneingeschränkter DOM Zugriff • sbt Integration •

    Source Maps • Statische Typisierung • Closure Compiler scala.js code.talks 2014 12
  8. Java-VM vs. JS-Runtime • Ziel: Bekannte Abstraktionen aus Scala auch

    auf JS-Runtime verwenden. • Vieles (HOF, Patter matching etc.) lässt sich übersetzen, vergl. Code, den wir gerade gesehen haben. • Aber nicht alles.. scala.js code.talks 2014 15
  9. Was ist ein Aktor? • Hat eine Mailbox (Queue) •

    Empfängt Nachrichten • Nachrichten werden sequentiell abgearbeiten • Aktoren-Framework für die JVM: Akka scala.js code.talks 2014 18
  10. Akka.js • Akka-Implementierung in Scala.js • Läuft leider noch nicht,

    kann nichts zeigen L • Aber ist in Arbeit (Kooperation EPFL/Typesafe)! • Prototyp (veraltet): https://github.com/sjrd/scala-js-actors scala.js code.talks 2014 19
  11. Danke schön! Scala JS Hompage http://www.scala-js.org Bitte folgt mir auf

    Twitter: https://twitter.com/lutzhuehnken scala.js code.talks 2014 21