372ef50ca544411dd27956497e0f21e35e30bcbb
[phd-thesis.git] / concl / concl.tex
1 \documentclass[../thesis.tex]{subfiles}
2
3 \input{subfilepreamble}
4
5 \begin{document}
6 \input{subfileprefix}
7 \chapter{Coda}%
8 \label{chp:conclusion}
9 \begin{chapterabstract}
10 This chapter concludes the dissertation and reflects on the work.
11 \end{chapterabstract}
12 \section{Reflections}
13 Programming \gls{IOT} systems is classically complex.\todo{chap\-ter\-ab\-stract weg?}
14 Traditionally, on each layer of the system, different computers, hardware architectures, programming languages, programming paradigms, and abstraction levels are required.
15 All these factiors generating a lot of semantic friction.
16 Furthermore, \gls{IOT} systems are very convoluted because they are dynamic, multi-tiered, multi-user, multitasking, interactive, distributed, and collaborative.
17 \Gls{TOP} has shown to provide a suitable programming paradigm that allows the declarative specification of exactly such systems.
18 However, edge devices are often too computationally restricted to be able to run traditional \gls{TOP} systems.
19 This thesis sheds light on orchestrating complete \gls{IOT} system using \gls{TOP}, specifically filling in the knowledge gap for edge devices in three episodes.
20
21 \Cref{prt:dsl} presented two novel techniques for embedding \glspl{DSL} in \gls{FP} languages.
22 The novel classy deep embedding technique allows extension of a deeply embedded \gls{DSL} both in language constructs and in language interpretations.
23 Furthermore, by using the structural information available at compile time, a lot of the boilerplate required to develop an interoperating \gls{IOT} system can be automatically and hence safely generated.
24
25 \Cref{prt:top} gave an overview of the \gls{MTASK} system, it's design, integration with \gls{ITASK}, implementation, and green computing facilities.
26 It shows that when the \gls{DSL} is carefully designed, and domain-specific knowledge is embedded in the execution platform, it is possible to create a language that offers the same abstraction level as \gls{ITASK} provides on the server.
27 Using advanced \gls{DSL} embedding technique, a \gls{TOP} \gls{DSL} for the \gls{IOT} edge devices can be created that allows programming the small microcomputers according to the same high abstraction level as on the server.
28 The \gls{MTASK} \gls{DSL} is set up in such a way that it is possible to create high-level \gls{TOP} programs performing common \gls{IOT} edge devices work dynamically and send them to the edge device at run time.
29
30 \Cref{prt:tvt} qualitatively and quantitatively compared traditional \gls{IOT} system programming, tiered programming, to the tierless programming.
31 We have shown that programming such complex systems using a tierless approach such as using \gls{MTASK} or even \gls{ITASK} reduces the development effort required to making these systems.
32 Concretely, it results in fewer \gls{SLOC}, files, programming languages and programming paradigms.
33
34 However, it is not a silver bullet.
35 Tierless languages are novel, and hence lacking tooling and community support.
36 They contain many high-level tierless abstractions that the programmer has to master.
37 The low-level specific semantics of the final application may become more difficult to destill from the specification.
38 Finally, the system is quite monolithic.
39 Changing a components within the system is easy if it already exists in the host language.
40 Adding new components to the system requires the programmer to add it to all complex components of the languages such as the compiler, and \gls{RTS}.
41
42 \input{subfilepostamble}
43 \end{document}