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

Scala.js at code.talks 2014, Hamburg

Apr 15, 2017

Download

Technology

Lutz Hühnken
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
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