this post was submitted on 04 Aug 2024
293 points (89.1% liked)

Programmer Humor

19452 readers
78 users here now

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

founded 1 year ago
MODERATORS
 

Am I out of touch?

No, it's the forward-thinking generation of software engineers that want elegant, reliable, declarative systems that are wrong.

top 50 comments
sorted by: hot top controversial new old
[–] [email protected] 6 points 2 months ago

Who actually hates on declarative/immutable distros as a concept? Its always the actual usability of the specific implementations thats the problem. Stale packages, poor documentation.

[–] [email protected] 8 points 2 months ago (1 children)

This seems rather strawman-y

[–] [email protected] 11 points 2 months ago (1 children)

I posted this meme in three places. Did you not read any of the threads where old, cranky FHS luddites came out of the woodwork to angrily dismiss the concept of immutable distros?

[–] [email protected] 3 points 2 months ago* (last edited 2 months ago) (1 children)

None of which are in this picture. The person in the picture talks only favorably of immutable systems yet is apparently against them, thus making for an easy target by arguing against themselves, so a straw man.

I'm actually positive to immutable systems, I just thought the argument wasn't great. I realize that's about what Skinner does in the meme, but it feels weak.

On second thought, I think the reason it was so jarring is because normally points against Skinner are in top picture, and the bottom picture has him abandon that line of thoughts in favor of something simplistic, thus changing his mind from one side to the other. Whereas here, the points against Skinner are at the end point of the meme, and thus he argues in both directions simultaneously.

[–] [email protected] 11 points 2 months ago* (last edited 2 months ago)

Interesting perspective. Thanks for elaborating. You twisted my original concept in knots and won me over to your read of it.

[–] [email protected] 11 points 2 months ago* (last edited 2 months ago)

I tried bazzite, unfortunately I had some odd quirks that I can only attribute to an immutable OS. Things like window and UI scaling wasn't consistent. My mouse cursor would blow up to twice the size when hovering over one window then shrink back down on another. I can only guess this is because the base filesystem is only readable and it can't write any values for scaling on certain themes/window decorations. While not a huge deal, it comes off as sloppy and inconsistent. It's not a great user experience and first impressions are everything. It's easy to make a first impression, it's damn near impossible to make a second one, and my first impression of an immutable OS has been soured. I installed mint 22 and it's been a completely different experience, from window decorations, to time shift backups, system updates, Bluetooth, cinnamon theming, it just works out of the box with little to no setup.

[–] [email protected] 4 points 2 months ago

I am using a immutable Fedora since January and it has been great so far.

[–] [email protected] 7 points 2 months ago

Bazzite has been amazing for me!

[–] [email protected] 16 points 3 months ago (1 children)

Honestly how I feel right now, well kinda. I was using fedora silverblue but apps kept crashing and shit just wasn't working out how I wanted. I was excited to try VanillaOS until I did... It was annoying. I was hoping for a system that made it so I can seamlessly use dnf, pacman, and apt in the terminal and it would figure out all the containers for me but not at all. VanillaOS was too much of a hassle to keep track of everything and was just eh. I got fed up enough so I just installed NixOS today and so far I'm loving it. It's not as hard as I thought it would be but also I'm not doing anything to advanced yet. I plan on messing around with home-manager later. So far NixOS seems like it's exactly what I was looking for but all this time I avoided it

[–] [email protected] 20 points 3 months ago (3 children)

I bet NixOS will be kinda cool once they get a proper wiki in like 10 years or so

[–] [email protected] 3 points 2 months ago

yeah I'm feeling that now...

[–] [email protected] 5 points 2 months ago (1 children)

They have two. If the complaint is that neither wiki is as rich as the Gentoo or Arch wiki, consider that perhaps NixOS users don't need as much supplementary advice for configuring their systems.

[–] [email protected] 4 points 2 months ago (1 children)

Every tutorial should be crafted for some hypothetical user stupider than their current stupidest user.

[–] [email protected] 2 points 2 months ago

By induction, that will only make your user base stupider.

[–] [email protected] 3 points 2 months ago

Wiki and official social platform to share configurations and flakes ect! But my god the documentation.....

[–] [email protected] 31 points 3 months ago (4 children)

I'm not against immutable distro's on principle. I imagine they still have some kinks to iron out, but I haven't looked in on them for a while.

My opinion on these things is; if it's a superior system, then it'll become the new standard, that's always what happens, and the naysayers are largely irrelevant. Just like computers, smart phones, the internet, etc.

[–] [email protected] 6 points 2 months ago

if it’s a superior system, then it’ll become the new standard

Not even remotely close to how it works. Remember: we had pulseaudio as the "new standard" for a decent while.

[–] [email protected] 2 points 2 months ago

It's been two decades. What kinks do you think NixOS has yet to iron out?

[–] [email protected] 13 points 3 months ago (1 children)

if it’s a superior system, then it’ll become the new standard,

That's not how it usually works, unfortunately...

[–] [email protected] 5 points 2 months ago

Yeah, everyone knows the new standard will be whatever gets the backing of the porn industry.

[–] [email protected] 20 points 3 months ago (1 children)

Yeah. I think they'll catch on in much the same way that lock files have become the standard in many languages. IMO, it just makes more sense to declare all dependencies atomically. I also think/hope it will supplant our overreliance on Docker containers to achieve these kinds of guarantees (where it actually makes sense or presents undeniable benefits).

[–] [email protected] 6 points 3 months ago* (last edited 3 months ago) (1 children)

In the case of docker I'm already at the point where I no longer think it's necessary. At my current job our stack is JS, PHP and Python. 3 interpreted languages, we then build on Ubuntu and deploy on Ubuntu. I don't think our project really needs docker, even though it does use it. We also have wasm/wasi prepping to eat Docker's lunch.

[–] [email protected] 22 points 3 months ago* (last edited 3 months ago)

I’d look into building all of that in a flake just so you can encapsulate (and have a central version control of) all of your dependencies in case something does change.

I’m a bit of a Nix dork but I tend to try and declare my entire dev stack in a flake so it can follow me to every machine. It offers some of the “it works on every machine” guarantees that Docker offers while also forcing the compilation of the stack to happen natively (or at least pulls in some content addressed cache that offers security by being the exact hash for the whole dependency graph). I like that

Here’s how I used the Nix way to declare an interactive Python scraper the other day. With this method, I can lock dependencies between machines as a matter of course without having to use Docker:

{
  description = “Weed Scraper”;

  inputs = {
    nixpkgs.url = “github:NixOS/nixpkgs?ref=nixpkgs-unstable”;
    utils.url = “github:numtide/flake-utils”;
  };

  outputs = { self, nixpkgs, utils }: utils.lib.eachSystem [“x86_64-linux”] (system: let
    pkgs = import nixpkgs { system = system; };
  in rec {
    packages = {
      pythonEnv =
        pkgs.python3.withPackages (ps: with ps; [ webdriver-manager openpyxl pandas requests beautifulsoup4 websocket-client selenium keyboard ]);
    };

    devShell = pkgs.mkShell {
      buildInputs = [
        pkgs.chromium
        pkgs.undetected-chromedriver
        packages.pythonEnv
      ];

      shellHook = ‘’
        export PATH=${pkgs.chromium}/bin:${pkgs.undetected-chromedriver}/bin:$PATH
      ‘’;
    };
  });
} 
[–] [email protected] 2 points 3 months ago (3 children)

Which declarative systems exist besides nix? Don't say ansible. It's barely declarative.

Anti Commercial-AI license

[–] [email protected] 5 points 3 months ago

GUIX is a good example.

Don't say ansible. It's barely declarative.

True, but it uses a common language in its Playbooks, which is a significant advantage. I'd like nix if I didn't need to use nix the language. It's great concept and the portability is awesome.

[–] [email protected] 2 points 3 months ago

BlendOS is a declarative Arch.

[–] [email protected] 18 points 3 months ago* (last edited 3 months ago) (1 children)

GUIX for one.

GUIX is to NixOS what Gentoo or Manjaro are to Arch.

I’ll probably try it someday when I get bored enough of systemd.

[–] [email protected] 4 points 2 months ago (1 children)

Gentoo or Manjaro are to Arch? What do you mean? Those two are very different from each other especially in their relationships to Arch.

[–] [email protected] 8 points 2 months ago

Duly noted. I DO NOT use Arch, btw. ;)

What I meant to try and say is that GUIX is like NixOS for Chad programmers.

load more comments
view more: next ›