4 ms·
Here's my problem. I breezed through your explanation with great interest and became more curious than ever to try Nix out at some point - I've heard tidbits a
by i336_ 9y ago
Here's my problem.
I breezed through your explanation with great interest and became more curious than ever to try Nix out at some point - I've heard tidbits about it over the past few months and found it to be a fascinating project.
Then I read some of the other comments in this subthread, about Nix being Haskell and Guix being Scheme, and how the internals don't conform to the principle of least surprise within their development domains - and became sad.
On the one hand, there are going to be teething problems, that's fine.
On the other hand, if I'm learning a new package manager, I ONLY want to learn package management. My brain gets really confused if I don't stay highly domain-specific when learning new things. So if you present me with "you need to learn B to grasp and work with A" you'll just get a duck trying repeatedly to jump up over the curb and failing. Looks hilarious, maybe, but very impractical.
I don't know Haskell or Scheme yet, which puts a great dampener on me using Nix for a bit.
As another practical example, emacs and vi do greatly interest me (particularly emacs' flexibility), but I'm not interested in having to learn Lisp or memorize a Nethack labyrinth of single-character keyboard commands (and the scopes for what works with what and where).
I suspect I might pick up emacs at some point after I've played with Lisp/Scheme/et al for a while, but that's not right now.
TL;DR: It's a strain for me to learn new things (basically do anything that requires focus and can't be done with passive autonomy) if my mental stack already has anything in it. AKA, I have a monumentally stupid variant of ADHD that gives me learning difficulties.
- thomastjeffery 9y agoTo be clear, Nix isn't haskell. It has its own domain-specific language. The documentation is a total mess, and months into using NixOS, I still don't really understand it. That being said, NixOS is the best damn OS I have ever used. Period. Installing NixOS is a total breeze. It's magical. 1. Boot live CD 2. Mount partitions 3. Write a simple configuration.nix 4. nixos-install 5. Boot a complete system, and log in with the user you defined in your configuration.nix (with a hashed password and everything). nix-env lets you install packages in your home directory (without root). nix-shell lets you create a special environment with specific packages, etc. and run a shell in that environment. nixos-rebuild [switch test boot] (as root) creates a new system according to your modified configuration.nix. If you use switch, it (re)starts updated/new services all on its own. If you broke your system, just reboot, and pick the second most recent boot entry, and you will be back where you started. TL;DR NixOS is well worth the effort. The benefits far far outweigh the headaches, and there is only room for improvement. You will start with a system that you cannot break!
- i336_ 9y agoHmm. Alright then, I'll keep it in mind. One question: can I remove systemd? :)
- nagvx 9y agoIt may be worth mentioning, if you want to avoid systemd, that Guix has a Scheme-based init system called Shepherd: https://www.gnu.org/software/shepherd/ https://www.gnu.org/software/shepherd/
- i336_ 9y agoOh TIL, thanks. Nice name :)
- thomastjeffery 9y agoAFAIK, NixOS relies heavily on systemd. Any particular reason you don't want it?
- i336_ 9y agoI guess not. I'm just still running Slackware, so I haven't needed to grapple with it just yet - and I'm holding out hoping to find that one other distribution that also doesn't use systemd so I can use that instead. :P I've heard good things about Void Linux, I'll likely have a look at that at some point. On the flip side of the coin, I've kind of accepted that everyone who uses Linux has to put up with systemd now, so I'll accept my fate eventually. It's just that I value constructive and positive communication, I don't like the systemd team's blatant arrogance, and I consider it a corporate abuse of power that nothing has been done to curb or deal with it. (I hope I never have to deal with Red Hat in a business setting. Feathers, sparks, fur... everything would fly, and it wouldn't be pretty.)
- thomastjeffery 9y agoAs far as I can tell, the general hatred and fear of systemd is overblown. I have never had an issue with it. In fact, systemctl has been much more consistent for me than init services ever were.
- kazinator 9y agoIf you don't want to memorize single-character keyboard commands, why does vi greatly interest you? How do you plan to put it into use without those commands?
- i336_ 9y agovi[m] is interesting because - people talk about how rapidly they can perform complex edits with few keystrokes, which is something I most definitely can't do with Geany (a Notepad++ clone that made me wish Notepad++ worked on Linux); and - it's a standard utility that you can generally expect to be available in some form on literally every UNIX (especially server environments). So, basically I'm being pragmatic. I'm at the point where I'm wondering about building my own text editor (something I've wondered about for several years, actually), but that immediately introduces a software-installation problem if I want to be able to bring that editor to other machines. I have a small modicum of knowledge about how to get by in vi, but it's extremely barebones - exiting, copy/pasting (I think the wrong way, heh), not much else. I definitely could learn significantly more, but I just have a massively hard time fielding the idea of "okay let's play with the text editor for a few hours". Sure, once I was actually doing it I'd probably find it fun, I just can't convince my brain's broken scheduler that it's not actually a waste of time :D As an aside: I'm wondering about building my own editor because I want something that can jump around text similarly to the Canon Cat and which has syntax highlighting and autoformatting similar to QBasic/QuickBASIC - and I'm frankly petrified by the idea of adopting a text editor that uses Blink for rendering. Blink (aka Chromium) is like Flash meets Java for UI design nowadays, it's almost like crack, and I want to do everything I can to stay as far away as possible from it. This is not because the systems using it are not well-designed or -built, but because I fundamentally disagree with the philosophy and idea of using a Web rendering engine for tasks like communication or text editing. HTML5/CSS/JS/WASM is the world's biggest Rube Goldberg "safely run arbitrary code from remote servers" in existence; it wreaks enough havoc on the Internet, I don't want it leaking into my desktop too. My main complaint is the W3C: they produce specifications that are too narrowly scoped and at too frequent a rate for the associated implementations to be operationally cohesive. The code for each feature in isolation might be excellently architected and written, but as a whole the amount of memory and CPU churn undeniably associated with rendering engines is significantly higher than would be found in platform-native (or even cross-platform) solutions. You can definitely argue "well that's how things are now, the Web will improve as time goes by"; I'd argue that no, things have always been a mess in the Internet community, and nowadays the driving forces are all companies with advertising and/or consumer-consumption interests. This in itself isn't necessarily wrong, but it means that the focus is "is it good enough? okay, ship it" and there's no conservative holding back until what gets released is of extremely high quality. EDIT: FOUND IT. This was the reference I was looking for about how the Internet's been crazy for years. The link referenced here is from 1998: https://news.ycombinator.com/item?id=10684426 https://news.ycombinator.com/item?id=10684426 (there's more commentary in the article itself - https://news.ycombinator.com/item?id=10682003 https://news.ycombinator.com/item?id=10682003 - the parent posts to the excerpt I linked were pretty big).