tex: update go/nix bits
This commit is contained in:
parent
b029ddeede
commit
bc639e54c1
36
tex/text.tex
36
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}
|
||||
|
||||
|
Reference in New Issue
Block a user