Jump to content

What is Linux?

So I hoped to get an answer from an experienced user.

 

I've been doing CS a year now, and people are recommending me to use Linux. Whenever I ask them ''what benefits does Linux have over my Windows system'' they usually don't answer. So what I'm trying to look for in an answer is whether I can have both Linux and Windows on the same PC if I want to fall back, and what the biggest differences and or benefits are for me as a developer. I want to also keep Windows because I like to play games from time to time. 

 

Curious to try out something new, so if you could share your personal experience (good or bad), it's highly appreciated. 

Link to comment
Share on other sites

Link to post
Share on other sites

In my opinion and experience, the only reason(s) one should use Windows is if:

 

1. They are required by their job or school to have Windows on their device

2. The majority of the games they play use kernel-level DRM and/or anticheat, rendering the game completely unplayable even with Proton

3. They absolutely rely on the full (not online) Microsoft Office suite, Adobe CC, etc, and cannot live with either cloud versions or alternatives (such as Libreoffice or Openoffice)

 

So you might as well try it out. No harm in doing so, and you can always just run it from a USB.

Quote me to see my reply!

SPECS:

CPU: Ryzen 7 3700X Motherboard: MSI B450-A Pro Max RAM: 32GB I forget GPU: MSI Vega 56 Storage: 256GB NVMe boot, 512GB Samsung 850 Pro, 1TB WD Blue SSD, 1TB WD Blue HDD PSU: Inwin P85 850w Case: Fractal Design Define C Cooling: Stock for CPU, be quiet! case fans, Morpheus Vega w/ be quiet! Pure Wings 2 for GPU Monitor: 3x Thinkvision P24Q on a Steelcase Eyesite triple monitor stand Mouse: Logitech MX Master 3 Keyboard: Focus FK-9000 (heavily modded) Mousepad: Aliexpress cat special Headphones:  Sennheiser HD598SE and Sony Linkbuds

 

🏳️‍🌈

Link to comment
Share on other sites

Link to post
Share on other sites

3 minutes ago, NeuraCode said:

Whenever I ask them ''what benefits does Linux have over my Windows system'' they usually don't answer. So what I'm trying to look for in an answer is whether I can have both Linux and Windows on the same PC if I want to fall back, and what the biggest differences and or benefits are for me as a developer. I want to also keep Windows because I like to play games from time to time. 

I don't recommend Linux on the desktop and I also don't recommend dual-booting. Yes, you can have both Windows and Linux on the same PC and that is called dual-booting, but there are plenty of things that can cause trouble. Besides all that, I'd just recommend you try something like e.g. Ubuntu Linux in a virtual-machine and seeing what you think of it.

 

Linux is open to a far greater degree of customization and it's an excellent server-platform. It's typically rock-solid, it's available for an enormous range of hardware, far greater than Windows, and it often can extracts more performance out of those platforms as well -- heavily multi-threaded workloads, like scientific simulations, are almost exclusively run on Linux.

 

I've been personally using Linux since the 90's in all sorts of forms: on SBCs, on routers, on servers, desktop, laptop etc. I still stick to Windows on my desktop and laptop and use Linux in a VM or over SSH on my servers and routers.

Hand, n. A singular instrument worn at the end of the human arm and commonly thrust into somebody’s pocket.

Link to comment
Share on other sites

Link to post
Share on other sites

Linux is a lightweight OS, based on Unix. It's primarily CLI (command line interface) driven OS, but there's obviously GUIs available. Being open source, there's also a ton of different variations, from totally stripped down versions like Alpine, to more user friendly versions like Mint or Pop!, to full enterprise-class versions like CentOS, RedHat or Fedora.

 

The reason people will recommend Linux for programming is because of the rich CLI. For real programming, a command line is essentially, and historically, the Windows command line has been garbage. However, the situation has improved dramatically. PowerShell has evolved to be really powerful, and is actually even cross platform now, and Windows introduced WSL, which let's you run Linux shells in containers, to facilitate working with either Windows or Linux even at the same time. You can even do cool stuff like open a file in Linux with a program in Windows, and vice versa.

 

Personally, I think Windows now is actually the best environment for development, as you get the best of all worlds.

CPU: AMD Ryzen 9 5900X · Cooler: Artic Liquid Freezer II 280 · Motherboard: MSI MEG X570 Unify · RAM: G.skill Ripjaws V 2x16GB 3600MHz CL16 (2Rx8) · Graphics Card: ASUS GeForce RTX 3060 Ti TUF Gaming · Boot Drive: 500GB WD Black SN750 M.2 NVMe SSD · Game Drive: 2TB Crucial MX500 SATA SSD · PSU: Corsair White RM850x 850W 80+ Gold · Case: Corsair 4000D Airflow · Monitor: MSI Optix MAG342CQR 34” UWQHD 3440x1440 144Hz · Keyboard: Corsair K100 RGB Optical-Mechanical Gaming Keyboard (OPX Switch) · Mouse: Corsair Ironclaw RGB Wireless Gaming Mouse

Link to comment
Share on other sites

Link to post
Share on other sites

From what I understand, Linux is a free, open source operating system that allows you to interact with the OS itself using a command line interface

 

Ryzen 5 3600

MSI B550 Tomahawk

16GB 3600mHz Trident Z RGB

1650 Super

Fractal Design Meshify C

Samsung 970 Evo 1TB

 

Link to comment
Share on other sites

Link to post
Share on other sites

13 minutes ago, NeuraCode said:

So what I'm trying to look for in an answer is whether I can have both Linux and Windows on the same PC if I want to fall back

You can dual boot.

 

13 minutes ago, NeuraCode said:

what the biggest differences and or benefits are for me as a developer.

For CS I asume you mean C#, .Net is alot less common in Linux, where Languages like C, C++, Python, Rust are more favored.

For .NET you will be using Mono, which may or may not be different than the implementation on Windows.

For things like C and C++, you will need to learn to use Makefiles. Things like Visual Studio in Windows do something similar for you, but its completely automated, in Linux you will be making them.

Most things are expected to be open-source. If it's not, it will likely get pushed to the side in favor of something that is.

If you plan to target both Windows and Linux, you will need to familiarize yourself with cross-platform SDK's, you can also look at QT

If you plan to do web development or work with Databases, it will be pretty much the same.

If you use applications like 3DS MAX or Photoshop, you will need to learn to use alternatives.

 

You are free to customize Linux to fit your workflow.

Some people like the GNOME Desktop Environment because it stays out of the way.

Some people like me like the KDE Plasma Desktop Environment because its heavily customizable.

Some people like a file manager that has tons of features built in, some like a rather basic file manager like what you get in Windows.

 

So basically, Linux biggest advantage is customization and you are free to do what you want with it.

 

You should only switch to Linux if you like Linux. Download a couple distros, give them a spin and see what you think. If you like it, make the switch, if you don't then don't.

 

https://manjaro.org/download/

https://ubuntu.com/download/desktop

https://pop.system76.com/

https://distrowatch.com/dwres.php?resource=major

Link to comment
Share on other sites

Link to post
Share on other sites

As a counterpoint to the benefits of Linux, have my tales of woe.

 

My biggest gripe with Linux is I have never had it work out of the box on a system I would actually want to use. Desktop with a GPU? Screw you here's a random black screen. Uncommon wireless hardware? You don't deserve WiFi. High DPI display? Take a hike nerd have these tiny icons. Laptop with Nvidia Optimus? Do it manually.

 

For all its faults, Windows has worked flawlessly on these all these machines I described WITHOUT spending hours digging through forums and config files, and that's more valuable to me than the benefits Linux brings. And combined with WSL and a VM I have yet to find something I could do on Linux that I can't do on Windows.

¯\_(ツ)_/¯

 

 

Desktop:

Intel Core i7-11700K | Noctua NH-D15S chromax.black | ASUS ROG Strix Z590-E Gaming WiFi  | 32 GB G.SKILL TridentZ 3200 MHz | ASUS TUF Gaming RTX 3080 | 1TB Samsung 980 Pro M.2 PCIe 4.0 SSD | 2TB WD Blue M.2 SATA SSD | Seasonic Focus GX-850 Fractal Design Meshify C Windows 10 Pro

 

Laptop:

HP Omen 15 | AMD Ryzen 7 5800H | 16 GB 3200 MHz | Nvidia RTX 3060 | 1 TB WD Black PCIe 3.0 SSD | 512 GB Micron PCIe 3.0 SSD | Windows 11

Link to comment
Share on other sites

Link to post
Share on other sites

5 hours ago, NeuraCode said:

I've been doing CS

Linux and Windows have different benefits (and drawbacks) depending on your use case. For a CS student there are definitely a lot of benefits:

  1. compilation toolchains make infinitely more sense on Linux - seriously, it's night and day
  2. the terminal is more customizable and useful (even though powershell has made some big steps forward), particularly when handling text files
  3. Linux distributions have used package managers for decades; these are tools that let you install almost any software that is available for your system with a single terminal command (without having to look for installers on the internet) and let you keep everything up to date, again, with a single command
  4. a lot of developers use Linux for their personal projects (see above to know why) and therefore a lot of development oriented open source utilities and libraries are written with Linux in mind and are only ported to Windows as an afterthought - if at all
  5. you can literally edit the source code for almost anything on a Linux system, which can be extremely helpful for understanding how an operating system works (though of course you could also edit Linux on a Windows system if you wanted to).

Don't ask to ask, just ask... please 🤨

sudo chmod -R 000 /*

Link to comment
Share on other sites

Link to post
Share on other sites

The answer to this question depends hugely on what kind of development work you're doing. So I'll answer the question assuming that your work flow involves mobile development, and web/cloud work.

 

The major benefit of Linux used to be that it would allow your dev system to be exactly the same as your production system. I used to write code on a Ubuntu 8.04 machine and deploy to Ubuntu 8.04 machines. It was pretty great. Made debugging really easy. However, those days are over. Unless you're deploying to a Windows Server* your dev machine will always be a different OS from production.

 

For cloud and for mobile you're almost definitionally using a different OS than what you're deploying to. If you don't need iOS or Office 365 apps**, I think Ubuntu Linux is the best OS for a developer. Key cloud tools like Docker, Kubernetes and Ansible run natively on Ubuntu. Android Studio works similarly well on Ubuntu, and the emulator is pretty good. It's this native toolchain support that Sauron also mentioned which really makes Linux in general and Ubuntu in particular, such a good place to develop.

 

* My condolences if that's your workflow. F

** If you need iOS or Office 365, macOS is the way to go.

Link to comment
Share on other sites

Link to post
Share on other sites

  • 2 weeks later...
Quote

So what I'm trying to look for in an answer is whether I can have both Linux and Windows on the same PC if I want to fall back, and what the biggest differences and or benefits are for me as a developer. I want to also keep Windows because I like to play games from time to time.

Yes. You can have both OSes installed simultaneously -- either on separate partitions or on separate disks if you have multiple disks installed.

 

I've been in the Gentoo camp for a long time now. The thing about Gentoo is that you compile almost all software on the system from source. That makes the system easy to customize and optimize. Running Gentoo also helped me get a much better understanding of the inner workings of software and how different components of the system interact with each other. Gentoo isn't for everyone, but it will definitely give the user some valuable experience that won't be gained from other distros that do everything for you.

 

In any case, I highlight Gentoo, but in a more general sense I like the fact that compilers and other software development tools tend to be more...I don't know if "integrated" is the right word, but more at home as a part of the system instead of feeling like a tack-on as in Windows. As a developer, I think you'll gain an appreciation for how other operating systems do things, and you'll be better equipped to write software that is multiplatform instead of being locked into a single (Windows) ecosystem and be ignorant of how to write code that is easily portable across platforms. By the same token, I'd recommend getting some experience with FreeBSD too. It has been said that FreeBSD is engineered whereas Linux evolves. There are definitely differences in ideology which are reflected in the technology, and seeing those different ways of doing things can help you gain a more well-rounded understanding of technology and software design.

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×