427 karma · joined April 15, 2013
There are several good quality distributions. Linux Mint is often mentioned, it comes in different flavors, including its own Cinnamon, which would also not feel too alien to the average Windows user. In my opinion, Fedora is also a good choice based on the last few years of running it on various laptops.
It's very easy to run some popular distribution in a virtual machine to get a feel for things if you're just curious.
Maybe there are good reasons for Wayland to be the way it is, but my experience is that it's unnecessarily limited, it's in the way and "the rest" doesn't have these problem (Windows, Xorg, ...) so I'm not particularly fond of Wayland, even if it does a lot of things fine and it is quite stable (in my experience).
I also really like using qr codes to transfer a configuration to a phone (mostly used by me once when I replaced my phone): https://www.cyberciti.biz/faq/how-to-generate-wireguard-qr-c...
I also really like that its development is fairly open (it's on github). From a more technical point of view, I think C# is a slightly better Java. A pretty nice language overall. It's not gui-or-nothing with dotnet core so it's not too difficult to create workflows for ci/cd pipelines, although the .net framework solutions we still have aren't too much harder to script: msbuild is pretty capable.
This is something I also had to accept about HA. It runs in a VM in my case so it worked out-of-the-box, but you don't just ssh to it after installing it, and the ha> prompt is just a bit different. So far, it hasn't been in the way, although it occasionally takes time to find out how to do things.
It's very flexible though, and apart from devices in your house there are many outside sources of data to use, like weather data, sun elevation or trash pickup dates. The HA app on your phone gives you many sensors usable in a flow. The time spent on it usually results in something worthy of that time, in my experience.
[1] https://en.wikipedia.org/wiki/Earth%27s_magnetic_field [2] https://en.wikipedia.org/wiki/Dynamo_theory
Many libraries and/or frameworks come from companies you could argue cannot be trusted (Meta, Google...) but do you shy away from anything they produce and stick to something developed independently somehow? In the case of .Net: it has been around for a long time, and it has changed drastically. It was closed source, Windows-only and it wasn't sleek. Then they rebooted the whole thing into .Net Core. Open source, platform independent, much thinner, development in the open.
> Some people claim .NET developer ergonomics on Linux are fine now, but those I know personally that tells me this are using VSCode, which I consider a rather shoddy piece of software.
My personal experiences with VSCode and the recent C# extensions have been fine for small projects, but if that's not your thing, there's also JetBrains' Rider, which I have very good experiences with as well.
> Maven is a turd, but a very solid one when you've figured out the XML incantation you need. I'm not sure what the alternatives are in .NET-land, or whether I can feel that I trust that they will work fine in ten years, like fifteen year old Maven projects tend to do.
The package manager aspect is Nuget in the .Net ecosystem. It's easier than Maven in the sense that you can control it from your IDE or from the command line, instead of having to edit your pom.xml or the .Net equivalent (which has one extra layer when compared to Maven; solutions containing projects).
> Java has Wildfly. What's the equivalent in .NET? Running a MICROS~1 Windows Server with IIS? That's not an option. The equivalent in .Net is Kestrel, which is part of ASP.Net, and can run on Linux. It's a little less work to setup than Wildfly (which is not a lot of work either) because it's bundled.
> And so on and so on. It's surely not for everyone but I think Microsoft has taken a great turn with it after the "reset". Is it going to be like this forever? I don't know, but looking at the past, at the direction Microsoft has taken it, I think it's gotten much better.
Of course, I wouldn't advocate rewriting your Java-based softwarescape into .Net (or the other way around) lightly, way too expensive and Java will probably get the job done.
In my experiences with C#, things like named params have been nice, even if it's often just syntactic sugar; these things can be quality of life improvements for the programmer without changing anything about the goal.