Files
bachelor-presentation/presentation.md
2017-01-17 15:48:25 +01:00

140 lines
2.6 KiB
Markdown

%title: Beyond .\*Script
%author: hellerve
%date: 2017-01-15
-> # Beyond .\*Script
-> ## Implementing A Language For The Web
-> Veit Heller
-> Bachelor examination
---
-> # Introduction
- JavaScript is _the_ language of the Web
- It is not always the right tool for the job
- Many approaches have been taken to change it
to fit the users needs
---
-> # Introduction
- Mitigations fall into two categories
- Preprocessors
- Transpilers
- Caveat: thin wrapper around JavaScript
---
-> # Introduction
- zepto-js attempts to build a runtime that is
foreign to JavaScript while still being compatible
- Features: Functional, Lisp, Macros, Continuations
---
-> # Related Work
-> ## Existing Projects
- Roughly two categories: transpilers and abstraction languages
- transpilers: compiles one high level language into another
- GHCJS
- Emscripten
- ClojureScript
- abstraction languages: add features to JavaScript, do not change semantics
- CoffeeScript
- Elm
- PureScript
---
-> # Related Work
-> ## Existing Standards
- Lisp pretty well standardized, but conflicting standards
- Scheme was chosen, so Scheme Requests for Implementation are relevant
- Unix: development artifact that affects zepto
---
-> # Concept Design
---
-> # System Design
- modifications of zepto for browser necessary
---
-> # System Design
- web ecosystem
- content delivery
- integration into websites (HTML, CSS, JavaScript, zepto)
---
-> # System Design
- API availability
- WebGL, WebAudio (through FFI)
- build tools (natively)
---
-> # Implementation
---
-> # Evaluation of the Prototype
- zepto is primarily a platform for prototyping
- Usability was measured during an introductory workshop
- Generally favorable feedback, questions mostly around tooling
---
-> # Evaluation of the Prototype
- Addition of the FFI solves performance problems
- suboptimal, but deemed acceptable for this particular use case
- Features missing affect the compatibility with existing zepto libraries
---
-> # Evaluation of the Prototype
- marginally slower than zepto reference in most use cases
- much slower than native JavaScript
- calling into FFI for performance optimization still necessary
---
-> # Summary and Outlook
- zepto-js is as experimental as zepto itself
- with the maturation of zepto and zeps, zepto-js can grow
- tooling still not on par with JavaScript
---
-> # Summary and Outlook
- since thesis was written:
- compiler backend to JavaScript in zepto (node)
- first stable release of zepto (version 0.9.6)
- zepto-js development stunted
---
-> # Thank you for listening.
-> I am now ready to take questions.