- cross-posted to:
- [email protected]
- [email protected]
- [email protected]
- cross-posted to:
- [email protected]
- [email protected]
- [email protected]
Timothée Besset, a software engineer who works on the Steam client for Valve, took to Mastodon this week to reveal: “Valve is seeing an increasing number of bug reports for issues caused by Canonical’s repackaging of the Steam client through snap”.
“We are not involved with the snap repackaging. It has a lot of issues”, Besset adds, noting that “the best way to install Steam on Debian and derivative operating systems is to […] use the official .deb”.
Those who don’t want to use the official Deb package are instead asked to ‘consider the Flatpak version’ — though like Canonical’s Steam snap the Steam Flatpak is also unofficial, and no directly supported by Valve.
Nix is objectively a bad language. Glancing past the syntax (which is atrocious and the parser is completely unhelpful) it’s just a bad idea to mix lazy evaluation and dynamic typing, the only way to get understandable error messages with nix is to put asserts all over the place, hoping one of them gets triggered by the evaluator.
That said I still love the system to bits and fixing the language actually wouldn’t be that hard: Add static typing, with inference most stuff should just run as-is. Exception are the two or three uses of the y-combinator (yes, seriously, that’s how you recurse in nix) deep in the bowels of nixpkgs, e.g. during stdenv bootstrap. Just make
fix
a primitive, or maybe a plain fold I don’t think nix even needs to be Turing-complete. Reason it’s not being done is that there’s enough other stuff to work on and, well, Stockholm syndrome. Good news: Nix doesn’t support constructing import paths dynamically, that would have been a nightmare to sort out in a static setting.I don’t mind most of the language having FP experience, but I agree the lack of static typing just sucks. I’m using the repl a lot to try and track down why things aren’t aligning quite right when trying different techniques to keep things DRY and organized. Documentation is also a headache as a newb with the multiple ways of structuring a repo while trying to grok all the implicits and how it all gets merged.