Pithy nix pitches?

Some time ago I asked a question on what arguments do you use to increase nix adoption.

These days I’m curious about metaphor and storytelling.

  • What are some clever, funny, outlandish nix pitches you’ve created or heard?
  • What metaphors for what nix is resonate with you?
  • What story can nix tell for those in the trenches of digital systems?
1 Like

Nix: dependencies without the hell.
Nix: easy IaC

2 Likes

Here’s a short pitch I used recently:

title: ‘How and why I use Nix’

The problem

I develop a project, using

  • compilers
  • libraries
  • tools
  • etc.

How to ensure that you can easily use, or continue development on, the project?

Or myself, six months from now when I’ve forgotten how it works?

Also: dependency nightmares

  • Package X will only work with certain versions of package Y.
  • Package Y will only work with certain versions of package Z.
  • and so on…

If I install the version of package X needed for your project,
it will overwrite the version of package X I need for my project!

Nix vs Docker

overlap

Nix vs Docker : suggestion

Use Nix to package software or a development environment.

Use Docker if you really need the container features, e.g.

  • a specific OS
  • communication between multiple “machines”

Can also use Nix to build Docker containers.

Nix flakes

Technically an experimental feature, but…

  • Been around for years
  • Widespread adoption

Where to get Nix

I recommend the installer and quick start guide from zero-to-nix.com.

More documentation (and another installer) available at nixos.org.

Direnv

Not Nix-specific, but very useful.

Automatically load the right environment when you CD to a directory.

Available from direnv.net

NixOS

An operating system based on Nix.

Available at nixos.org.

Something to be aware of

There are hyphenated and unhyphenated versions of many commands

The unhyphenated versions are for working directly with flakes

The hyphenated versions are for everything else

E.g., nix-shell and nix shell are two different commands

4 Likes

Recently i’ve change my tac to, to ‘nix isn’t for you’ . The reverse psychology works. (every time).

However, nix is very close to tipping point… Tipping point (sociology) - Wikipedia

When Nix reaches this point (or Guix) then my work here is done, and i can return to the year 2038…

Loving those meme’s…

get them posted to Reddit immediately

https://www.reddit.com/r/NixOS/top/?t=all

Make more…more meme’s…meme’s everywhere!

3 Likes

Don’t worry, it’s just JSON on Steroids with a Superpower [of the string context]!

4 Likes

This depends a bit on the audience, but for Ruby, JS and Python developers at my company:

Would you use a project without lock files?
No
Then why aren’t you locking the Ruby version and the native libraries that your application depends on? Use Nix to be able to.

I did a Nix workshop on this with some slides: Nix Workshop

Which of course includes:


Another pitch was getting a development environment up and running for the biggest legacy application at my company. It is famously painful to do so.

Write a mkShell (using devenv in my case) and show how a single command can levitate multiple pages of setup documentation. This got some people really impressed!

6 Likes

In my more naïve days, this once came out of my mouth: “Puppet is just a poor man’s NixOS”. I’ve come back to reflect on that, though, it did get some people to try it out. :sweat_smile:

Or this one: “It’s like magic, except the magic can be explained, unlike other magic…”

3 Likes

some great slides there, really good!

Do you have a recording of your talk? Can you make one? And upload it?

1 Like

Thanks a lot :smile: I’m not that comfortable making one without audience, but when I do another Nix talk at my company I’ll make sure to record it. :+1:

1 Like

Love the part with “I’m biased but you know that already”.
Reminded me of a one of our repos where I explain the top level files in the Readme and next to “shell.nix” I just wrote “ask Nebucatnetzer if you really want to know” :grin: