P
Pierre Neidhardt
ambrevar.xyz · Personal blog · on HN since 2018
Pierre Neidhardt writes about Guix, Emacs, and Common Lisp, including using a Lisp REPL as his main shell.
What HN saysHN links his posts as overviews of what makes Guix advanced and of modern Common Lisp practices.
21HN people shared it
6linked it in comments
21stories submitted
946story points
5 years agolast shared
2018people per year2026
Most-shared posts
- 1Guix: An advanced operating system4 people · 314 points · first shared 2019 · 168 comments on HN
- 2Guix: A most advanced operating system4 people · 47 points · first shared 2019 · 12 comments on HN
- 3Emacs Everywhere3 people · 9 points · first shared 2018 · discussion on HN
- 4Modern, functional Common Lisp: myths and best practices2 people · 226 points · first shared 2020 · 155 comments on HN
- 5Modern, functional Common Lisp: myths and tips (2020)2 people · 113 points · first shared 2020 · 19 comments on HN
- 6A blog in pure Org/Lisp2 people · 58 points · first shared 2018 · 24 comments on HN
- 7Why GNU Guix Matters2 people · 16 points · first shared 2020 · 7 comments on HN
- 8A Lisp REPL as my main shell1 people · 149 points · first shared 2021 · 30 comments on HN
- 9What if you lost your computer just now?1 people · 6 points · first shared 2019 · 1 comments on HN
- 10Guix: “Search and Discovery” NLNet Grant 20201 people · 3 points · first shared 2020 · discussion on HN
- 11Eshell versus M-X Shell1 people · 2 points · first shared 2020 · discussion on HN
- 12Technologies for Non-Programmers1 people · 2 points · first shared 2019 · 1 comments on HN
- 13Emacs Everywhere1 people · 1 points · first shared 2020 · discussion on HN
- 14Guix packaging1 people · first shared 2019
- 15Lisp repl shell1 people · first shared 2021
What HN people wrote when they linked it
rgoulter · 2021-09-10
Fish shell's joke tagline is "Finally, a command line shell for the 90s".
I believe that the developer experience for all sorts of tooling has improved dramatically over the last 15 years or so, coinciding with GitHub's rise in popularity.
e.g. the plugin ecosystem for Vim or Emacs have improved, let alone options like VSCode. Tools like Vagrant made it easier to work with VMs. Containerised workflows have similarly improved some cases. Languages like Go-lang or Rust seem pretty nice in some cases. etc.
Shells are also the kind of thing that developers use. I don't believe bash is the best we can practically get. -- Though.. I have heard of other, fancier shells; (or cool ideas like https://ambrevar.xyz/lisp-repl-shell/ or http://howardism.org/Technical/Emacs/literate-devops.html). These haven't caught on.
one-punch · 2021-01-22
You might be interested in using Guix [1] for reproducible research, as is reported earlier (for genomics analysis) [2] and still actively developed [3].
As a bonus, Guix and Nix [4] allow for modular and composable pipelines, where you can swap different components (such as to upgrade Python from 3.8 to 3.9, or to enable certain optimizations for some Python libraries, or to run on MacOS and Linux while keeping the whole stack more or less the same), which would be more difficult to do reproducibly with other tools such as Docker (composing Guix or Nix functions are easier than composing DOCKERFILE or Docker Compose).
[1]: https://ambrevar.xyz/guix-advance/
[2]: https://academic.oup.com/gigascience/article/7/12/giy123/5114263
[3]: https://hpc.guix.info/blog/2020/11/hpc-reproducible-research-in-guix-1…
[4]: https://builtwithnix.org/
vseloved · 2020-04-16
There's a pretty good overview in this writeup (which is the most recent one): https://ambrevar.xyz/modern-common-lisp/index.html
opan · 2019-05-21
Advanced meaning powerful with lots of features and functionality. There's a good writeup on it here[1].
[1] https://ambrevar.xyz/guix-advance/index.html
Crestwave · 2019-05-03
It's not just like those at all... did you think that I was saying that you can just compile things manually or something? You can define build options and such for a group of packages using Guix; there just isn't an abstraction like USE flags. You can find more info at https://ambrevar.xyz/guix-advance/index.html#orgc3c05c9.
And I don't consider its other features just "some nice addons". It's easy to build things from source; in fact, it automatically does it by default if a binary isn't available. It's contained in a directory, you can roll back to a previous state, it's reproducible, everything can be configured through one file, etc.
Guix is one of the package managers most different from apt and such; if there's anything it's similar to, it's Nix, which IIRC it's based on/inspired by.
Also, I'm curious as to what it is that you do that they shun? Is it working on proprietary software or something?
Ambrevar · 2019-01-15
Others gave good answers I think, so I'll just address your points directly.
> [Nix is] so complex with layers of interesting syntax and puncation
Precisely. Guix uses Scheme all over the place. It's just _one_ language for everything, not multiple languages. As a result, it's easier.
Scheme yields very easy-to-read declarations (see https://ambrevar.xyz/guix-packaging for some examples), so JSON & friends don't add much here.
> Parsing and automation
Parsing couldn't be simpler than using the language itself! There is no need to write an interpreter here.
> Why do I need to learn yet another language just to configure and manage my system?
That's precisely part of my thesis: with Guix, you only need to know Lisp/Scheme (which users might already know since it's a general-purpose language). Programs going for a DSL are effectively forcing everyone to learn a language for the sole sake of using the programs.