Jump to content

Why do programmers/developers like to use Linux?

I know, this question tends to be philosophical. I am an Security engineer that only has the view from my traineeship as a systemintegrator.

This question ties a bit into my work and I'm looking for a bit of a fresher insight, as I am anything but a programmer.

Is it the scalability like Docker and Kubernetes?

That Linux has pretty much every compiler you could wish for?

Is it more efficient to compile on the same hardware, when you do it with Linux?

 

I am currently confronted with many questions like this. Maybe you would like to share you insight.

 

Thank you so very much.

Link to comment
Share on other sites

Link to post
Share on other sites

Depending on the distro Linux can have alot less overhead than windows which makes it faster for this kind of work.

 

Linux also has other advantages like it's resistance to most malware (malware has to be designed for an OS to invade that OS and almost no one builds malware for Linux distro). Linux is also very reliable/stable.

I might be experienced, but I'm human and I do make mistakes. Expand for common PC building advice, a short bio and a list of my components and other tech. I edit my messages after sending them alot, please refresh before posting your reply. Please try to be clear and specific, you'll get a better answer. Please remember to mark solutions once you have the information you need.

 

Common build advice: 1) Buy the cheapest (well reviewed) motherboard that has the features you need. Paying more typically only gets you features you won’t use. 2) only get as much RAM as you need, getting more won’t (typically) make your PC faster. 3) While I recommend getting an NVMe drive, you don’t need to splurge for an expensive drive with DRam cache, DRamless drives are fine for gamers. 4) paying for looks is fine, just don’t break the bank. 5) Tower coolers are usually good enough, unless you go top tier Intel or plan on OCing. 6) OCing is a dead meme, you probably shouldn’t bother. 7) "Bottlenecks" rarely matter and "Future-proofing" is a myth. 8) AIOs don't noticably improve performance past 240mm.

 

useful websiteshttps://www.productchart.com - helps compare monitors, https://uk.pcpartpicker.com - makes designing a PC easier.

 

He/Him

 

I'm a PhD student working in the fields of reinforcement learning and traffic control. PCs are one of my hobbies and I've built many PCs and performed upgrades on a few laptops (for myself, friends and family). My personal computers include 3 windows (10/11) machines and a TrueNAS server (and I'm looking to move to dual booting Linux Mint on my main machine in future). While I believe I have an decent amount of experience in spec’ing, building and troubleshooting computers, keep in mind I'm not an expert or a professional and I make mistakes.

 

Favourite Games of all time: World of Tanks, Runescape, Subnautica, Metroid (Fusion and Dread), Spyro: Year of the Dragon (Original and Reignited Trilogy), Crash Bash, Mario Kart Wii

 

Main PC: https://uk.pcpartpicker.com/user/will0hlep/saved/NByp3C

 

Secondary PC: https://uk.pcpartpicker.com/user/will0hlep/saved/cc9K7P

 

TrueNAS Server: https://uk.pcpartpicker.com/user/will0hlep/saved/m37w3C

 

Laptop: 13.4" ASUS GZ301ZE ROG Flow Z13, WUXGA 120Hz, i9 12900H, 16GB DDR5, 1TB NVMe SSD, 4GB RTX 3050 Ti, TB4, Win11 Home, Used with: 2*ThinkPad Universal Thunderbolt 4 Dock, Logitech G603, Logitech G502 Hero, Logitech K120, Logitech G915 TKL, Xbox Elite Wireless Controller Series 2, Logitech G PRO X Gaming-Headset (with Blue Icepop in Black), {specs to be updated: two monitors}

 

Other: LTT Screwdriver, LTT Stubby Screwdriver, IFIXIT Pro Tech Toolkit, Playstation 1 SCPH-102, Playstation 2 SCPH-30003, Gameboy Micro Silver OXY-001, Nintendo Wii U WUP-001(03), Playstation 4 CUH-1116A, Nintendo Switch OLED HEG-001, Yamaha RX-A4A Black AV Receiver, Monitor Audio Radius (4*90s, 1*200s, 2*270s, 1*380s), TP-Link TL-SG105-M2, Netgear GS308, IPhone 14 Pro Max 128GB Space Black, Secretlab TITAN Evo (Black SoftWeave Plus Fabric), 2*CyberPower BR1200ELCD-UK BRICs Series, Samsung 40" ES6800 Series 6 SMART 3D FHD LED TV, UGREEN USB 3.2 Gen 2 10Gbps M.2 NVMe SSD Enclosure, SABRENT 3.5" SATA drive docking station

Link to comment
Share on other sites

Link to post
Share on other sites

There can be plenty of reasons, for me a big part is the ease of scripting and system automation. On Windows scripting everyday tasks is more difficult and less reliable due to the relative obscurity of the system.

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

being a bit ocd, I like everything to be as minimalist as possible. So for developing when it is possible I will always use my Linux machine. But since I work mostly in dotnet it sometimes require windows for some stuff. But then again I have a completely ripped windows install to remove every bloat I could with something like NTLite. Overall it is much more pain free to develope on linux bc of the os and also if you are deploying your software on linux it becomes easier to work on linux as well.

Link to comment
Share on other sites

Link to post
Share on other sites

For personal and work computers, developers follow the same trend as general consumers. It is windows follow by Mac and then linux. It is when deploying the applications that os are swap to linux for hosting.

 

Few are actually coding web applications on linux for example even if the target os for hosting the said application is linux thanks to cross platform nature of most web dev tech stacks. The only caveat is if you actually need the target os to develop effectively. This can be for making a linux only app or cross platform apps that you need optimizations or configurations for specific platform like games for example in which your only choices to test run/set break points during debugging is either running on the actual target operating system or inside a virtual machine. 

Sudo make me a sandwich 

Link to comment
Share on other sites

Link to post
Share on other sites

At my workplace, the Devs use both Linux and Windows... Depends on the target OS... When working on desktop apps for Windows, in C# and dot.net... Windows is used.

 

Pretty much everything else is done on Linux... Since most of our dev efforts are deployed in docker, on webservers and on Linux Servers, it makes no sense to use Windows!

(And don't talk to me about docker on Windows, or running it in WSL... The experience is utter trash when compared to running it in native Linux!)

 

We are setup as follow:

Pop!_OS Linux machines with 32GB of RAM and 6 cores CPUs... We run Windows in a VM through Virt-Manager when programming on Windows is needed (and we use Windows server in the VM for it's lightness and non-bloated nature!)

My role is mostly sys-OP, so 99% on Linux... I use my Windows VM only when I need to run Powershell scripts against the Azure infrastructure the other part of the business is using or for some occasionnal Excel or PowerBI stuff

If it has been done before, I can do it...

If it has never been done, just leave me some time to find a way!

Link to comment
Share on other sites

Link to post
Share on other sites

I was a DevOps / SRE consultant and have worked with people who use macOS, Linux, and Windows to make web and mobile apps. So no gaming, desktop GUI, or other types of develop. So my experience is going to be different from other people. For example, I know a guy who works on hardware that's used in broadcasting opera live to movie theatres. He uses Ubuntu, but his reasons aren't really the same as mine. I also have a friend who works on in flight entertainment and while her and I both use macOS, it's not 1:1 for the same reasons.

 

Personally, I use macOS with Ubuntu VMs that I manage using multipass (https://multipass.run), and some cloud VMs I use for dev work too. I always use Linux in my development flow because it "just works". Code I write is typically in Python, Go, Javascript, or Java and the Linux toolchain for all of those languages are absolutely first class. 

 

Since I started my career as "programmer" in "operations" and the industry moved into "DevOps" one of the big moves has been towards reproducibility. Linux is a huge part of how we gained so much reproducibility. In the old days you'd have your windows devs running some janky WAMP stack the Linux guys have never heard of, the Mac devs would be using a stack closer to prod, but not exactly the same, and the few desktop Linux devs there were would be spending a lot of their day debugging hardware issues on their workstations. 

 

Nowadays desktop Linux is way better, and an actual viable option. Also things Docker, and build pipeline tools such as Jenkins ensure that not only are you getting what you expect to be getting deployed on PROD, but you reproduce it on your localhost too. It's amazing. 

 

The distinctly early 2000s pain of some dev running Windows XP trying to find out why this Python script written on a Mac is throwing errors in our Windows Server 2003 server is gone. And it's mostly because of changes to modern Linux. Improvements in Linux and open source software are why a GitHub project can just give you build instructions and know that they'll work. Modern Linux and it's core tools "just work".

Link to comment
Share on other sites

Link to post
Share on other sites

Linux exposes a lot of the things you need to get to quickly, and true package management makes it so much easier to do what you need to do.  Setting up Ruby on Windows used to be a nightmare -- the company I work for uses Ruby and we *still* discourage devs from using Windows, unless it's through WSL.

 

Linux is also where most web apps will be running; it has a lot of functionality that makes modern development easy (like Docker); almost every language has Linux as a first class citizen, when Windows is... uh... it's an H1-B holder at best?

 

Plus, lots of devs love to tinker.  Heck, I have a *good* job, and I only have it because of my tinkering for the last 18 years (oh goddess above 16 was 18 years ago).  

Link to comment
Share on other sites

Link to post
Share on other sites

On 3/17/2023 at 7:10 AM, Sauron said:

There can be plenty of reasons, for me a big part is the ease of scripting and system automation. On Windows scripting everyday tasks is more difficult and less reliable due to the relative obscurity of the system.

Not a programmer, and I think you've nailed the reason for me. BASH scripting is very accessible, with a zillion examples out there, and all the tools are free. All of the work I've done on hardware probing tools couldn't have been done without all the free tools available on Linux/*BSD. Being able to pipe commands together, cut, redirect output - just sweet! I'm just a hack, but what I'm scripting is helping us automate some of our processes in a way we couldn't before without spending.

Link to comment
Share on other sites

Link to post
Share on other sites

Tools.
Developing on the platform you are deploying on.
Ideology (OSS, Anti-MS/Apple).
Personal preference.

Link to comment
Share on other sites

Link to post
Share on other sites

Unix and unix based systems are some os the most popular and ubiquitous systems in the world. Thus, working on Linux which exposes the Unix system makes a lot of sense.

Link to comment
Share on other sites

Link to post
Share on other sites

On 3/25/2023 at 11:07 AM, Fordle said:

Unix and unix based systems are some os the most popular and ubiquitous systems in the world. Thus, working on Linux which exposes the Unix system makes a lot of sense.

all the devs i know all use unix/unix like os via ssh at some point. i have rarely seen anyone using it as their personal os (aside macos) however. i am the only one in my company in fact. mac os and windows tend to be the os these devs actually code on. when they do deployment, they just git push to their company repo and then devop script and whatever CI/CD pipeline would take their code and deployed it from there, either on docker or something else. 

Sudo make me a sandwich 

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

×