Earlier quoted context omitted.
> You do not need FP to use pure functions. They are independent from FP. You can be OOP maniac and still use them. This is not true. OOP is fundamentally built around impure operations. Objects are persistent references that you send messages to or that you call methods on (depending on your OOP language of choice). A persistent reference that is stable across different invocations (as opposed to a new reference bei…
> You do not need FP to use pure functions I think this is a bit more subtle, and a bit less interesting to say, than you're thinking it is and responding to. You need to be impure in OOP world but not in every function you write. I write many pure functions in my OOP work; they make the whole thing easier to reason about.
My First Impressions of Nix
321–330 of 354 posts
Re: My First Impressions of Nix
#322If you want to install a package, search for it at https://search.nixos.org The gnome system monitor is gnome.gnome-system-monitor for example https://search.nixos.org/packages?channel=23.05&show=gnome.g...
It sure beats my previous method of finding packages, which was just blind guessing.
I've updated the post to include the correct package name and how to find it.
Re: My First Impressions of Nix
#323Seeing a tweet like the one from Mitchell makes me want to try Nix. Or at least I want to want to try Nix. Then I read the comments here and am reminded that no one can even succinctly explain what Nix is. I've read dozens of comments here and I still don't have a clear idea!
Your mind must be pure to understand Nix. Work on your purity. Just kidding. You might explain why you want to try nix? That would help customize an explanation for you, because there are levels. Umm... here is my attempt. Sorry. Nix is a programming language plus utilities that are useful to define and work with software packages in a reproducible way ( https://github.com/nixos/nix/ ). Each package is called a "deri…
Re: My First Impressions of Nix
#324Earlier quoted context omitted.
Your mind must be pure to understand Nix. Work on your purity. Just kidding. You might explain why you want to try nix? That would help customize an explanation for you, because there are levels. Umm... here is my attempt. Sorry. Nix is a programming language plus utilities that are useful to define and work with software packages in a reproducible way ( https://github.com/nixos/nix/ ). Each package is called a "deri…
I need to review this again, but really helpful. Thank you! Any resources you'd recommend for learning nix?
Re: My First Impressions of Nix
#325The problem Nix wants to solve is a valid one. But there are better alternatives imo, such as the newer distros based on rpm-ostree. You can do atomic upgrades, and easily rollback to a previous known good state if needed. No changes are allowed to a live system. And best of all, it's practically the same in terms of management, there's hardly any learning curve.
If there's a single thing Nix solves, it's being able to declare packages with a pure/functional language.
This ends up enabling all sorts of useful things which relate to packages. e.g. being able to install multiple versions of some package without these overwriting each other. e.g. build container images, declare development environments, run software without installing it, etc.
I think you can get 80% of what Nix does in many use cases without paying a lot of the effort. -- e.g. `asdf` is a tool which allows for installing project-local dependencies of programs.
Re: My First Impressions of Nix
#326Does anyone have any ideas on what the most likely outcome would be for NixOS losing the S3 bucket funding?
Re: My First Impressions of Nix
#327Earlier quoted context omitted.
> Is it a package manager? A build system? Nixpkg is a package manager, which uses the Nix programming language to describe dependencies and build steps. Like all package managers, it has components that could be called a "build system", but that's not its main focus. > An operating system? There's NixOS which is a Linux distro built on nixpkg. But you can also use Nix under other distros. > A container platform? A s…
> Nixpkg is a package manager *Nix
Re: My First Impressions of Nix
#328Earlier quoted context omitted.
Your mind must be pure to understand Nix. Work on your purity. Just kidding. You might explain why you want to try nix? That would help customize an explanation for you, because there are levels. Umm... here is my attempt. Sorry. Nix is a programming language plus utilities that are useful to define and work with software packages in a reproducible way ( https://github.com/nixos/nix/ ). Each package is called a "deri…
I need to review this again, but really helpful. Thank you! Any resources you'd recommend for learning nix?
My strategies:
- keep the documentation open
- install nixos in a vm
- search github for "configuration.nix" to find fully worked examples for nixos. I just cloned anything that looked useful[1] and would grep through it
- read the source code for nixpkgs
- search google and search https://discourse.nixos.org/ when you have an idea of what you want to do to find other people discussing it
It took me a couple days to have a very basic system running and a month to port most of my setup into nix (running some containers, overriding system packages, defining my own packages, running unmodified binaries using nix-ld).
I still use non-nix containers for a few services that I don't want to port over (but if I had known nix when I started I definitely would've used it).
Every step of the way was a huge struggle but the tools I have learned stay useful so I hope it is worthwhile investment. Still sometimes the extra nix friction is really frustrating but I can't help but think Nix or something like it is inevitably the future of software.
[1]: here is my random current list with some good and some bad... https://cgit.euer.krebsco.de/stockholm/ https://github.com/9ary/dotfiles.git https://github.com/baitinq/nixos-config https://github.com/barrucadu/nixfiles.git https://github.com/catern/dotfiles.git https://github.com/contrun/infra.git https://github.com/disassembler/network.git https://github.com/juliosueiras/rasp-nix/ https://github.com/KFearsoff/NixOS-config.git https://github.com/lopsided98/nixos-config https://github.com/Mic92/dotfiles.git https://github.com/moul/nixpkgs.git https://github.com/musnix/musnix https://github.com/myme/dotfiles https://github.com/nix-community/emacs-overlay https://github.com/nix-community/home-manager.git https://github.com/NixOS/nixos-org-configurations.git https://github.com/reckenrode/nixos-configs https://github.com/skogsbrus/os https://github.com/Xe/nixos-configs.git https://github.com/Xe/site.git https://git.immae.eu/perso/Immae/Config/Nix.git https://gitlab.com/pgronkievitz/nixos-configurations.git https://gitlab.com/rprospero/dotfiles.git
Re: My First Impressions of Nix
#329Earlier quoted context omitted.
Explaining what Nix is seems like one of its biggest barriers to adoption. Part of the difficulty is it means different things to different people. My colleague spent a whole lot of time trying to answer this question and ended up with this: My main take away after spending some time learning about Nix is that it embraces the functional programming concept of a pure function. If I give a function a certain set of inp…
It doesn’t help that the term is hugely overloaded. Nix might mean the package manager, the shell, the operating system. There are so many valid permutations of letters; why they chose to reuse Nix for everything is a mystery to me. The other issue is complexity. If you can manage to figure out the jargon, you’re greeted with the requirement that you completely port an entire project to get any benefit, and that’s no…
Re: My First Impressions of Nix
#330Earlier quoted context omitted.
Explaining what Nix is seems like one of its biggest barriers to adoption. Part of the difficulty is it means different things to different people. My colleague spent a whole lot of time trying to answer this question and ended up with this: My main take away after spending some time learning about Nix is that it embraces the functional programming concept of a pure function. If I give a function a certain set of inp…
It doesn’t help that the term is hugely overloaded. Nix might mean the package manager, the shell, the operating system. There are so many valid permutations of letters; why they chose to reuse Nix for everything is a mystery to me. The other issue is complexity. If you can manage to figure out the jargon, you’re greeted with the requirement that you completely port an entire project to get any benefit, and that’s no…