diff --git a/tex/text.tex b/tex/text.tex index d30bd0c..07faf8c 100644 --- a/tex/text.tex +++ b/tex/text.tex @@ -783,34 +783,36 @@ First, a question of \textit{`Why pick Go for building a web application?'} might arise, so the following few lines will try to address that. -Go~\cite{golang} (or \emph{Golang} for SEO-friendliness) is a strongly typed, -high-level \emph{garbage collected} language where functions are first-class -citizens and errors are values. +Go~\cite{golang}, or \emph{Golang} for SEO-friendliness and disambiguating Go +the ancient game, is a strongly typed, high-level \emph{garbage-collected} +language where functions are first-class citizens and errors are values. The appeal for the author comes from a number of features of the language, such as built-in support for concurrency and unit testing, sane \emph{zero} values, lack of pointer arithmetic, inheritance and implicit type conversions, easy-to-read syntax, producing a statically linked binary by default, etc., on -top of that, the language has got a cute mascot. +top of that, the language has got a cute mascot. Thanks to the foresight of the +Go Authors regarding \emph{the formatting question} (i.e.\ where to put the +braces, \textbf{tabs vs.\ spaces}, etc.), most of the discussions on this topic +have been foregone. Every \emph{gopher}~\footnote{euph.\ a person writing in +the Go programming language} is expected to format their source code with the +official formatter (\texttt{gofmt}), which automatically ensures that the code +adheres to the one formatting standard. Then, there is \emph{The Promise} of +backwards compatibility for Go 1.x, which makes it a good choice for long-term +without the fear of being rug-pulled. -Due to the foresight of the authors of the Go Authors regarding \emph{the -formatting question} (i.e.\ where to put the braces, tabs vs.\ spaces, etc.), -most of the discussions on this topic have been foregone. Every -\emph{gopher}~\footnote{euph.\ a person writing in the Go programming language} -is expected to format their source code with the official formatter -(\texttt{gofmt}), which automatically ensures that the code adheres to the -official formatting standards. -\n{2}{A word about Nix} +\n{2}{A word about Nix/devenv} Nix (\url{https://builtwithnix.org/}) is a declarative package manager and a functional programming language resembling Haskell, which has been used in this project in the form of \texttt{devenv} tool (\url{https://devenv.sh/}) to -create declarable and reproducible development environment. The author has -previously tried Nix directly with \emph{flakes} but using \texttt{devenv} was -nice as it effectively exposes only a handful of parameters for configuring the -whole thing and there is no need to manage the full flake, which is of course -still an option for people who choose so. +create \textbf{declarable} and \textbf{reproducible} development environment. +The author has previously used Nix directly with \emph{flakes} and liked +\texttt{devenv}, as it effectively exposed only a handful of parameters for +configuration, and rid of the need to manage the full flake, which is of course +still an option for people who choose so. See \texttt{devenv.nix} in the +repository root. \n{1}{Application architecture}