| 23 Mar 2026 |
zoë (she/her) | * (i am somewhat reminded of the line i saw in last month's core team meting:
We wonder if we should have more boring people in our project
and seeing everyone's very interesting ideas compared to just the "nix is fun :D functional programming is fun :D if only haskell $ operator tho :( and also not cursed :((" idea i have definitely makes me kinda resonate with that line (which, obviously no problem with that, i am a pretty boring person in general) x)
| 22:52:06 |
zoë (she/her) |
also a proper type system would instant fix this entire class of issues
yeah, nix's lack of a type system is probably my biggest gripe with it; even stripping the cursed/badly designed parts of it, the dynamic nature makes writing nix just landmine after landmine
| 22:52:57 |
zoë (she/her) | anyway i do agree with the solution of making externally-caused errors uncatchable, that makes complete sense to me; it's really mostly runtime errors that annoy me | 22:55:47 |
zoë (she/her) | * anyway i do agree with the solution of making externally-caused errors uncatchable, that makes complete sense to me; it's really mostly runtime errors that frustrate me | 22:55:52 |
zoë (she/her) | i really shouldn't have been, but i was genuinely surprised that the actual evaluator uses c++ exceptions to propagate eval/user-facing errors, instead of using a result type; it just felt... dirty. again, really shouldn't have been surprised, it is the nix codebase after all x) | 22:58:57 |
raitobezarius | my lawyer does not allow me to comment on these matters | 22:59:15 |
zoë (she/her) | xD | 22:59:23 |
zoë (she/her) | fair enough | 22:59:30 |
raitobezarius | it's important to imagine Nix as a 20 years old technology | 22:59:43 |
piegames | In reply to @blokyk:matrix.org i really shouldn't have been, but i was genuinely surprised that the actual evaluator uses c++ exceptions to propagate eval/user-facing errors, instead of using a result type; it just felt... dirty. again, really shouldn't have been surprised, it is the nix codebase after all x) To be fair: try using Result types in C++ in 2005 | 22:59:47 |
raitobezarius | it's also important to imagine that (technical) debt payment have not been popular | 23:00:11 |
zoë (she/her) | i know i know, nix's 2000s-phd-thesis nature keeps catching up to it | 23:00:21 |
raitobezarius | * it's also important to imagine that (technical) debt payment has not been popular | 23:00:22 |
zoë (she/her) | * i know i know, i've very much noticed that nix's 2000s-phd-thesis nature keeps catching up to it :| | 23:00:52 |
zoë (she/her) | * i know i know, i've very much noticed that nix's 2000s-phd-thesis nature keeps catching up to it :( | 23:00:54 |
zoë (she/her) | * i know i know, i've very much noticed that nix's 2000s-phd-thesis nature keeps catching up to it :/ | 23:00:55 |
zoë (she/her) | * i know i know, i've very much noticed that nix's 2000s-phd-thesis nature keeps catching up to it :| | 23:00:57 |
zoë (she/her) | * i know i know, i've very much noticed that nix's 2000s-phd-thesis nature keeps catching up to it :/ | 23:01:01 |
zoë (she/her) | * i know i know, i've very much noticed that nix's 2000s+phd-thesis nature keeps catching up to it :/ | 23:03:13 |
zoë (she/her) | * (i am somewhat reminded of the line i saw in last month's core team meting:
We wonder if we should have more boring people in our project
and seeing everyone's very interesting ideas compared to just the "nix is fun :D functional programming is fun :D if only haskell $ operator tho :( and also not cursed :((" idea i have definitely makes me kinda resonate with that line (which, yeah i am objectively a pretty boring person) x)
| 23:23:43 |
zoë (she/her) | * with all that said, i still do have a question: should it be tagged E/Easy (with the notes from this discussion) and left to be first-time/drive-by contributed? it's not very urgent, and though it doesn't go into the c++ part of the codebase like most other changes will require, i still think it can be a good exercise, especially if combined with some tests | 23:38:22 |
| 24 Mar 2026 |
zoë (she/her) | * (i am somewhat reminded of the line i saw in last month's core team meting:
We wonder if we should have more boring people in our project
and seeing everyone's very interesting ideas compared to just the "nix is fun :D functional programming is fun :D if only haskell $ operator tho :( and also not cursed :((" idea i have definitely makes me kinda resonate with that line (which, yeah i am objectively a pretty boring person, and i'm trying to believe that's okay) x)
| 00:20:16 |
zoë (she/her) | alright i tried to sum it up based on what i understood, but i'm not very confident in that, don't hesitate to tell me if i misinterpreted/misunderstood/misframed something | 00:23:59 |
zoë (she/her) | * alright i tried to sum it up based on what i understood, but i'm not very confident in that, don't hesitate to tell me if i misinterpreted/misunderstood/misframed something | 00:34:19 |
raitobezarius | lgtm | 05:35:46 |
helle (just a stray cat girl) | The idea of technical debt collector comes to mind, anyway. | 08:43:39 |
delroth | it's an stdlib problem more than a C++ problem, most large C++ codebases at the time were using a Result type in 2005, it's just that that knowledge wasn't widespread yet or too publicly available through libraries | 10:25:06 |
piegames | Granted, but still sum types in C++ are a lot less ergonomic than they could be | 10:26:04 |
delroth | yes, but you don't need full sum types capability for a Result type, you basically need the "?" operator | 10:26:56 |
delroth | * yes, but you don't need full sum types capability for a Result type, you basically need the "?" operator / syntax sugar | 10:27:22 |