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.

Avatar for Lutz Hühnken

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