I'm curious as to what everyone's reasons are! The Linux desktop has came quite a far ways in the last few years and is improving every day. I'd say for most people, Linux could easily replace Windows as their daily driver nowadays.
I'm curious as to what everyone's reasons are! The Linux desktop has came quite a far ways in the last few years and is improving every day. I'd say for most people, Linux could easily replace Windows as their daily driver nowadays.
I use Linux at work regularly, and often prefer Linux and suggest Linux for work projects. It's an extremely capable OS for infrastructure and embedded applications. It's a pain as a desktop though. It's just clunkier and harder to do things. Intermediate level configuration tasks which you can do with one dialog in Windows require editing shell scripts and decoding APIs designed by mathematicians in the 70's on Linux. It's just too much when I want to relax after work.
Also I like gaming, and gaming through a compatibility layer like Wine is always annoying. I don't want launching a new game to be a project in itself.
Full disclosure, I've used linux since high school, to the point where I am lost as shit on windows. What I'm trying to get at is that the question I'm about to ask is not supposed to be judgemental or disbelieving or anything, I'm just genuinely curious: can you please give me an example of an intermediate config task that's significantly easier on windows than linux? I have a hard time believing such a thing exists, but that's likely because I haven't used windows since like the vista days
OK, one I encountered recently is mounting a network share on user login.
On Windows this required going into My Computer and clicking "Map network drive" then following the prompts.
On Linux this required; adding an entry to fstab then, because the mount needs to occur after network stack initialization but before the user attempts to access the drive, I needed to noauto the fstab entry and create a systemd service using After=network-online.target which actually performs the mount.
Gotcha. Yeah, that does sound like it's a bit easier in windows, fair enough. Still, I'll take a plaintext config file over searching through gui menus any day of the week. But that's just preference and what I'm used to.
I feel like it's the kind of thing that use to be true. I think it's easier to edit a a text file in linux and run the restart service command in terminal than it is to wander through window's new maximum white-space electron GUIs and hope what you're looking for isn't removed in windows 10 or doesn't get reset back to default on next update.
I absolutely agree. I've been very happy with linux for years. I love a well-documented plaintext config file!
steam has wine built in, for most games you don't even need to futz with the settings
Even in the best case scenario that's a straight downgrade though. Right now, I never have to worry about Wine compatibility or settings. All the games I play are tested and optimized on Windows.
It's not always true that steam proton is a downgrade. There are quite a few games, especially old ones, that actually run better with proton than natively on windows. Which is wild, but true.
That is surprising, I might give it a go next time I have an older game that doesn’t run so good under modern Windows.
Proton/Wine is a compatibility layer to translate Windows API calls to POSIX calls. In theory it should actually yield near native performance or better since Vulkan is far more optimized than DirectX.
But yeah, I use Proton and waiting for your vulkan shaders to compile is a little bit of a pain (especially for some games).
While I'll admit I don't have a lot of experience with Proton, I actually spent about 4 years working on a OpenGL based 3D graphics engine for augmented reality research. I've also written engine code in both DirectX and Vulcan but not as much. All this to say I've done some in depth research on Vulkan in the past, and I don't think it's really true to say that it's more optimized. DirectX is probably more optimized, but it is over-optimized for graphics techniques that have been superseded by more modern ones. Vulkan allows more optimized code to be written by giving the application programmer more direct control over graphics card resources. This only works when the program is written to take advantage of this though, if you access a Vulkan driver via a DirectX compatibility layer you are going to get very similar performance to native DirectX because you'll simply recreate all the bottlenecks that Vulkan was designed to avoid.
This gets to the underlying issue with Wine/Proton as a general solution to Linux gaming. So long as the application code was tested, debugged, profiled and optimized on Windows with DirectX it will almost always run better under Windows. The design will take advantage of efficiencies in the original API which will almost certainly not exist after calls are translated to a different API using different underlying OS primitives. The major caveat is older games which are no longer well supported because of changes to Windows system internals since release, these are likely to run as well or better because the assumptions they were optimized for are no longer valid on Windows, but Wine is already designed to compensate for programs written for a very different API.
Sorry for nerding out, but it's a topic I'm actually pretty interested in.
I see that's really interesting. A lot of my impression of Vulkan is that it's a much more modern API.
Though I'd admit that some of these are faulty benchmarks like when some users got better performance on Elden Ring with proton than on native windows (performance metrics varied wildly). It was just nuts to see Linux competing head-to-head with Windows for the first time.
Absolutely, older APIs tried to smooth development by abstracting more from the hardware, Vulkan tries to give the developer as much control as possible. If you know what you're doing you can write more performant games with Vulkan, but on the flip side development is slower. The matters less and less though, as most game dev these days uses middleware like Unity or Unreal which does all the graphics pipeline management for you. This also ties into modern graphics hardware being more configurable than ever, meaning the more restrictive APIs can waste a lot of the hardware's potential.
I did a bit of research after reading your comment and from what I can see, Elden Ring has some bugs in it's rendering pipeline that can cause cached shaders to be recompiled for no reason, this is what causes all the stuttering on Windows. Proton devs managed to write custom implementations of the DirectX functions that it uses incorrectly, to force it to work the way it was presumably intended to. That's awesome to me and really shows off the potential of Proton. Obviously other games which aren't huge releases aren't going to get that kind of treatment, but I can definitely see dedicated communities fixing issues like this in games.
Super cool, I'm glad you mentioned Elden Ring because I hadn't considered Wine/Proton could be used like that.
except the games released during the 98/XP/Vista/7 period, those still have compatibility shenanigans with windows 10.
That’s fair enough, but I’m mostly playing newer games. Maybe I’ll spin up a Linux install next time I have an old game that doesn’t work well on windows.