enterprise-presentation/main.tex

106 lines
2.3 KiB
TeX
Raw Permalink Normal View History

2020-02-25 05:51:39 +00:00
\documentclass{beamer}
% \usetheme{Boadilla}
\usetheme{Madrid}
\usepackage{bookmark}
\usepackage{graphicx}
\usepackage{fancyvrb}
\setbeamercovered{transparent}
\title{enterprise}
\subtitle{UI Framework Project}
\author{Michael Zhang}
2020-02-25 08:29:00 +00:00
\date{\today}
2020-02-25 05:51:39 +00:00
\begin{document}
\begin{frame}
\titlepage
\note{Briefly discuss what is enterprise, a bit about the origin of its name.}
\end{frame}
\begin{frame}
2020-02-25 08:29:00 +00:00
\frametitle{What's out there today?}
\begin{itemize}[<+>]
\item React: Immediate-mode style framework
\item Elm: Functional message-passing framework
\item Svelte: Compile-time framework
\item Roll your own... ?
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{High-level goals}
2020-02-25 05:51:39 +00:00
\begin{itemize}[<+>]
\item Declarative-style programming.
\note{In UI design, we really don't care about how the logic is implemented. We don't care how the browser draws the styles, or what order on-hover handlers are added to dropdowns.}
\item No framework bloat.
\note{enterprise is more like a compiler than a framework in the sense that the code it generates doesn't need to contain the actual compilation process.}
\item Separation of business logic and implementation.
\note{Talk about Epic?}
\end{itemize}
\end{frame}
\begin{frame}[fragile]
\frametitle{What do I have today?}
\begin{itemize}
\item Foundations for event analysis.
\item WASM code generation.
\end{itemize}
Example:
\begin{verbatim}
component HelloWorld {
model {
2020-02-25 08:29:00 +00:00
name: String = "",
2020-02-25 05:51:39 +00:00
}
view {
<input bind:value="name" />
"Hello, " {name} "!"
}
}
\end{verbatim}
\end{frame}
\begin{frame}
\frametitle{How does it work?}
\begin{enumerate}
\item Parsing DSL syntax.
\item Assemble dependency graph.
\item Generate code.
\end{enumerate}
\end{frame}
\include{parsing}
\include{deps}
2020-02-25 08:29:00 +00:00
\include{general}
2020-02-25 05:51:39 +00:00
\include{codegen}
\begin{frame}
2020-02-25 08:29:00 +00:00
\frametitle{Future work}
2020-02-25 05:51:39 +00:00
\begin{itemize}
\item Full DSL, independent from Rust.
\item Cassowary-based constraint solving for layout.
\item Asynchronous event handlers.
\item Eliminating unnecessary model stores.
\item Connecting to other frameworks (GTK, Iced, etc.)
2020-02-25 08:29:00 +00:00
\item Interpreted executor for fast prototyping.
\item Backend code generation.
2020-02-25 05:51:39 +00:00
\end{itemize}
\end{frame}
\end{document}