scala.js at code.talks 2014, hamburg

21
Lutz Hühnken 28.06.2022 SCALA.JS Lutz Hühnken JavaScript

Upload: lutz-huehnken

Post on 15-Apr-2017

462 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Scala.js at code.talks 2014, Hamburg

Lutz Hühnken03.05.2023

SCALA.JSLutz Hühnken

JavaScript

Page 2: Scala.js at code.talks 2014, Hamburg

scala.js code.talks 2014 2

Ü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

Page 3: Scala.js at code.talks 2014, Hamburg

3

Front-End / JavaScript Erfahrungen

scala.js code.talks 2014

• 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

Page 4: Scala.js at code.talks 2014, Hamburg

JavaScript

Page 5: Scala.js at code.talks 2014, Hamburg

5

JavaScript ist so eine Sache..

scala.js code.talks 2014

• Eine moderne Web-Anwendung ist im wesentlichen eine JavaScript-Anwendung

• JavaScript ist plattformübergreifend verfügbar, erfordert keinerlei Installation, ist von Nutzern akzeptiert

• Aber…

Page 6: Scala.js at code.talks 2014, Hamburg

6

JavaScript ist so eine Sache..

scala.js code.talks 2014

• 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?

Page 7: Scala.js at code.talks 2014, Hamburg

7

Und jetzt auch noch Scala..

scala.js code.talks 2014

Wenn man Scala mag, warum es nicht auch für das Front-End verwenden? Scala.js ermöglicht dies.

Page 8: Scala.js at code.talks 2014, Hamburg

Scala.js

Page 9: Scala.js at code.talks 2014, Hamburg

9

Überblick

scala.js code.talks 2014

Bild von Sébastien Doeraene

Page 10: Scala.js at code.talks 2014, Hamburg

scala.js code.talks 2014 10

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

Page 11: Scala.js at code.talks 2014, Hamburg

11

Pipeline

scala.js code.talks 2014

Bild von Sébastien Doeraene

Page 12: Scala.js at code.talks 2014, Hamburg

scala.js code.talks 2014 12

Scala.js Eigenschaften• uneingeschränkter DOM Zugriff

• sbt Integration

• Source Maps

• Statische Typisierung

• Closure Compiler

Page 13: Scala.js at code.talks 2014, Hamburg

(Umschalten zu Source Code)

Page 14: Scala.js at code.talks 2014, Hamburg

Schön und gut.. was noch?

Page 15: Scala.js at code.talks 2014, Hamburg

scala.js code.talks 2014 15

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

Page 16: Scala.js at code.talks 2014, Hamburg

scala.js code.talks 2014 16

Nebenläufigkeit• JVM: Threads.

• JavaScript: Callbacks.

• Gemeinsame Abstraktion?

Page 17: Scala.js at code.talks 2014, Hamburg

scala.js code.talks 2014 17

Akka

Page 18: Scala.js at code.talks 2014, Hamburg

scala.js code.talks 2014 18

Was ist ein Aktor?• Hat eine Mailbox (Queue)

• Empfängt Nachrichten

• Nachrichten werden sequentiell abgearbeiten

• Aktoren-Framework für die JVM: Akka

Page 19: Scala.js at code.talks 2014, Hamburg

scala.js code.talks 2014 19

Akka.js• Akka-Implementierung in Scala.js

• Läuft leider noch nicht, kann nichts zeigen • Aber ist in Arbeit (Kooperation EPFL/Typesafe)!

• Prototyp (veraltet):https://github.com/sjrd/scala-js-actors

Page 20: Scala.js at code.talks 2014, Hamburg

scala.js code.talks 2014 20

Li Haoyi• https://github.com/lihaoyi/scalatags

• https://github.com/lihaoyi/scala.rx

• http://www.scala-js-fiddle.com

Page 21: Scala.js at code.talks 2014, Hamburg

scala.js code.talks 2014 21

Danke schön!

Scala JS Hompage

http://www.scala-js.org

Bitte folgt mir auf Twitter:

https://twitter.com/lutzhuehnken