100 lines
1.8 KiB
Markdown
100 lines
1.8 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
|
|
|
|
---
|
|
|
|
-> # Concept Design
|
|
|
|
---
|
|
|
|
-> # System Design
|
|
|
|
---
|
|
|
|
-> # 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.
|