~/talk

The Magic Recipe of Scala.js: a Cross‑Platform Language

TalkinFrenchat ScalaIO 2018 · 2018-10-29..10-31· [scala, web-platform]
slides:none on file

Scala.js is presented as a way to make Scala truly cross-platform by keeping portability, JavaScript interop and performance as concrete constraints. It covers a demo memory game compiled to JavaScript, describes changes in Scala.js 1.x (global-scope fix and revised name-mangling/overload handling) that restore interoperability, explains full interop with ECMAScript via façades and JS-native classes, and reports benchmarks showing dev-mode is ~2–3× slower than the JVM while production-optimized output approaches JVM speed and is about 10% smaller than Scala.js 0.6 builds.

AI-written summary · about

  1. 0:00Scala.js intro
  2. 1:22Game demo
  3. 2:48Three key ingredients
  4. 3:31JVM/JS portability
  5. 5:15Scala ecosystem compat
  6. 6:40Class boxes and primitives
  7. 8:24Structural types and reflection
  8. 9:48Method overloads to JS
  9. 12:36JavaScript interop
  10. 14:21Dev and prod modes
  11. 16:30Type/exception support
  12. 17:53Ecosystem test validation
  13. 19:40Test limits and blockers
  14. 20:01JS library interop
  15. 22:06JS facade design
  16. 25:02Scala.js/JS type semantics
  17. 27:07Recursive translation
  18. 28:53JS class definitions
  19. 30:20Completeness limits
  20. 31:45JS feature support
  21. 33:32Type hierarchies
  22. 36:19IR and optimization
  23. 39:37Type system properties
  24. 41:48Scala.js 1.0 updates
  25. 42:10Global scope access
  26. 45:03Runtime class creation
  27. 48:12Dev mode perf
  28. 49:57Prod mode perf
  29. 51:43Native JS comparison
  30. 53:11Advanced typing and events
  31. 54:35Generated code size
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.