• Mx. Alba
  • Registratie: Augustus 2001
  • Laatst online: 27-06 10:15

Mx. Alba

hen/hun/die/diens

danslo schreef op woensdag 3 juni 2026 @ 13:52:
Hoe ik bijna elk besturingssysteem zie is als "opaque cumulative state". Je voegt een pakketje toe, past wat config in /etc aan, daarna weer wat dotfiles in je home directory, bestanden in /opt or /usr/local, etc. Na een tijd heb je geen idee meer wat je hebt gedaan. Dat probleem lost NixOS voor mij op.

En meteen 3 vliegen in 1 klap ;-) Want een groot deel van je dotfiles wordt declaratief, en het is reproduceerbaar over meerdere omgevingen (bijv. je laptop).
Ik moet vooral denken aan wanneer je je computer vervangt en je weken bezig bent voor je alles weer een beetje hebt zoals je het had. In plaats daarvan ben je weken bezig om NixOS in te richten maar daarna is het een kwestie van configuratie kopiëren naar de nieuwe machine en Bob's your auntie!

Het is alleen een echte hetze als het uit Hetzerath komt, anders is het gewoon sprankelende ophef.


  • ookhoi
  • Registratie: Maart 2007
  • Laatst online: 17-06 16:07
delphium schreef op woensdag 3 juni 2026 @ 12:59:
Ik begrijp je argument, maar voor mij geldt het simpelweg niet. Ik bouw/configureer mijn systemen en daar maak ik vervolgens tien jaar of langer gebruik van. Ik wijzig nooit, ik heb zeer weinig onderhoud
Maar je hebt in 10 jaar tjid toch major versies van software die aanpassingen aan je config vergen?
Met emerge kan je ook wel iets configureren met het "--config" argument. Ook heb je voor webapplicaties bijvoorbeeld webapp-config. Daarmee stel je basis dingen in zoals een port en een subdirectory. In de praktijk merk ik dat ik liever handmatig een configuratie doe, met bijvoorbeeld een reverse proxy en een letsencrypt certificaat.
Ik begrijp op zich wel dat je liever met de hand configureert als het alternatief via de commandline moet. Maar dat is niet te vergelijken met declaratief configureren. Ik moet er niet aan denken configuraties met de hand te doen. Wellicht een stukje beroepsdeformatie.
Misschien lees ik het verkeerd, maar waarom update je jouw systemen elk halfuur?
Omdat het kan :-) Voor de load maakt het niet uit of je om 8 uur update van een library hebt, en om 10 uur van een service, of dat je die beide updates tegelijk hebt om 15 uur.

Een andere reden is dat bij elke update ook mijn config-changes meegenomen worden zonder dat ik daarvoor met de hand alle systemen zelf af moet.
Kortom, ik zie nog steeds geen voordeel van NixOS, of nix, ten opzichter van wat ik nu gebruik.
En dat is helemaal prima natuurlijk. Daarom zijn er ook zo veel distributies.
Anyway, nogmaals dank voor al je uitgebreide uitleg en voorbeelden. Ik denk dat deze thread er in elk geval wel beter van is geworden ;)
100%!!

  • ookhoi
  • Registratie: Maart 2007
  • Laatst online: 17-06 16:07
Mx. Alba schreef op woensdag 3 juni 2026 @ 14:06:
Ik moet vooral denken aan wanneer je je computer vervangt en je weken bezig bent voor je alles weer een beetje hebt zoals je het had. In plaats daarvan ben je weken bezig om NixOS in te richten maar daarna is het een kwestie van configuratie kopiëren naar de nieuwe machine en Bob's your auntie!
Twee keer gehad. 1 keer met een managed Ubuntu en 1 keer met een managed Macbook. Beide keren geheugenproblemen. Beide keren was ik dezelfde dag weer helemaal up & running dankzij nix Home Manager inclusief m'n complete developer-setup :9

  • delphium
  • Registratie: November 2005
  • Laatst online: 17:23
Maar je hebt in 10 jaar tjid toch major versies van software die aanpassingen aan je config vergen?
Meestal maar kleine wijzigingen. Die handel je in Gentoo af met etc-update. je krijgt dan een diff van de oude en de nieuwe en die kan je mergen, of kiezen voor vervanging van oud of nieuw.

Voor grotere wijzigingen (postgresql bijv.), moet je soms een migratie uitvoeren, maar ook dat is met één commando gefixt.

Verder heb je op Gentoo eselect. Daarmee kun je meerdere slots vullen met verschillende versies van een pakket. Bijvoorbeeld Python, PHP, maar ook je kernel. Het gaat dan om major versies, dus python-13 vs python-14. Maar zelfs als je dit niet gebruikt en je doet gewoon je dagelijkse updates, regelt emerge dit allemaal vlekkeloos voor je.
Ik begrijp op zich wel dat je liever met de hand configureert als het alternatief via de commandline moet. Maar dat is niet te vergelijken met declaratief configureren. Ik moet er niet aan denken configuraties met de hand te doen. Wellicht een stukje beroepsdeformatie.
Welbeschouwd configureer jij ook met de hand. Je schrijft immers je declaraties. Ik neem aan dat die ook niet eeuwig houdbaar zijn. Ik schrijf configuraties en die bewaar ik in git. Heel af en toe zul je inderdaad iets moeten wijzigen, maar ik vermoed, jij niet minder vaak dan ik.
Omdat het kan :-) Voor de load maakt het niet uit of je om 8 uur update van een library hebt, en om 10 uur van een service, of dat je die beide updates tegelijk hebt om 15 uur.
Tja, ik zou ook mijn dagelijkse commando:
emerge --sync && emerge -DNuav @world 
Elk halfuur kunnen uitvoeren, maar dat is echt niet nodig. Wellicht dat jouw systemen de load makkelijk aan kunnen, maar je belast ook de systemen waar je de broncode vandaan haalt. Eens per dag lijkt me ruim voldoende en wellicht kun je zelfs met eens per week uit de voeten. Maar goed, dat moet je zelf weten.
Een andere reden is dat bij elke update ook mijn config-changes meegenomen worden zonder dat ik daarvoor met de hand alle systemen zelf af moet.
Welke config changes? Ik doe echt nooit config changes. Tenzij er echt grote dingen veranderen (apache 2.2 naar 2.4). Maar zelfs als ik wel een config change zou doen, wat is dan het voordeel van nix boven een git-repository?
En dat is helemaal prima natuurlijk. Daarom zijn er ook zo veel distributies.


[...]

100%!!
Ik weet niet of we nu heel erg off-topic bezig zijn, maar ik vind zelf de vergelijking met een andere oplossing best interessant en leerzaam.

  • terabyte
  • Registratie: September 2001
  • Laatst online: 19:53

terabyte

kan denken als een computer

Topicstarter
het is niet specifiek mijn doel om jou @delphium te converteren met deze topic (want gaat niet lukken :)) maar de kern van de zaak is: kun je het declaratief denken waarderen of niet. Want daar zit de uniekheid van NixOS tov alle andere OS-en (Linux distros, Windows, Mac etc). Alle andere OS-en zijn procedureel, zelfs als je het automatiseert.

Hoe dat declaratief denken vervolgens geïmplementeerd is (of je de de Nix taal of command wel of niet mooi vindt) is dan ook een implementatiedetail. Dat Nix is onderbouwd met een proefschrift waarin het probleem en de oplossing duidelijk beschreven wordt vind je ook niet terug bij welk ander OS dan ook.

Alleen het probleem met declaratief denken is dat de IT-massa het concept niet massaal omarmt. Het gaat even niet om Nix, maar bijv. declaratieve programmeertalen zoals Haskell zijn redelijk brilliant maar worden niet omarmd. En dat zie je ook terug bij andere declaratieve concepten zoals Nix. Alleen spreadsheets (Excel) en ReactJS in de frontend-wereld is een voorbeeld van een declaratieve mindset die de massa heeft weten te bereiken. Maar welk probleem loste ReactJS ook al weer op?

  • delphium
  • Registratie: November 2005
  • Laatst online: 17:23
terabyte schreef op zaterdag 27 juni 2026 @ 16:19:
het is niet specifiek mijn doel om jou @delphium te converteren met deze topic (want gaat niet lukken :)) maar de kern van de zaak is: kun je het declaratief denken waarderen of niet. Want daar zit de uniekheid van NixOS tov alle andere OS-en (Linux distros, Windows, Mac etc)....
Om eerlijk te zijn, zie ik het nut er niet van in. Ik geloof best dat als je er eenmaal mee werkt, het bepaalde voordelen heeft, maar ik zie echt geen enkele use case voor mij, waarin een declaratief systeem voordelen biedt t.o.v. de rolling release die ik nu gebruik.

Het komt op mij over als een systeem dat handig is voor mensen die veel experimenteren en elke drie weken hun installatie slopen. Dan heb je het zo weer terug in de gewenste staat. Maar zoals ik al schreef: ik doe decennia met mijn systemen, zonder herinstallatie. Ook ziet mijn systeem er niet hetzelfde uit als twee jaar geleden. Zeker mijn Gentoo-machines gaan geleidelijk met de tijd mee en met mijn behoeften en interesses.

Dus kan ik het declaratief denken waarderen? Ja, maar alleen voor hele specifieke usecases (wetenschap), maar voor normaal dagelijks desktopgebruik, niet echt.

  • terabyte
  • Registratie: September 2001
  • Laatst online: 19:53

terabyte

kan denken als een computer

Topicstarter
Prima, maar dan is de conclusie duidelijk: NixOS (als declaratief systeem) is niks voor jou
Pagina: 1 2 Laatste