Functional Reactive Programming in ClientSide web applications

Sergio Cámara Braña · 2020

En esta tesis hemos hecho un estudio sobre el paradigma de programacion funcional reactiva (FRP) centrado en el desarrollo de aplicaciones web. Hemos elaborado un estudio de la literatura relacionada con este paradigma, asi como de los paradigmas en los que este esta basado: la programacion funcional y reactiva. Para conocer las aplicaciones practicas de paradigma, hemos presentado un caso de uso en el que hemos desarrollado una aplicacion web para la plataforma “Initative for Digital Transformation” (https://idt.in.tum.de/) en el cual hemos aplicado FRP como el principal paradigma de programacion. Hemos presentado las herramientas y librerias mas relevantes de FRP para aplicaciones web con Angular (framework usado en el caso de uso), destacando el uso de RxJS, una libreria con enfoque declarativo que permite la gestion de los datos de la aplicacion a traves de Observables y stream de datos; y que esta estrechamente unido a Angular. Hemos explicado como la aplicacion implementa este paradigma, desde su implicacion en el desarrollo de la arquitectura de la aplicacion hasta como se aplica en el diseno de los diferentes componentes y funcionalidades de la aplicacion. Finalmente, hemos evaluado los posibles efectos positivos y adversos que el uso de FRP proporciona en el proceso de deteccion y actualizacion de cambios en la UI, el consumo de memoria de la aplicacion y las posibles perdidas de memoria causadas por la liberacion de los recursos destinados a los stream de datos.---ABSTRACT---In this thesis we have made a study on the reactive functional programming paradigm (FRP) focused on the development of web applications. We have conducted a review of the literature related to this paradigm, as well as the paradigms on which it is based: functional and reactive programming. In order to know the practical applications of this paradigm, we have presented a use case in which we have developed a web application for the Initiative for Digital Transformation platform (https://idt.in.tum.de/) in which we have applied FRP as the main programming paradigm. We have presented the most relevant tools and libraries for the implementation of FRP in web applications with Angular (framework used in the use case) highlighting the use of RxJS, a library with a declarative approach that allows managing the data of an application through Observables and data streams and that is strongly linked to Angular. We have explained how the application implements this paradigm, from its involvement in the development of the application architecture to how it is applied in the design of the different components and functionalities of the application. Finally, we have evaluated the possible positive and adverse effects that the use of FRP may have on application performance. These evaluations have measured the benefits that FRP brings in the process of detecting and updating changes in the UI, the application's memory consumption and the possible memory leaks caused by the incorrect release of resources destined to the data streams.

Read the paper · More papers on PaperTik