The product of a chat with @QuazarOmega@lemy.lol

You are viewing a single thread.
View all comments View context
13 points

I don’t really care about the declarative/imperative thing, to me how many commands you “really need” is beside the point. This is essentially the same argument as the people who say “git is not complex because you only really need checkout/commit/push, just ignore all the other commands.” This doesn’t matter when the official documentation and web resources keep talking about the other billion commands. Even home-manager has this warning at the very top of the page that basically tells you “you need to understand all the other commands first before you use this,” and “if your directory gets messed up you have to fix it yourself.”

These are exactly the same kinds of problems people have with git.

permalink
report
parent
reply
-2 points
*

I don’t really care about the declarative/imperative thing, to me how many commands you “really need” is beside the point.

Caring is not required, but you need to at least understand the difference.

This is essentially the same argument as the people who say “git is not complex because you only really need checkout/commit/push, just ignore all the other commands.”

It’s really not.

Stage,commit,push,fetch,merge,etc. are all commands you need issue to git in order to manually create a desired state. You need to know what you’re doing, and what to do differently if there’s an issue.

home-manager switch does all of it on its own. You don’t use a different cli command if something’s broken, you change the source of truth. All of the commands you might use in an imperative package manager like apt update/upgrade/install/remove are instead that one command.

Even home-manager has this warning at the very top of the page that basically tells you “you need to understand all the other commands first before you use this,” and “if your directory gets messed up you have to fix it yourself.”

It’s quite a disingenuous interpretation of “beware: home-manager uses the nix language and so gives nix language errors” and “choosing to create configuration files might overwrite the existing ones for that package”…

If you’re using a programming language, expect error messages specific to that language/compiler/interpreter/whatever. And it’s not like every other PM is using standardised error messages, you still need to learn to read them.

Config files aren’t generated randomly, you need to manually enable the configuration of each package. If someone is capable of getting to the info required to know how to configure a package, it’s reasonable to expect that they can guess that changing a config might overwrite the existing one.

These are exactly the same kinds of problems people have with git.

Do tell me how you can solve git problems without changing the git commands.

You’re essentially saying that the terraform cli has the exact same problems as the aws cli, and that’s just ridiculous. They both let you host your blog, but they do it in a completely different way and therefore have different issues.

permalink
report
parent
reply
2 points

So you’re saying that it’s easier to learn C++ than git, because you only need one command (g++ foo.cpp -o foo) instead of many?

permalink
report
parent
reply
-1 points

In case you missed topic of the whole discussion:

Nix has the same mix of conceptual simplicity and atrocious user interface as git,

Nobody at any point compared the difficulty of learning the entirety of each of those systems, and my entire point is that the complexity of nix is not in the cli commands…

permalink
report
parent
reply

linuxmemes

!linuxmemes@lemmy.world

Create post

Hint: :q!


Sister communities:

Community rules (click to expand)

1. Follow the site-wide rules
2. Be civil
  • Understand the difference between a joke and an insult.
  • Do not harrass or attack members of the community for any reason.
  • Leave remarks of “peasantry” to the PCMR community. If you dislike an OS/service/application, attack the thing you dislike, not the individuals who use it. Some people may not have a choice.
  • Bigotry will not be tolerated.
  • These rules are somewhat loosened when the subject is a public figure. Still, do not attack their person or incite harrassment.
3. Post Linux-related content
  • Including Unix and BSD.
  • Non-Linux content is acceptable as long as it makes a reference to Linux. For example, the poorly made mockery of sudo in Windows.
  • No porn. Even if you watch it on a Linux machine.
4. No recent reposts
  • Everybody uses Arch btw, can’t quit Vim, and wants to interject for a moment. You can stop now.

Please report posts and comments that break these rules!

Community stats

  • 7.2K

    Monthly active users

  • 1.3K

    Posts

  • 70K

    Comments