I’m considering installing Linux on my laptop but I’m unsure if I should start with a virtual machine first. My main use cases are gaming and coding, so I want to make sure it’s the right fit.

What are the pros and cons of using Linux for someone like me? Would starting with VirtualBox be a good idea before going all in?

  • What are you coding? Despite what everyone is saying, if it’s .NET you’ll be better off in Windows. You can do C# development in Linux, but C# and .NET are Microsoft products, and Linux is the ugly stepchild.

    For all other coding purposes, Linux is vastly and measurably superior. You have a nearly endless array of tooling options and a wide variety approaches to nearly any language. VSCode is popular, but so is EMACS and EMACS is useful for so much else - it’s practically an OS, and there exist people who essentially boot directly into EMACS and never leave it. You have a half dozen different implementations of vi, NeoVIM being among the most popular and having an ecosystem of plugins that would make a sex toy store blush. You have The New Kids like Helix and Kakoune, which explore new modalities and change the way you edit text. You have vertical solutions - most programming languages have an IDE written in the language and optimized for coding in that language.

    You can run most of these on Windows, but now Windows is the ugly stepchild: nearly all of this tooling was written on Linux, and works best on Linux, and doesn’t require fussing and working in a modality that is just different enough from idiomatic Windows use to feel jarring.

    Linux simply has more software, and while there’s a bunch of rough programs, many tools are - IMHO - better than their commercial counterparts on Windows. And by and large, you won’t have to pay for them.

    I also believe (and this is more my opinion than anything demonstrable) that for software developers, Linux gives you a better understanding of how computers work. This is a valuable thing for developers, understanding how things function. Windows hides, obfuscates, and conflates so much of how the system functions; and there’s often only one way of doing something so that you don’t even consider, “what if?” What if we used a different init system? What if we did scheduled jobs differently? What if my window manager were different, my boot loader was different, I stored attributes for my program somewhere other than the Registry? While you could use KDE your whole life and never consider that things, you don’t have to step down very far and suddenly be in a domain where you see all of what goes into a modern OS. Windows locks that door to the basement, and sure, people do jimmy it and get in there, but it’s much harder; and Windows integrates so much of the OS that no matter how much ditzing you do, you’re never going to replace the Windows window manager with a different one.

    I can’t emphasize enough just how important I feel understanding the fundamentals of how computers function is for software developers, even if you aren’t doing systems programming. Windows obfuscates and hinders that grokking process.

    • quint@feddit.dk
      link
      fedilink
      arrow-up
      1
      ·
      5 hours ago

      Been a dotnet developer exclusively on Linux for around 7 years now and I’ve never wanted to go back. Since .net core and Rider windows doesn’t really have anything to offer for me. It’s different if you’re stuck on .net framework of course.

      • zenforyen@feddit.org
        link
        fedilink
        arrow-up
        1
        ·
        56 minutes ago

        we do cross platform stuff and I’m 99% of the time working on Linux, now I have to do some .NET core C# coding, was frustrated first with the language support on Linux - until I tried Rider. If I’ll have to do more C# going forward I’ll consider asking my employer to buy me a Rider license. The alternative would probably be me booting to Windows for that project (which I absolutely hate doing and only rarely have to)

      • Do you do that coding for a company, like for a job? I managed a team of .NET developers for a while, and although I don’t know anything about C#, much less Windows, it sounded almost impossible to do any Enterprise development without pulling in a .NET framework. I think I did once try to compile one of our applications on Linux, and got stuck on a dependency that was only available on Windows.

    • wuphysics87@lemmy.ml
      link
      fedilink
      arrow-up
      2
      ·
      8 hours ago

      I’ve used exwm (emacs window manager) it’s… interesting, but there’s a reason I use sway instead 🤣