To see and play with what people are building with Nix on Replit check out the #nix hashtag here: <a href="https://replit.com/apps/nix" rel="nofollow">https://replit.com/apps/nix</a><p>Users vary from teachers building environments for their classrooms, to hackers tinkering with emulators, to kids making old games like run online.<p>We think we’re just scratching the surface with what we can do with Nix. It’s an outrageously underrated technology.
See <a href="https://nix.dev" rel="nofollow">https://nix.dev</a> for the best education resource.<p>ps. to run nix on gitpod use <a href="https://github.com/gitpod-io/template-nix" rel="nofollow">https://github.com/gitpod-io/template-nix</a><p>pps. i'm doing a talk on the 6th on nix. Cya there? <a href="https://twitter.com/GeoffreyHuntley/status/1442475105427152899" rel="nofollow">https://twitter.com/GeoffreyHuntley/status/14424751054271528...</a>
> For reasons of security, this user does not have root privileges, and therefore cannot install packages using a traditional package manager like APT.<p>Okay, I'm going to nitpick: Termux proves this isn't a requirement of apt, just most distros using it, and in any event fakeroot/proot would solve it if that was the goal. Of course, nix is a mostly good system with loads of other benefits; it's only that specific reason that feels weak.
I want to love Nix but I just can't get it. Worked with it for 14 months and found I struggled to make small changes meaning we had to depend on DevOps for things I could whip up in Docker and bash in minutes. I don't even really know why I struggle with it so much, but the startup I'm working for mentioned using it and I just shuddered thinking about it.
I tried to like nix. I spent many hours tweaking my macOS setup but now I’m back to brew. The nix language is just too foreign to my way of thinking. I love the concept behind it but the language is a huge barrier to entry to many people and I believe it will not gain nearly as much traction as it deserves until this is addressed.
Kudos to the author(s), this article really is a nice written technical introduction, it has all the bases covered for such writing:<p>* it explains in plain English what Nix is.<p>* it provides additional resources<p>* it has hands-on, guided, deliverable, tutorial.
This is a better introduction to Nix than the official one. One minor nit:<p>> Functional languages are composed of functions that take some input and produce some output. Every time a function is executed with a given input, it will return the same output.<p>Surely that is a property of <i>pure</i> languages, not functional ones. Maybe there are no pure imperative languages but I don't see why you couldn't have one. In fact it would probably make way more sense for Nix given how much easier imperative languages are to understand.
> Functional languages are composed of functions that take some input and produce some output. Every time a function is executed with a given input, it will return the same output.<p>I think this is not true. If it was this way, there would be no way to read data from an API. read('<a href="https://news.ycombinator.com" rel="nofollow">https://news.ycombinator.com</a>') will not return the same output everytime.<p>And it would not be possible to keep track of anything. No counting, no transformation of data, nothing.<p>Googling a bit indicates that people use a mental trick and define the state part of the input of the function. So in terms of getUrl() the current state of the internet is part of the input of the function. And when counting something, the function gets the old sum as the input and outputs the new sum which gets stored in a different place than the old sum so the old sum "did not change".<p>I see a lot of overhead coming from these mental gymnastics with no benefit. Any short example that shows a benefit?
Was guix considered at all? If so, what were the negatives?<p>I'm personally getting more enjoyment learning this style of environment and OS management with a more established language for the configuration.