1
0

tex: update go/nix bits

This commit is contained in:
leo 2023-05-25 14:06:04 +02:00
parent b029ddeede
commit bc639e54c1
Signed by: wanderer
SSH Key Fingerprint: SHA256:Dp8+iwKHSlrMEHzE3bJnPng70I7LEsa3IJXRH/U+idQ

@ -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}