Masterarbeit
Evaluation of Web Application Development with Alternative Frontend Languages
Research Area
Students
Muhammad Qasim
Advisers
Dr.-Ing. Sebastian Heil
Description
While on the server side there is a plethora of possible languages and platforms, development of client-side code was historically constrained to JavaScript and plugin-technologies which are now obsolete. Through the introduction of WebAssembly in the browser as compilation target, the opportunity to use classical backend languages also in the frontend, was created.
This thesis investigates the potential of using alternative programming languages in the frontend through WebAssembly. It aims at conducting a profound analysis of the technological maturity of this idea, revealing possibilities and contraints. The experimentation should comprise compiled (e.g. C/C++/C#) as well as interpreted (e.g. Python) languages. A particular focus should be on the potential in classical front-end use cases, that is UI Event Handling, DOM-Manipulation, AJAX and WebSocket Communication with the Server, Usage of local persistency mechanisms like Cookies, localstorage and localdb, background processing and concurrency through Web Workers, Compability with WebComponents, as well as mobile devices and their APIs (Camera, Microphone, Intertial Sensor, GPS etc.).
The objective of this thesis is to conduct a feasibility study and the elaboration of recommendations regarding the above use of alternative programming languages in the frontend via WebAssembly. This comprises the specification, implementation and conducting of suitable experiments as well as the analysis of the state of the art of WebAssembly in the frontend and the analysis, interpretation and summarization of the data and insights gained through experimentation.
Description (German)
Während auf der Serverseite eine große Vielfalt and möglichen Sprachen und Platformen existiert, war die Entwicklung von clientseitigem Code auf JavaScript bzw. inzwischen obsolete Plugin-Technologien beschränkt. Durch die Einführung von WebAssembly im Browser als Kompilierziel existiert nun die Möglichkeit, klassische Backend-Sprachen auch im Frontend einzusetzen.
Diese Thesis untersucht die Potenziale des Einsatzes alternativer Programmiersprachen im Frontend durch WebAssembly. Ziel ist es, eine fundierte Analyse des technologischen Reifegrades dieser Idee durchzuführen und dabei Möglichkeiten und Beschränkungen aufzuzeigen. Die experimentelle Untersuchung sollte sowohl kompilierte (z.B. C/C++/C#) als auch interpretierte (z.B. Python) Sprachen berücksichtigen. Besonderer Schwerpunkt soll auf den Potenzialen im klassischen Frontend-Einsatz, also UI Event Handling, DOM-Manipulation, AJAX und WebSocket Kommunikation mit dem Server, Verwendung von lokalen Persistenz-Mechanismen wie Cookies, localstorage und localdb, Parallelität und Hintergrundprozesse mittels Web Workers, Kompatibilität zu WebComponents, sowie Mobile Endgeräte und deren APIs (Kamera, Mikrofon, Lagesensor, GPS etc.) liegen.
Ziel dieser Arbeit ist die
Durchführung einer Machbarkeitsstudien und Erarbeitung von Empfehlungen
bezüglich des oben geschilderten Einsatzes alternativer Programmiersprachen im
Frontend durch WebAssembly. Dies beinhaltet die Konzeption, Implementierung und
Durchführung von geeigneten Experimenten ebenso, wie die Untersuchung des Stands
der Technik von WebAssembly im Frontend und die Analyse, Interpretation und
Zusammenfassung der durch die Experimente gewonnen Daten und Erkenntnisse.