- 2014 X1 Carbon: Amazing screen, so-so keyboard, great battery life. Heavy. Don't remember the fan noise.
- 2015 X1 Carbon: Horrible dim screen (yes, I know you can BTO an upgrade, but we got the defaults), good keyboard, too heavy, horrid battery life that was especially painful as I spent 2015/16 mostly on the road. Fan noise was a frequent nuisance when I was in my home office.
- 2022 X1 Yoga Gen 6 (https://taoofmac.com/space/blog/2022/12/03/1600): Amazing display, good keyboard, nice weight, battery life seems OK for Windows but pretty short compared to my MacBook (as usual these days). Had to gimp it to have a quieter fan, and I've had days when my IdeaPad Flex 5 (which runs Fedora) lasts longer, which is just... odd.
As to the Carbon carrying an Intel Ultra... I really like Lenovo, but I bought an IdeaPad Flex 5 with my own money because it used an AMD CPU. Still haven't regretted the multi-core performance, or the iGPU (which was pretty great for that time).
Had to do the same with my IdeaPad Flex 5, which always felt super infuriating.
I ended up so frustrated with it that i've ultimatly caved and bought a macbook. I guess i'll have to stay on desktop machines for x86 until someone finally figures out how to make laptop that runs linux and stays silent under heavy load.
Sure, it's nice to implement parsers/compilers in it (see ̶N̶̶̶i̶̶̶x̶̶̶, Elm, DHall) and it's to some extent popular for backend web development, but I don't think the strong static type system is such an advantage as advocates want you to believe.
Of course it's safer (and faster) than dynamic languages like Python (Ruby, JavaScript), but in my personal opinion, you don't gain that much if you compare it to something like Rust, Java or even Go.
In particular the common abstractions (Monad, Applicative, Functor) are used very differently in different libraries (everyone seems to want to write her own DSL), so it's hard to get comfortable with third party libraries.
Furthermore it's still the case, that there's not much really interesting SW made in it. Some years ago you could argue, it's because of familiarity, but (static typed) functional programming is part of CS curricula for at least 10 to 20 years now.
Lastly it's just incredible hard to estimate runtime characteristics (clock-time, memory usage), because you never know which compiler optimizations kick in or not.
It's a nice language, but again, I don't think it's such a panacea as proponents often tell you.
And to be snarky: If Haskell is such an advanced language to make implementing reliable SW such a breeze, it should be part (maybe as a dependency) of more SW.
EDIT: Nix is implemented in C++ as correctly pointed out in a comment.
TidalCycles would like to have a word with you. Easily one of the most interesting and unusual pieces of SW that currently exists.
[0] https://www.researchgate.net/publication/221531443_Pattern_R...