React server-side rendering with Scala.js and GraalVM
Do, Tran Quang Anh (2019)
Julkaisun pysyvä osoite on
https://urn.fi/URN:NBN:fi:amk-2019110520681
https://urn.fi/URN:NBN:fi:amk-2019110520681
Tiivistelmä
The topic of the thesis is to demonstrate the process of building a full stack application using Scala as the single programming language. It discusses the stack based on this language, and whether this architecture is practical for production use.
The motivation behind this study and Scala is the fact that although JavaScript remains the only language supported for building interactive applications on the browser, it comes with its own shortcomings. Scala offers a compelling alternative, rooted in its maturity with the Java ecosystem, and an ever-growing community around Scala.js, a compiler that produces JavaScript code from Scala source. This study introduces these tools and how they are used in building the application.
With related to isomorphic application, programs that run on both browser and server environments, the thesis also investigates polyglot features in GraalVM, a runtime for backend application. GraalVM can execute server-side rendering by executing JavaScript code built for the frontend. Its performance is measured against a pure client-side rendered versions.
The result from this study is a different way to build isomorphic application that does not necessitate using JavaScript, a language traditionally used for this goal.
The motivation behind this study and Scala is the fact that although JavaScript remains the only language supported for building interactive applications on the browser, it comes with its own shortcomings. Scala offers a compelling alternative, rooted in its maturity with the Java ecosystem, and an ever-growing community around Scala.js, a compiler that produces JavaScript code from Scala source. This study introduces these tools and how they are used in building the application.
With related to isomorphic application, programs that run on both browser and server environments, the thesis also investigates polyglot features in GraalVM, a runtime for backend application. GraalVM can execute server-side rendering by executing JavaScript code built for the frontend. Its performance is measured against a pure client-side rendered versions.
The result from this study is a different way to build isomorphic application that does not necessitate using JavaScript, a language traditionally used for this goal.