I have noticed a lot of developers are using Linux. I want to hear from them why they prefer Linux over Windows.
For further actions, you may consider blocking this person and/or reporting abuse
I have noticed a lot of developers are using Linux. I want to hear from them why they prefer Linux over Windows.
For further actions, you may consider blocking this person and/or reporting abuse
Ben Halpern -
DevOps Descent -
brogrammerjohn -
Talles L -
We're a place where coders share, stay up-to-date and grow their careers.
Top comments (6)
Because it's not Windows.
I mean, literally:
That's not to say "Linux > Windows", but all those features are things that I need to work efficiently, and Windows just does not provide those things (or not as I would want them).
And to be fair, most of those are UNIX features, not Linux. I could have most of those things with a BSD distribution or OSX... but I'm neither crazy nor rich ;)
I haven't used Windows since the early days of Windows 7, so my view might be a bit outdated. There are three main reasons I switched to Linux and never looked back.
1 Unix shell
I can't live without the shell and bash. I know these tools and it's simply too easy to automate repetitive tasks. Plus, it was a pain to ssh to Linux servers, which my job has always required, from Windows.
2 Package manager
Whatever Linux distro you are using, it's very easy and straightforward to install and manage libraries and tools with the package manager. Back when I used Windows I always ended up with half a dozen different versions of C++ runtime and I had no idea what they were used for. My package manager not only tells me what additional dependencies it's going to install, but it also tells me when a package is not needed anymore and I can just remove it with
autoremove
.3 Customisable
It's ridiculous how little you can customise Windows or Mac OS compared to Linux. Granted you need to know your way around the system and you're going to screw it up every now and then, but I think it's worth it.
Bonus: you own your system
It annoys me a lot not having full control over my computer at work and with Windows it's just too easy to restrict things. I used to work at a company where we didn't even have admin rights in our computers, so we couldn't even install the development libraries we needed. Most of us either used a virtual machine with Linux or installed Linux directly on our computers. I recently heard that they might disable USB ports on all computers through some active directory thing at my current workplace, which is a bummer for my colleagues that are using Windows, but guess what, my Linux computer won't be affected.
Windows as an end-user operating system is targeted primarily at users for whom computers are a means rather than an end: your average desktop user just wants to communicate with someone else, lay out a spreadsheet, play a game, look at an inventory report. They don't care so much how the computer and the programs they use work as long as they work and are minimally obtrusive about it. And they shouldn't have to care -- if everyone had to compile their own kernel and set up their own boot loader before doing anything else, we'd have made little progress since the heyday of mainframes! But the systems and abstractions and tooling that streamline the experience for regular users tend to get in the way for programmers, and systems and abstractions and tooling that help programmers do more faster can be impenetrably arcane or even dangerous from other perspectives (you can wipe out a *nix OS in nine keystrokes).
Linux can be friendly enough to non-programmers if you add more layers to mediate the user experience, but consumer Windows operating systems have those layers baked in and it's difficult to peel them back.
I currently use Windows, but there are two big things I preferred about the time I spent using Linux as my daily driver for web development.
1) Tooling. I suspect this is a case of "everyone uses Unix (Linux/mac), so everyone develops for and supports Unix" rather than any actual superiority of the system, but I have always found tools and libraries much easier to install and configure on Linux systems than on Windows. Trying to get a ruby on rails development environment set up on Windows can be pretty tough. A lot of the time the solution to getting stuff working is "install cygwin", at which point you might as well just be booting into Linux anyway.
2) Linux systems rule the roost when it comes to web servers. If you're deploying a website or web application, chances are it's going on a linux server. Keeping your development environment similar to the deploy environment reduces the number of unexpected hurdles you're likely to face. There are things like docker, vagrant, etc. which are intended to fill that role, too, but in my experience you often spend as long trying to get Docker to work properly as you spend on the project itself.
I've been enjoying rails development on Windows a lot recently with Windows Subsystem for Linux, but... that's just a roundabout way of saying that Windows is better the closer it gets to being Linux.
If you have a laptop/desktop pc with low resource a linux distribution would make it usable.
I used to have a laptop with a processor dual-core 1.0GHz and 4gb RAM, it was painfully slow with windows. When I started working full time I changed to dual boot with Zorin OS lite as my secundary OS, with Zorin I was able to work faster and better (some tools had better support on linux). I use it for about a year before changing the laptop for something (slightly) better.
Windows 10 runs like crap on my old laptop, but Kubuntu has no issues at all.