Linux vs windows for programming?
Posted by Dazzling_Canary8371@reddit | learnprogramming | View on Reddit | 237 comments
Lately I have been trying to make the switch to linux (either ubuntu or arch). Do you think i should switch? Is it worth it?
Thanks in advance.
Affectionate_Put_886@reddit
I would never recommend to switch to linus for learning, depending on the jobs u want to do knowledge is important with both OS. Windows is great but in many case overkill, most servers use a linux distro, so knowing how to navigate and work with a terminal is very helpful.
For example, at my work im not allowed to use linux, aince it doesnt offer the security features we need. (I know u can implement these but this is a cost-benefit calculation).
Use Linux on a VM its a very common way to work with it or dual boot. Since im not allowed to install it on my pc i workaround with having a bootable usb that has all the important programs saved.
Worried-Ad6403@reddit
Linux is great. Use Ubuntu since most of code on production runs on that.
TotalBrainFreeze@reddit
If you "program" with powerpoint or outlook stay with windows.
If you do anything else, switch to Linux.
amejin@reddit
I'm a long time windows user and dev. I don't find Linux to be valuable for anything other than cost savings on prod machines, and only for non critical or non high throughput components.
ALonelyKobold@reddit
Respectfully, what are you talking about? Windows server can't hold a candle to linux servers for throughput or stability. It's the default choice for enterprise even at Microsoft, and for good reason. I've been in IT for 14 years. I've used Windows desktop, windows server, Linux desktops, and Linux servers, and while on the desktop, it's certainly a matter of preference, and windows is by no means a bad choice, but on servers? There's a reason I've only ever seen it in the small business sphere. It's approachable for servers, but if you don't need that approachability, and you're fine with either not using exchange and AD, or using Microsoft 365 for those solutions, there's no contest.
amejin@reddit
IOCPs are fantastic. If you aren't familiar with them, you're missing out on the power of Windows server.
Before you go "but but but io_uring!!"
IOCP are kernel level objects with no limits other than the hardware it runs on. Their multi thread handling and generic I/O handling are still insanely fast and battle tested.
While Linux certainly has made great strides here lately, it's just not quite the same.
ALonelyKobold@reddit
I'll have to take a look. My current position isn't going anywhere OS wise, but I'm always down for staying in the loop about features so I can better make recommendations to leadership, and know what skills to build for future positions.
ALonelyKobold@reddit
As a long time Linux admin and desktop Linux user, it's a great call to switch, but you're about to make a mistake. You should NOT be considering "Ubuntu or Arch." That's like saying "Do I start learning to program with machine code or with scratch" (exaggerating a bit for emphasis). You're choosing between the kiddie pool and cliff diving. Both have their place, but if you're choosing between one or the other, you're doing something wrong. If you're just starting your Linux journey, then Arch will burn you. Full stop. Hell, I've been using Linux intermittently as my desktop since 2010, I used arch as my main distro for two years, and well... I'm typing on a Debian system, and will likely not touch arch again. I learned what I needed to from it, but it isn't for me, and that's okay.
If you're brand new, Ubuntu or Mint are a great place to start. They're seen as beginner friendly for a reason. If you're a little more confident, have some CLI experience, maybe used a terminal shell into a linux distro a few times, then consider Debian, Fedora, maybe OpenSuSE, though SuSe is less popular, and has compatibility issues with a lot of software as a result. Accept that you'll find your home after a few hops around. Ubuntu is still a solid option for you if you have this additional experience, it's just not your ONLY option. I also advise that, for beginners, you avoid smaller or overly specialized distros, they tend to be a bit janky, and you'll gain more value from using something mainstream.
Once you're confident in the shell, if you want to try the more... masochistic distros that give you absolute freedom (Arch, Gentoo, Slackware), then by all means, go for it. You'll learn a ton, even if you know a lot already, and you'll end up with a system that you have a lot of ownership over, and that you can bend to your will far more effectively than Ubuntu or Mint ever will (though I'll argue that Debian is just as flexible, and Fedora nearly so. That said, I miss the AUR a bit).
Thoughts on the beginner and intermediate distros I've used, in approximate order of difficulty (of course, that's a matter of opinion)
Mint: Great if you want to be on free software, and want a soft transition for windows. Good for the less confident, but mainly suitable for those looking to not think about the fact they are on Linux. I wouldn't recommend it long term, but if you just want to try it out, see if it's for you, it could be a good option.
Ubuntu: Ubuntu is great. It's not personally my cup of tea for desktop use (server is a different matter, I babysit Ubuntu servers in my day job, and it's WAY nicer than on RHEL). It's something you can use for your entire career on Linux, and not be lacking for it. That said, on the desktop, it's inflexible. If you value customization, and don't like it exactly as it is, then you will outgrow it. Also, you have to deal with Canonical as your overlord, which is better than Microsoft, but still not
Fedora: KDE is great. I'll pick it over Gnome any day. I've not used Fedora extensively, but it was good while I used it. It's a very solid productivity choice, and lends more flexibility than Ubuntu. If you're interested in the RHEL side of the house, it's a great place to be, and RHEL and it's derivatives certainly have a hold on the large enterprise market for servers, though it's not as strong as it used to be.
OpenSuSE: I love the configurability of OpenSuSE tumbleweed. If the rolling model of Arch appeals to you, then Tumbleweed is a great option. Be prepared to learn about packages, alien, and compatibility, as SuSE is the least compatible of the mainline distros with prepackaged apps.
Debian: Debian is more mainstream that SuSE, and I debated putting it above SuSE for that reason, but, as much as I love it (Debian's testing release is my default for new desktop installs), I always seem to have some hardware compatibility issues that are a pain to resolve. More so than on any distro but Arch, which is less so compatibility issues, and more a matter of researching to select the correct driver of several options. Debian is nice because of the commitment to open software, and the documentation is almost as good as Arch's. Rock solid for stability, but a little slow on accepting new software and releases for that reason, it's a solid option on the desktop and the server. I personally am using Debian Trixie with KDE at the moment, and couldn't be happier. I only have light customizations, combined with Khronkite tiling window script. Debian is a great balance between teaching you things and yet being approachable, and despite it being the "hardest" on my list, it's a really solid option, and is totally worth considering, especially if you'd prefer to avoid hopping distros. Many people are happy on it, for good reason.
My advice: Install Ubuntu. Use it for 2-3 months. Then switch to something else if you feel the need. If you want that to be Arch, feel free, but I'd encourage you to try at least one distro in between those, or REALLY learn your partition schemes, file systems, and other low level concepts BEFORE attempting an install (though I hear arch has an automated installer these days? Not sure how well supported that is). Arch is loved for being unmatched in customizability, and you can get software packaged for anything working fairly easily once you know pacman and alien. You'll truely know everything going on with your system intimately, but it takes a lot of patience, and is not for the faint of heart. If your goal is to learn programming, don't learn Arch just yet. If your goal is to learn Linux, Arch is a great way to.
Ok_Taro_2239@reddit
Here’s a short and clear breakdown for you:
👉 Verdict: If your focus is open-source, servers, or system programming, Linux is worth the switch. If you’re into game dev, .NET, or need specific Windows-only tools, stick with Windows (or dual boot).
DoctorFuu@reddit
If you're considering switching, I wholeheartedly support your decision to change.
If the only reason you want to switch is for learning programming, don't. You can learn programming on any (working) system without any issue.
Rare-Ad-312@reddit
I second this, if you only want to switch simply to learn programming, don't. You will end up in a unfamiliar environment, if you want to learn programming stay on windows, you can have a VM or WSL directly on windows.
Stay on Windows and switch to Linux later
tomysshadow@reddit
Yeah, you probably just want to use what you're familiar with. Because otherwise, you are learning a new OS, on top of learning programming, both of which have the potential to cause confusion. I'd say it's not significantly better on any one platform to where it matters the one you use to learn programming
itsredditNotLife@reddit
This is what i did (dual boot) but honestly I havent even considered using windows for anything whatsoever after the first time I booted linux. its so addicting learning how to use CLI to navigate.
i had never written a single word of code before switching, but im obsessed now. probably going to delete windows entirely.
Reasonable_Task_8246@reddit
Why didn’t you use the CLI in Windows?
ComprehensiveCat6698@reddit
answer: \
itsredditNotLife@reddit
Dono. never had a need to until I started using linux and I find it far easier to customize my environment on linux which is the thing that got me hooked.
Rare-Ad-312@reddit
I have a dual boot Windows + Debian 13 on every computer but one which is only Debian 13 for one simple reason I only use it as a workstation for programming while the two others are laptops on which I prefer keeping Windows as a Dual Boot, though I mainly use Debian except when I'm playing games in which case I prefer Windows even though Linux can perfectly run almost every single game I have with no problem whatsoever
NewPresWhoDis@reddit
That VSC easily supports this is just 🤯
Objective_Rate_4210@reddit
as long as you have an assembly compiler or for maybe even fortran compiler to spoil yourself, you can learn how to divide reality in all 4 dimensions
dariusbiggs@reddit
Use whatever environment you are building for.
If you are building microservices then Linux is a good choice
If you are building windows apps, use windows and step into Linux with WSL2 for when it makes sense, it is more than enough .
founders_club@reddit
Get a mac. It’s a linux distro. The entire OSX is built on Darwin, it’s the Apple variation of Linux.
nizomoff@reddit
I think linux or any unix-like OS are very convinient for the programming than windows
Dull_Performer2806@reddit
I use a low end pc Windows bloated the fuck out of everything My pc gets slower very fast, I don't know what's up, 😔 but i suspect its that Windows I just cant prove it
I just want to write code So i want to shed stuff i don't need So yeah I am moving to linux too
BlazingFire007@reddit
Windows can definitely run a little heavy, but just make sure to select the right DE if you go to Linux. I’m pretty sure KDE (don’t shoot me, I use it as my daily driver!) can run a bit heavy too
Dull_Performer2806@reddit
I later installed I didn't use dual boot cos the internal drive already has less than 100gb free space Btw the laptop isn't even mine, so it probably got bloated for this reason,
I installed on an external ssd,
So now i boot my linux on the external ssd And i already set up my coding environment. Works fine. I still use some GUI tho (e.g VScode )but i feel i won't be tempted to install more. Since i will eventually adjust to terminal based environment.
BlazingFire007@reddit
I mean, there’s nothing wrong with using GUIs lol.
I tend to prefer using the terminal to interface with my computer, but whenever stuff gets complex I am not ashamed to admit that I will open a GUI lol
Dull_Performer2806@reddit
Of course there is no way to NOT use GUI In fact there are still lots of it...for example my browser, and the basic softwares that came with the OS , I even use mysql workbench .
I am just being very careful cos my laptop is low end and very old . So i am trying to manage as little software as possible Till i get a new laptop
Dull_Performer2806@reddit
To functionality 🥂
Osato@reddit
There's no need to switch. Learn to use Docker (and I mean really learn, don't just half-ass it) and set it up to work with WSL2.
Then you'll have any brand of Linux you want for programming, without the headache of making Linux work for any non-programming workflow.
benevanstech@reddit
Easy yes. One of the most important things about being a programmer is staying flexible and learning new things. The differences between Linux and Windows will teach you a lot, and help you see different perspectives. If you have a good time in your life right now to try it out, go for it.
morto00x@reddit
If your goal is to purely focus on learning programming, the OS is irrelevant. Being comfortable with Linux can be useful for many jobs though (backend, embedded, etc). You can always use Hyper-V or VirtualBox and try Linux in your Windows machine.
tjlusco@reddit
People also forget how easy it is to setup programming environments in Linux, with C/C++ in particular. Install one package for a library, another one for the development headers, all the dependencies are kept in perfect sync, and it automagically works with GCC.
The situation has gotten a little better on windows, but you can burn a lot of time just getting a project setup to the point where you can compile using the libraries you want to use. Linux package managers make this stupidly easy to the point where using anything else is pulling teeth by comparison.
OmNomCakes@reddit
There's a reason most people who code for a living choose macs. I hate macs for Many reasons, but if I have to setup an IDE, compiler, language/ version specific bins, etc. I'm choosing Mac every time. Or at least a Linux os that has repos for it.
Doing the same on Windows is a pain in the ass. I'm very familiar with the process and know exactly what I'm doing, but it's still a pain to have to do.
PeacefulChaos94@reddit
How are macs easier?
OmNomCakes@reddit
You gain the Linux style package manager and updating without worrying about updating your path and system variables for most languages. And when you do it's a simple .bashrc edit instead of going into the Windows system settings.
I'm not saying Windows CANT do what a Mac can do - it just tends to be easier and more user friendly on a Mac. Linux can do the same as a Mac as well, with most of the same benefits (assuming your flavor has repos supporting the software), but people who focus on coding tends to not want to deal with the unique quirks of each Linux flavor.
It doesn't matter if you don't agree - I don't personally like the Apple ecosystem myself, but it is the industry standard for coding. If you go down a more DevOps route Windows still holds a significant usage rate, but out of thousands of employees who purely code, Windows has only been requested in the single digit numbers and the same is true for Linux.
Brave_Confidence_278@reddit
thats not true according to statistics (e.g. from stackoverflow surveys)
xil987@reddit
100% false. Just install an ide es visual studio comunity and build with on click or command line. C++ work out of the box. You can add Vcpkg as c/c++ package manager
tjlusco@reddit
Maybe windows has gotten better, but Linux has always been developer forward, forever. Linux is an apt get away from a new dependency for your project, that’s going to get maintained, always be there, and work perfectly with your tooling.
Last time I used vcpkg i stumbled across rough edges using 32 bit and 64bit libraries, something which is just in heard of in any other os. Everyone moved over to pure 64bit a long time ago. Why mess around with blockers when you can spin up a Linux vm in less time than it takes to solve a “windows” problem.
Visual studio doesn’t get enough respect. If you want to know the real secret sauce to windows success, it’s Visual Studio. It’s been the best IDE for since Win95. It took VS code to dethrone the king.
But still, just because it’s “easy” (or not so for a beginner) to set up a Visual Studio code dependency, it’s not a single line of bash easy. For a beginner, anything which blocks you getting a project up and running is going to be a hinderance to your successes
Yagan_Dawn@reddit
I use WSL on windows, works like a charm
Dull_Performer2806@reddit
To functionality 🥂
Reasonable-Pay6045@reddit
Windows with WSL2 is the best option imo that gives the best of both worlds
Dull_Performer2806@reddit
I didn't use dual boot cos my internal drive already has less than 100gb free space I installed on an external ssd, pop!Os
So now i boot my linux on the external ssd And i already set up my coding environment. Works fine. I still use some GUI tho (e.g VScode )but i feel i won't be tempted to install more. Since i will eventually adjust to terminal based environment.
twentyninejp@reddit
If you're thinking "either ubuntu or arch" for your first Linux install, choose Ubuntu. Even as someone who has been using Linux for half of my life, I still don't have the time to deal with Arch.
SuperSathanas@reddit
I've been on Arch for almost 3 years, and passed the initial installation and setup, it's been the smoothest experience I've had with any distro. I was on Debian before Arch for about a year, and tried out at least a dozen others for various lengths of time before that.
Dappster98@reddit
How do you expect us to give you an answer when you've provided such little detail as to what your intentions are/what kinds of things you want to program, your goals, what you use your computer for, etc?
Dazzling_Canary8371@reddit (OP)
It will be mainly for dev stuff. I want to switch because i have heard its faster than windows, doesnt give wild errors unlike windows.
Alikont@reddit
LOL.
But anyway windows + WSL is probably the best of both worlds.
rllngstn@reddit
Yes! WSL is the best of both worlds.
Wonderful-Habit-139@reddit
It is definitely not the best of both worlds but a reasonable compromise for learning.
RecognitionAdvanced2@reddit
This! Install Ubuntu in WSL and try it out
Dissentient@reddit
You definitely don't want to deal with desktop linux if you want to avoid "wild errors".
allKindsOfDevStuff@reddit
You’ll just get wild errors like having to fix your sound and WiFi drivers after updates
laveshnk@reddit
i swear to ducking god, i wanted to separate my audio channels between my headphones and speakers so i can switch between them with a simple click. Turns out realtek is a yee yee ass million year old outdated software that took me way to long to figure out cuz its broken and is such a pain to configure
Dappster98@reddit
I see. So here's what I'll say:
When it comes to "wild errors", I'd say Windows has more stable support. It's developed by many many professional operating system developers. But I will say as someone who did develop on Windows for a while, that the tooling is rather terrible. I think linux has Windows beat when it comes to tooling support.
I'd definitely do some research on how well and stable your hardware is with linux before making the switch. Back when I had a Windows PC and switched to arch linux, I had a bunch of stability issues. But this isn't the same for everyone, so again, just do your research. Maybe try dual-booting both linux and windows just in case you wind up disliking linux more than Windows.
arthurno1@reddit
Interesting, Which tools are superior on Linux platform? For which kind of development? Are we speaking of C/C++, Python, JS, Rust .... ? There are lots of software stacks with various degree of user (dev) friendliness so to say.
Dappster98@reddit
I used Windows for C/C++ programming mostly, with a little bit of Rust. Getting the GCC compilers up and running, and working with my environment was such a pain. A lot of people just wind up using Visual Studio (which is a HUGE gigantic piece of software) because it becomes rather cumbersome to get anything else to work. With linux, there're possibly even more people contributing to projects such as GCC and other tools. However, when I did try arch linux, for some reason I was having so many issues with Wayland that I wound up needing to stick with X11 back when I used linux for a little while. Some things are good about linux, like the support for more programming-related software, but when it comes to OS stability, I'd still say Windows has linux beat.
arthurno1@reddit
Ok. I am Linux user sine 98, back from Pentuim II times. My first Linux OS was RedHat Desktop 5.0 (now called Fedora). I used it because it was easy to ssh to Universities Unix servers and forward X11 traffic to my computer so I could sit at home and do my work instead of sitting in crowded computer room at Uni..Later I did some consulting and did my share of both win32 and nix programming.
In my opinion, Microsoft has always been a tooling company, one of the best. VisualStudio was, and still best in the industry when it comes to debugging. Big? Everything is big nowadays. Lucky hard-drive space and bandwidth is cheap, so nobody cares. Parents VS with VTune and you have probably the best possible C/C++ tooling for win32 dev .
When it comes to gcc/clang, if you are Arch iser (I am too), msys2 have you covered. It is literally as easy to install software as on Arch Linux. They have ported pacman, and basically the entire Arch ecosystem. I do it myself, so I am not sure what is so more difficult there. If msys2 is too big, there other alternatives as well. However, most of the software is these days usually platform independent. There are also alternatives like vcpkg, which for c/c++, which work literally the same on both Windows and Linux.
I can't tell for Rust, I think they are packaging their own mingw stuff, similar to git, but I know you can install the entire rust toolchain on msys2 via pacman.
That said, I am an Arch Linux user myself, and I do prefer Archbover Windows any day, but it would be for rather some political and completely different technical reasons. I like everything being free and respecting my privacy, and also mouldable and adaptable so I can configure system to look and behave exactly as I want it.
I do have a Win 11 on a laptop, though, which just got broken after a kid managed to throw it on the floor, like an hour ago 😀.
bacmod@reddit
Including Gabe Newell!
cyrixlord@reddit
what stacks do you plan on using? microsoft visual studio will pretty much cover all your languages unless you want to code things just for linux. Visual studio is only available for Windows. I have a dedicated linux laptop but I still use my windows dev box for all my development and just share the code in a share my linux and windows machine can access, and use git. My containers are run on a linux machine but can just as easily be run on a windows machine.
SkibidiSigmaAmongUS@reddit
Don't listen to this people, it's always a good idea
thewolfwithsheepskin@reddit
But that you want to program that is the good question, it is not the same for video games as for backend
Lauris25@reddit
linux 100%
Additional_Oil_2646@reddit
BMW vs Audi for driving - same concept
Wnb_Gynocologist69@reddit
Using mint here. Boots, runs.
While windows is forcing updates at its schedule onto you and does 250 things in the background, mint shuts the duck up and opens VS code in a second.
Also a Linux terminal just works. Now. Unlike windows terminals.
For programming, I wouldn't go back.
Ronin-s_Spirit@reddit
I never tried linux but that's because I don't like it eveey time I see some example of a linux UX. On windows stuff just works, and so do development tools.
DoctorFuu@reddit
That's not my experience, and that's the reason I switched. Good for you if things work for you though.
Markuslw@reddit
he's a webdev from the looks of his profile, might explain why he feels its easier.
Ronin-s_Spirit@reddit
What do you guys do that it's easier to work with terminal galore than a laymans OS? Run secret government servers? Program nuclear power plants?
DoctorFuu@reddit
What are you talking about? It's not 2000 anymore, you can use a linux system without touching the terminal most of the time.
The terminal is however available if you want to do something specific, and you can do everything in it if you want (no limitation).
I only use my terminal to update my packages every once in a while (but out of habit, there is a package manager where I could go in an click update, just faster in terminal), and to launch some servers (I prefer to launch them from terminal so that I have real-time logging in the terminal). Both of those uses for the terminal are absolute user preference and could totally be done via the gui instead.
You seem particularly keen on criticizing systems you don't know, that tells a lot about you.
Ronin-s_Spirit@reddit
Because any time I see somebody use linux or talk about it it always comes with too much complexity.
I'm sorry if I just told you so much about me by not instaling and running what, 10 different variants of linux? Because that's a thing apparently.
Also how about gaming, that work on linux? Which one?
DoctorFuu@reddit
What's with the hate man? chill down.
Yes, gaming works on linux, for most things except maybe AAA games when they just come out (and even then, they sometimes do work).
There's no point in running multiple distros of the system. I just use mint, because it works and almost doesn't need maintenant, but most other mainstream distros should be stable as well.
You really sound like someone who was criticizing linux in 2010.
It's cool if windows works for you, you can use it if you want. But there is absolutely zero reason to spread hate and misinformation about linux.
Ronin-s_Spirit@reddit
I asked questions and you say I "spread hate and misinformation".
grepTheForest@reddit
Why use gui when tui is good enough?
Chrykal@reddit
Even developing on Windows I will often have multiple terminal panels open in VSCode, I'd be interested to hear why you think not having a decent terminal would be preferable.
It's literally the reason Microsoft added WSL...
Markuslw@reddit
Im into really low-level stuff. Right now im working on custom bootloaders, the kernel, and block-level manipulation of operating systems. Also enjoy communication and the "internet stack".
Chrykal@reddit
I found Node.js development much preferable on Linux, in fact I would think most people using Windows for it are probably using WSL...
Markuslw@reddit
oh yeah Node.js is easier on Lin i agree, but when i said that i could image it being easier, i meant regarding to stuff like Visual Studio and dotnet.
Chrykal@reddit
I guess I assumed from them asking about Linux, it would be for absolutely anything other than dotnet 😂
That I would definitely be doing on windows.
DoctorFuu@reddit
All good if people have tools that serve them well.
Markuslw@reddit
yeah i mean honestly i didnt mean it insultingly but society has deemed "webdev" a slur apparently
DoctorFuu@reddit
I didn't read it as an insult. web dev is an area were stuff needs to be built, and people with good skills need to work there for that stuff to be well built.
By "society", are you talking about the reddit kids? When they'll get a diploma and a job, they'll become less arrogant (or so I hope).
Markuslw@reddit
The memes, whoever makes those
VerySmellyVagina@reddit
well the keylogging, AI and selling your butthole to microsoft works. The automatic updates also work very very well.
DoctorFuu@reddit
lmao, that works well for sure
grepTheForest@reddit
Lol
Tamsta-273C@reddit
I just use WSL2 and see no problem. Use win for GUI stuff and games, use my mounted ALMA for programing and control over libs. Add conda to have more freedom and you ready to go.
The Linux/Windows/Mac is not a problem anymore - use what ever you most comfortable with.
ehr1c@reddit
If you want to do this professionally, you're likely going to be working on a Windows (or macOS, in certain fields/companies) system. Linux in the workplace exists but it's certainly less common than the other two more "mainstream" operating systems.
GreatHeavens1234@reddit
Just use wsl2 for linux exclusive stuff. I use wsl2 for ansible.
Dualboot is another option, you can have both and choose at boot.
If it's your first time with linux, avoid arch. You are gonna spend a lot of time fixing basic shit. Stick to user friendly distros, Ubuntu, Mint, that kind.
Dazzling_Canary8371@reddit (OP)
First of all, thank yall for such helpful insights. I have decided that i will go for dual boot i.e windows for gaming and linux mint as my daily driver (which is literally coding and surfing internet). I really wanted to go for arch but considering it has a steep learning curve, i chose mint instead. Thanks again.
roreddit85@reddit
If you are a working professional who codes for a living, use linux (ubuntu or any other distro), Windows is too cumbersome for programming/working with remote environments etc, and macs in my opinion are too expensive and come with a lot of restrictions, specially for hardware accessories. You will be forced to buy all apple accessories to go with it and they won't work with non-apple stuff.
Just get an okayish thinkpad, install ubuntu and you will (most likely) love it.
Leverkaas2516@reddit
I love programming on Unix/Linux. It seems faster and lighter weight. If you learn to make use of shell commands, even at a rudimentary levrel, you can use tools like find, grep, cur, tr, and so on to great advantage.
aa599@reddit
I've unixed for a long time, but I haven't encountered
cur
, what does it do?Leverkaas2516@reddit
Sorry, typo. It should be "cut".
ComprehensiveCat6698@reddit
Yeah try Gnome provides a really good workflow and its really easy to stay focused on a task. My main reasons for leaving windows were it was colorful as f so my eyes would strain after some time and I hated not being able to use the terminal to do anything. Also I would never get anything done on that, It was just too distracting for me lol.
ZelphirKalt@reddit
Windows will only make things harder in many cases, when it comes to computer programming. It makes little sense to program on Windows, unless you are aiming at making some Windows-only game or something. Otherwise you will only be taken less serious, if you tell people you program on Windows. Knowledgeable people will ask either you or themselves in their mind: "But whyyy??? Doesn't he/she know that ...". Like, why would you use the worse tool.
plastic_Man_75@reddit
It ticks me off so much that many of the big companies such as auto desk and and Adobe don't support Linux.
We know darn well that their customers prefer Linux, I know because I have to deal with it. Linux is preferred because we can actually more easily control what the end user does and it doesn't break causing so many outages like prone to windows do
BlazingFire007@reddit
I’m almost certain if you survey Adobe Photoshop customers on whether they would use Windows or Linux (assuming adobe made a port) the vast majority would pick windows
FrequentTown3@reddit
Linux programming is just more comfortable overall, as a lot of things just work right out of the box.
Windows programmming, you'll have to do workarounds and WSL to get things setup. plus it usually takes more RAM, so you better ready investing in the RAM if you go this route. (Except for .NET programming, directX programming and other Microsoft (windows only) Technologies)
So depending on what you do. You can either pick windows or linux based on what you do.
Dazzling_Canary8371@reddit (OP)
Yea after looking at comments here, I am also considering dual booting my pc so that i can use linux for dev stuff and use windows for gaming (which i rarely do) but yeah.
BlazingFire007@reddit
I would just check if the games you play are compatible with Linux
YoshiDzn@reddit
Work on enough projects and explore enough technologies and you'll find a reason to use both. First thing I do with amy new laptop is arrange dual booting with a simple Ubuntu/Windows setup.
Linux helps me when it comes time to construct a deployment CI/CD. Its also the only environment I'll ever use Jupyter within.
Windows for all of my C++ projects thus far, and both environments are great with Go. While I'm here, f*ck Java
blackstorm5278@reddit
lol
PmanAce@reddit
I code on windows but our containers are linux based.
beatsbury@reddit
Uh. You can have linux environment right in your windows for years now. Moreover, I personally use this feature for learning C. Why switch the whole paradigm?
Dazzling_Canary8371@reddit (OP)
idk i was considering partitioning the disk lol. Its better to have full control of linux instead.
overflowingInt@reddit
VirtualBox? Dual booting is playing with fire. I'd either go all Linux with Windows VMs or Windows with Linux VMs. WSL can be used for a lot of stuff but due to some of the interfacing layers it doesn't work with some lower level stuff.
beatsbury@reddit
True, that. Many a time was I forced to format my entire system because of botched dual-boot.
calibrae@reddit
Because Linux as an OS is vastly superior to windows.
WokeBriton@reddit
Perhaps heresy in this sub, but...
From the PoV of a person who has to run adobe tools or some proprietary stuff for their job, linux is vastly inferior because its not possible to use these on linux.
I'm with you on linux being vastly superior, but this is definitely one of those "from a certain point of view" things.
bubblebuddy44@reddit
Yeah for any given task there is a version of Linux that’s vastly superior but as a jack of all trades windows is vastly superior. That’s why everyone uses it.
calibrae@reddit
I’d rather parsec into a windows VM for such apps than use WSL from windows. But to each his own I guess
WokeBriton@reddit
I'd prefer darktable to work a *little* more like lightroom does, but that's because I've been using lightroom since the beta of LR3 and it does exactly what I want it to do without me having to think very hard.
Jojos_BA@reddit
True, I have set up a VS-Code WSL config for a couple of friemds after using it myself for 3ish years and it is a truely comfortable way of programming and when u have good hardware it is nearly seamless.
I still switched, mainly because of window-managers and the far superior emacs experience.
Zealousideal_Role318@reddit
It doesn't matter. because you can use similar gui and vscode on linux mint
roboticfoxdeer@reddit
Learn both to be honest. You'll eventually want to learn how to develop and build software on both. I'm a linux diehard and even I dip into windows to learn how building C++ or using python over there works because that's where most users are.
dajiru@reddit
Switch to Linux and get out of your comfort zone. You'll learn a lot.
Impressive_Zombie949@reddit
Based on my experience, it's so much easier to setup a coding environment in Linux and Macs. I had a lot of problems setting up laravel and php on Windows.
vandalhearts@reddit
I won't say for development there's a clearly "superior" OS but if you're going to work professionally as a dev, you're going to want to learn bash terminal commands. Especially when you run into jobs that require cloud stuff. So just for that I would suggest either WSL or pure linux.
Informal-Chance-6067@reddit
Ubuntu is great.
divaaries@reddit
use wsl before full blown migration, most of the time it's enough
grepTheForest@reddit
People who use windows as their development environment fascinate me. Can you call yourself a competent programmer if you don't use the tools that are designed by programmers for programmers?
Dissentient@reddit
I don't care about being a competent programmer since at this point I kinda hate programming. I do it for the paycheck.
I also tried desktop linux several time and I never seen anything there that would make me want to use it over windows.
Not that I have a choice, my company does all development on windows machines. I don't write any code in my free time.
Physical_Duck_8842@reddit
I have used windows as a development environment. You are forgetting that a developer might develop the core competencies you mentioned by using a vm, managing their dev and prod environments etc. Tools that are designed by programmers for programmers do not only exist on linux. However I think any learner would benefit from switching to linux.
grepTheForest@reddit
That's kind of like saying you can use a hammer to cut down a tree.
Yes, if you are committed to misery or don't know any better
Physical_Duck_8842@reddit
Can you give me a specific example where a windows counterpart tool would be the hammer? I’m not a windows fan, I actually hate both macos and windows; but I don’t think its that black and white. Also I classify my hate to be caused mostly from principled reasonings, not pragmatic reasons.
grepTheForest@reddit
Windows terminal is not standards compliant so it breaks tui even on wsl.
Native ides in windows are basically just emulating what you would do natively in Linux with your own personally chosen software as separate but integrated tools.
Physical_Duck_8842@reddit
TUI issues in wsl can be misery if your specific use case is dependent on those issues being resolved, but then we are talking about a specific case.
How do we jump to the conclusion that windows being a hammer “generally” for a developer and they can’t be as competent as a linux user in what they do?
Returning back to your specific example, what standarts are we actually talking about? Also windows is not as terminal oriented as linux so maybe TUI’s are not what you are looking for? At that point I would argue that its a preference. If a tui functionality you wanted is broken (no translation will ever be perfect), but you can do the same thing with a gui, you just don’t like how it is done.
I don’t get what you mean about native ide’s. If you are talking about windows not being shipped with build tools and a text editor that is more powerful than notepad, why does how you access a tool matter that much if in the end you can access it easily and do the same thing? What do you mean exactly by “emulate”?
This feels like an argument of principles rather than one about productivity. At some point it boils down to “Windows is not linux, linux is good for programmer, thus windows is not good for programmer” true,true, not an implication. Even if everybody agrees linux is a “better” work environment for a programmer (I believe so myself), windows can still be a good work environment for a programmer, through different methods.
Also I don’t blame linux for 3rd party vendor issues like nvidia, but these issues still exist, who cares if issues are caused by the vendor of the tool or a 3rd party if at the end they affect you.
I am generally against microsoft or apple for predatory behavior, but that is again a matter of principles, not benefits.
Similar-Pear7329@reddit
Most Windows developers are probably using Visual Studio which has pretty much everything you need if you’re in that ecosystem. For most of my career I’ve used Windows at work and it’s fine. Even on Windows I’d use Vim emulation in Visual Studio though.
Tristan401@reddit
I'm unapolagetically in this camp. Windows programmers tend to lack core skills. Similar to "networking experts" who have no conception of a network without AD.
I always liken it to learning to operate a backhoe by going to the carnival and riding a backhoe-shaped ride that's on a track and takes you through an earthworks-themed series of displays. That's Windows.
grepTheForest@reddit
Windows is specifically designed with the stupidest user in mind. Anyone with a degree of tech savvy will find the entire experience to be user-hostile. And when you start digging into the bones of the OS, it's very poorly designed.
brogamer99@reddit
Nope. Windows is just fine.
slaynmoto@reddit
Why not both? Dual booting isn’t extremely complicated to set up for an install and it will allow you to dip your feet in to evaluate linux for your needs without a full commitment. You will definitely benefit from the experience, especially becoming familiar with bash/linux shell and the conventions that follow.
TheSpiffySpaceman@reddit
WSL
7182818284590452@reddit
I switched to mint (a flavor of Ubunt), and it was surprisingly easy. I view windows 11 as a downgrade from mint.
Yes, programming is easier on mint, but it is possible on Windows too.
Direct-Doctor-4481@reddit
I would say everyone should at least try linux once in their lives, but it depends on what you want it for, if you don't urgently need it just don't force yourself to use it. Otherwise if you actually need it to improve anything that has to do with your job then yeah, go for it!
Substantial-Ad7383@reddit
If it is an old slow machine Puppy Linux (either Ubuntu or Arch compatible) might be the solution for you.
pekz0r@reddit
Unless you are working with .Net and a few other windows focused technologies Linux or Mac is just better for developers.
LupusGemini@reddit
Ubuntu is much 'switching friendly' in my opinion
ToThePillory@reddit
It makes no real difference.
If you want to try Linux, you should, but for learning to code it really does make no real difference.
StaticFanatic3@reddit
Depends on your goals. Game programming? Don’t even think about it.
Web dev? I wouldn’t even consider Windows if it weren’t for WSL2, which essentially lets me use Linux with a Windows GUI
rov3rrepo@reddit
If you don’t game or use video/photo editors, yes switch. Linux is by far the superior OS for everything else
legendary_gojo@reddit
Linux, its really good for software development especially with all the AI frameworks.
nmkd@reddit
If you plan to do .NET, Linux is probably a really bad choice
kodaxmax@reddit
depends on what you a developing and who for.
Alagarto72@reddit
You don't need to focus on OS. Use whatever that can run your programming language
saberking321@reddit
If you are programming in c, c++ or php then Linux is a bit easier I think because the whole is is basically a c++ compiler and because webservers run on linux
IlliterateJedi@reddit
I would setup dual booting. Almost everything deploy-wise is going to be running on Linux. Docker containers are primarily Linux based, and they are something every programmer eventually needs to be familiar with. I primarily run Windows but there are librariers that are exclusive to Linux and being able to bounce over is extremely helpful.
DamionDreggs@reddit
I learned programming on Windows, but switched to Linux because that's where all my work was being deployed and I wanted to minimize my cross-platform deployment problems.
digitizedeagle@reddit
I'd say: Purchase a resource on how to use Linux within Windows: Virtual machines, WSL2, through the browser, etc. So you can have the best of both worlds
And it's so much better than having just one option. Sometimes you just can't do well without Windows software, even if the development experience is super with Linux.
No-Try607@reddit
I am a web developer and recently switch to arch with hyprland and I love it. It feels so much better to code on. It also got me to switch to neovim(I already knew vim motions on vscode) and it just feels so fast to work with. I defently recomend the switch.
SevenFootHobbit@reddit
Hey if you're brand spanking new, hold off on Arch. I've nothing against it, but you'll probably want to ease into Linux rather than jump right in (and definitely don't look at Gentoo right now). Ubuntu is definitely a popular option for beginners. Not my favorite. You should also look at Mint. You may also really like Open Suse. No one ever seems to give them a go but in my experience their tumbleweed edition has been rock solid while still being close to bleeding edge like Arch. But really, you can learn to code on anything, even a raspberry pi if you wanted.
Holiday-Medicine4168@reddit
You should develop in the environment you run stuff on. Linux runs most things.
Clean-Gunts2860@reddit
For doing most development, OS doesn't matter much. I just use Ubuntu because I find it mentally peaceful.
ninjaonionss@reddit
Use wsl, you can also use vscode in wsl
YesSurelyMaybe@reddit
Depends on the IDEs available. For me, the ideal setup is writing code on windows and executing it on linux.
Imperial_Squid@reddit
I support the other answers that switching purely for the sake of learning isn't worth it.
However, if you do want to switch and are more used to Windows already, two things: - I'd recommend dual booting your PC, this will let you pick whether you want to use Windows or Linux each time you boot up (or you can set a default) - Use Linux Mint, it's a very well supported and mature distro and is designed to be very familiar to Windows users, if you use this one you'll have the least culture shock possible
alexbottoni@reddit
For what regards the actual programming, it is irrelevant. Languages and IDEs are the same on every platfform nowadays.
Despite this, working on a Unix (Linux) machine is a lot easier and faster. It also teach a lot about the actual working of a computer (and not just because of the command line...)
Tristan401@reddit
I'll voice an opinion against WSL. It's confusing where Windows stops and Linux begins, and you're still not really learning Linux. I'm in favor of a full switch.
Yes it will be a lot of learning. Yes it will be difficult. But you are learning very useful skills.
Don't pick a flashy distro at first. Go with one of the "main" base-level distros like Debian, Fedora, Arch..
I'll also voice some support for FreeBSD. BSDs are near identical to Linux from a beginner/intermediate perspective, but they're FAR more well put together. Linuxes are piles of totally unrealted tools strapped to a kernel, BSDs are developed as a whole cohesive unit that all actually works seamlessly together. Great for learning how unixes work in general.
BadgerNatural4489@reddit
to be good programmer does not depend on if windows or Linux
choose the one you feel most comfortable with and that has the tool you like the most.
alzgh@reddit
If you aren't specifically a windows programmer, working on a linux as your standard working machine will teach you skills that will help you in your career.
Joedahms@reddit
Windows at work. Linux at home. Linux > Windows
Low-Passion-829@reddit
Wsl works fine, although I dual boot fedora linux (for work) and windows (for gaming) wouldn't switch just for the sake of changing.
kcl97@reddit
Yes Linux and don't use Ubuntu or Redhat based distros.
Use Debian, Manjaro, Arch, or MX or AntiX.
SnugglyCoderGuy@reddit
Depends on your motivations for wanting to learn how to program. So, what are they?
Glittering-Work2190@reddit
No need to switch. You can have both by using VM's. My PC runs Windows, but I use VMs for work.
laveshnk@reddit
Anything you can do on linux, can be done on windows. Speed wise theres almost no difference.
Id say if youre working with servers, lots of back end code use linux (host a VM on your windows and work on that, or use Windows with Linux Subsystem)
Or if youre more of a front end guy and used to designing stuff Windows is perfect. Either ways theres not much difference and if you become a developer, youll end up using both anyways.
Dude-0007@reddit
Linux is best
WokeBriton@reddit
Do I think you should switch? Insufficient information given to say yes *for your particular use case*.
Is it worth switching to linux in general? Generally speaking, yes. Learning something new for the sake of learning can be very rewarding, but you have to have sufficient spare time to do it. That generalisation aside, please see above ref insufficient info.
What kind of programming are you looking to learn? Do you intend to write some new game in java which will supplant minecraft? (anything you can get a JVM running on) Or perhaps an office suite so good that microsoft will come knocking with a large cheque? (best to stick with windows or mac) Or simply learning the logical thinking required to break a problem down into small chunks that you can then implement in a chosen language? (any OS you want, but perhaps best to stick with what you're familiar with so you're not learning an OS and how to programme).
Watsons-Butler@reddit
I’d say Linux or even a Mac - unless you wind up programming windows-specific stuff, you’re more likely to be using bash rather than powershell. (My wife got a new job with a Senior Engineer title and they issued her a windows laptop, and the one thing I hear every day is “WHY CAN’T I JUST HAVE A TERMINAL? WHAT IS THIS POWERSHELL CRAP?”
Dus1988@reddit
Honestly, I program on a Mac at work, on windows for some personal project, and sometimes I do on Linux VMs on my homelab
It really hasn't been a hinderance on any platform
Lonely-Bet-7394@reddit
If you don't have experience with linux, switch won't be seamless. If you want to learn it, go for it. If you want to install and do stuff like on windows, you may feel confused
mrfredngo@reddit
It totally depends what kind of programming you want to do.
I’ve been a programmer for over 25 years. Web development to be specific. Started using a Mac 20 years ago and never looked back.
All my programmer friends all use Mac. Every programmer I’ve ever hired all use Mac. Oh except one guy who insisted on using Linux and I did let him.
None of us use Microsoft technologies or program anything Microsoft-related. So there’s that.
Efficient_Loss_9928@reddit
Completely depends on what kind of programming you do.
I personally would always start with WSL and see if you like the experience.
knows_notting@reddit
Windows + WLS
Crypt0Nihilist@reddit
Personal preference, I use Linux at home, but for work I have to use Windows, but WSL gets the job done.
SkibidiSigmaAmongUS@reddit
Yes
PigSlam@reddit
What can we tackle next?!
MetalUpstairs@reddit
Going to the moon
Different_Counter113@reddit
The really valuable part of knowing how to develop on different os' is based around understanding the filesystems, command syntax, and general system applications.
Starting learning to develop on Windows is more than OK. If you want to you can use WSL to learn a Linux distro like Ubuntu right inside your powershell terminal. You get all the benefit of docker desktop, which Linux doesnt have. You can't do windows stuff on Linux, so it beats it there for sure.
But what others have said is correct, in terms of actual dev work, for example java, it makes little difference whether you're developing on Linux vs Windows. Also all the other stuff like DB servers, application servers, Web servers, etc. All OS agnostic and in most cases there is an installable version of each for all OS's.
7mzb@reddit
learning shell is a must in any dev career, just start with an easy distro
IntroductionOld6166@reddit
It depends on what do you plan to program. For web development usually it does not matter. For low level stuff, maybe it could be worth it.
If you are learning to program it does not matter. But if you still want to use Linux, choose Ubuntu, Mint or Fedora. Stay away of Arch until you have the time to fix stuff after upgrading your system.
And even with Ubuntu you will have to fix things manually. So consider that if you don’t have enough time.
waffles_rrrr_better@reddit
Yes. However, if you have a high res monitor and don’t use dp you’re gonna have a bad time. I use arch btw
TerraxtheTamer@reddit
In this time and age why not have a Mac, a Linux machine and Windows with WSL. Why would you limit yourself? Programmers usually get paid and computers cost less than a bicycle.
TheBewlayBrothers@reddit
Normally people program on the platform that they are targeting their applciation for. It's certianly useful to know Linux, since alot of programs run on it
itsredditNotLife@reddit
I switched to follow T.O.P and while it was overwhelming and is still intimidating, im LOVING linux. Havent used GUI to navigate at all since switching.
Obviously using AI for guidance but im getting more comfortable with it every day. And god damn is it fun!!
0xd34db347@reddit
It's not hard to give it a test drive and decide for yourself. I prefer the DX on Linux.
word-dragon@reddit
It’s always worth switching from windows. To anything. For any reason.
ffrkAnonymous@reddit
Absolutely worth it. Steam sucks on linux, and without steam your productivity will skyrocket.
Psychological-Sir226@reddit
Just use WSL and I personally use pycharm to create scripts for programming
David_Owens@reddit
It doesn't matter that much. Windows is actually more useful for programming because you can use it to develop both Windows and Linux apps.
Signal_Job2968@reddit
100% worth it.
Signal_Job2968@reddit
I use arch btw
Dazzling_Canary8371@reddit (OP)
Would you recommend to a complete linux newbie? Arch has a steep learning curve right?
SkibidiSigmaAmongUS@reddit
Just install and use it, youll get used to it
If You don't know a command or something any AI can give you codeblocks of terminal instructions to do almost anything
Dazzling_Canary8371@reddit (OP)
makes sense. thank you
SkibidiSigmaAmongUS@reddit
By the way, don't overthink the distro
Every Linux user goes on a distro swapping phase lol
Signal_Job2968@reddit
fr
Signal_Job2968@reddit
Nah, I was just saying shit, I would probably recommend either ubuntu or fedora as other redditors here have said. but archlinux is not that hard. Especially if you use the archinstall script, I started off with arch and it was one of the best decisions I made when it comes to programming.
International-Dot902@reddit
Bro, Linux isn’t as tough as some people make it out to be. It’s similar to any other OS you don’t necessarily have to type everything in the CLI if you don’t want to. You can download a GUI, and if your goal is coding and making projects (not using Vim), it’s not very different from Windows. As long as you don’t rush into things or download random stuff, and instead only install what’s necessary or follow YouTube tutorials step by step and slowly, you’ll be fine. You might face some issues when downloading for the first time, so I’d suggest dual booting it.
gmes78@reddit
As an Arch user, I would recommend Fedora. It also ships very recent software, but it'll work out-of-the-box, and should be a smooth experience.
cib2018@reddit
Even if OP is a C# programmer who creates WPF desktop applications, hell yea. Window sucks. /s
GregorDeLaMuerte@reddit
Personally I find Windows' NTFS file system awfully inconvenient for hundreds of thousands of small little source files. Indexing or mass deletion takes tons of time. Also PowerShell syntax feels weird to me.
Ext4 on Linux with bash just works better for me.
bnye200@reddit
Consider a vm like vm box to try it out. If toublikenit you can always dual boot.
pepiks@reddit
Depend what you code. For Windows app better Windows and for Linux - linux. It all depend on use case. When you coding in Python a lot of times architecture is more important as sometimes are difference like time/date errors for the same code. If you have tool like which support all platforms which you use - it will be not real difference except command line operations like invoking compiling, running support stuff.
gomsim@reddit
I think what's good about Linux (or macos) is that they use the unix-like system structure and commands that is used on almost all servers. Windows is different.
ohlaph@reddit
Linux us amazing for programming. Do it. Fedora is insanely stable.
custard130@reddit
"programming" has many different areas/types
some are better on windows, some are better on linux, some it makes no difference at all
there are some advantages that come from using the same operating system that the software you are writing will run on
eg if you are building something that will be ran as a native app on windows then it will be more convenient to use windows for development too
if you are writing the backend for a website that is expected to run on a linux server, then it will be convenient to use a similar flavour of linux for development (debian / rhel / etc)
they are mainly because it will simplify installing dependencies + testing
eg as a hypothetical situation, lets say you want to learn PHP to build some dynamic websites, if your server is running ubuntu but your dev machine is running windows, you need to learn how to set up php and your other dependencies first on windows and then again on linux, if you used ubuntu on your dev machine too then you only have to learn once, you are also less likely to run into issues caused by subtle differences between the OS'
on flip side lets say you are writing a game in c++ which you want to run natively on windows, but your development machine is running ubuntu, getting the basic window of your game to open up and receive input actually requires OS specific functions, eg for windows there is a "Win32" API that you have to call, which is only available on windows, linux does have its own version but then that only works on linux. problem 2 is that DirectX (the main graphics api used by windows + xbox games) is only available on windows, there are cross platform alternatives but that is something to consider
all of these problems, and pretty much anything else OS specific, can be solved via virtualisation.
eg the php on windows you could use WSL or some other solution to get a linux VM or even better imo use containers (which docker for windows will manage a linux vm for you behind the scenes)
the windows game on linux i think there is wine or options for running a windows VM which can allow running windows apps
personally my advice / what i do, if i am building a windows native app i will just use my windows machine
if i am building for a linux server or an embedded device i will use a linux VM (i have an Ubuntu 22.04 VM which has most of my projects in)
if i am building something as a cross platform app then i use whichever i feel like depending on the project, eg standalone little Java desktop apps i generally use windows, if im building an electron based client for an api ive written i will use linux because most likely that API is set up to run in my linux VM
reasons - i use windows as my main/host OS because the apps i want to run on windows are the most performance sensitive + most dependence on the direct hardware eg GPU - i run linux in a VM rather than dual boot/another machine tbh because i found that most convenient, i did use to dual boot on my old laptop but having to close everything and reboot every time i wanted to switch between them was a PITA, with a VM i can have my linux VM on 1 screen and my windows host on the other with shared clipboard between them
snowbirdnerd@reddit
Just fire up a VM on whatever you are using and start there.
No_Educator2991@reddit
There both good in my opinion.. just partition your disk get the Ubuntu on a usb and install a dual boot so you can choose between windows Ubuntu or arch when it boots up.
Stevad__UA@reddit
Windows with WSL
apexinnovator@reddit
macOS
SidePets@reddit
Linux will help you understand some of the core components you using while programming. The under the hood value of learning Linux is never underrated. If you want to pursue .net then yes if python then no.
elAhmo@reddit
If you have to ask this question - no.
cyrixlord@reddit
saying that you want to program is very vague; its like saying 'Linux Vs windows for typing?' Almost any stack you want to code in will be available in windows + wsl. just because you develop something in windows doesn't mean it has to run in windows.
Franswaz@reddit
Depends on what you do, if you do C# windows is probably a better bet with visual studio (not code); which is the industry standard ide for C# development, and native windows application development. Along with in the industry a bunch of legacy .net framework code bases.
It would be in your interest to learn using that ide.
For C and C++ it’s easier to get started on Linux and managing project dependencies is easier, cmake is a fucking chore to get working on windows, where in line. It just works. However you get Visual studio (not vs code) which despite running like ass has an amazing debugger.
But i generally find the dev experience otherwise just nicer on linux, even if you aren’t a power user.
Franswaz@reddit
Depends on what you do, if you do C# windows is probably a better bet with visual studio (not code); which is the industry standard ide for C# development, and native windows application development. Along with in the industry a bunch of legacy .net framework code bases.
It would be in your interest to learn using that ide.
For C and C++ it’s easier to get started on Linux and managing project dependencies is easier, cmake is a fucking chore to get working on windows, where in linux It just works. However you get Visual studio (not vs code) which despite running like ass has an amazing debugger.
But i generally find the dev experience otherwise just nicer on linux, even if you aren’t a power user.
qrzychu69@reddit
Windows is more then fine, especially when you know how to use it. Switching to Linux will not make you a better developer
Windows has amazing window management (unless youw ant tiling), clipboard history, you can use use win + 1,2,3 yo switch to first, second, third app on your task bar.
You get virtual desktops, and with power toys much much more.
I don't mind windows, it has some problems though (why is menu start using react native? Also, just Google git auto clrf), but Linux is not this prince on a white horse.
It lacks support for quite a big batch of available hardware, some software just straight up doesn't work (git extensions pains me, games are getting better).
Also, you can EASILY mess your installation up, even by just filling up the hard drive.
File system is funny - external drives are just directories in mnt folder. You have some program that starts on boot and is supposed to use your Elements drive? Well, now your external drive is mounted as Elements1 because fuck you.
I would stay with windows for now, and use WSL if youw ant to experiment with Linux
Chrykal@reddit
I mostly prefer developing on Linux, especially for Node.js stuff, and am often using WSL when I am on Windows.
I would say it's not a hardship to try switching to linux... unless you're trying to go straight into Arch, in which case you'll need to learns some of the ins and outs of it to even get it installed succesfully.
However the AUR is an excellent resource that I would never be without, I think Manjaro would be an easier starting point into the Arch ecosystem though.
heyimcarlk@reddit
If you don't want to fuck around with linux specific oddities then I wouldn't even worry about it. If you do then go for it. You can always use a live/dual boot to try it out for a while.
309_Electronics@reddit
For programming most people tend to go to mac because its a Unix platform and coding on such nix platforms is a lot nicer. Still, wont mean windows cant be used for coding, its just most people rather want a nix environment for it
Dazzling_Canary8371@reddit (OP)
I used to be a mac user and it lagged like hell whenever i used open docker
Sophiiebabes@reddit
Yes, but I'd go with Debian or Mint over Ubuntu.
I can't comment on Arch, cos I've used Debian for about 8 years!
FastAd543@reddit
Its a huge "it depends"
On the server side, I cannot fathom working without it. My world is in it and I rarely interact with ms systems in an "ms way" and every component is a linux based component.
On the desktop, it depends.\ On what?... of wether you are just a programmer, or if you use your computer for other things, specially when it comes to dealing with customer's crap, such as word documents, excel crap with code, or tux forbid, a rainbow of vpn adapters and crap like that.
So... I personally like Linux as a desktop, and it makes my dev life a nice experience... all untill I need to interact with the adobe's of the world in a professional manner.\ If there is one thing I cannot change, that is customers.
So at the end of the day, you will do you based on what works best for you.
Cheers!
catbrane@reddit
Windows is better if you are aiming to make programs which only run on Windows, especially programs with GUIs. Some other areas (eg. some embedded systems) can be better on win.
Linux is better for everything else (IMO).
Jourleal@reddit
Why do people always jump to Arch linux immediately? You all really like rolling release? If you're fully new to linux, use ubuntu or debian instead. They're pretty good without Arch headaches. But if you program in c# or .net or want to make your life easier with drivers, apps and stuffs, better use Windows.
leavemealone_lol@reddit
I dumped Windows and moved to Fedora yesterday. I have used Ubuntu for a few months before. My two cents.
Linux is amazing, but is definitely a lot more finicky. You’ll be spending a ton of time tweaking things out of curiousity, need, or “oh shit i fucked something up and if i log out now, I can’t log back in with a GUI”
Enter Linux (or anything other than Ubuntu or maybe other Gnome distros) only if you’re willing to sink time into maintaining your OS- which both Windows and Mac do for you.
But coming back to your question, in my opinion, no. Programming isn’t a justifiable reason to jump to Linux. Of course, Linux is better suited for a tech person, and a lot of programming tools come with better compatibility for Linux, but these specific examples are so few and far in between, and with WSL working well enough, hopping on to Linux isn’t a question of “can I program better in it”. Instead, it’s a question of having and maintaining a whole OS mostly on your own- which doesn’t have much to do with programming.
PossibleProgress3316@reddit
Run a dual boot windows and Linux see which one you like the best! I landed on Fedora and it’s been great, arch is good also but for a newbie to Linux it can be frustrating, don’t use Ubuntu you will install it use it for a week and then ask yourself why did I do this!
cormack_gv@reddit
Yes, but you can try out Linux using Windows Subsystem for Linux (WSL), available for free on WIndow 10 or 11. I suggest the Ubuntu Linux distro, which I think is the default for WSL.
https://learn.microsoft.com/en-us/windows/wsl/install
This gives you command line. If you want to run gui (X11) apps you need to run an X11 server on your desktop.
Here's the one I use:
https://sourceforge.net/projects/vcxsrv/
fuddlesworth@reddit
Windows with WSL2. Best of both worlds.
Master-Rub-3404@reddit
I mean, I hate Windows and love Linux, but I’ll be honest. If the only reason you want to use it is because you’ve heard it’s faster and less error-prone, you don’t need to install it, you can literally just try it straight from WSL in Windows to see for yourself. You can also spin up a virtual machine if you really wanna dive deep and try before you buy.
superwawa20@reddit
I don’t think it’s all that necessary to completely switch. I’d recommend dual-booting, or using WSL
Jojos_BA@reddit
Wsl is a the only thing keeping me sane when i have to work with windows.
Jojos_BA@reddit
Depends, wsl and VS code is a great basis for all kinds of programming. If you switch to linux that would be a bit different, ofc it works, but proprietary software is not quite aligned with the Linux “spirit”. In my experience where Linux really shines is when u switch to more FOSS stuff, aka Emacs nvim and such which work way better than on windows (also based on my experience), then there is the topic of window managers, those work the best on linux, also a big boon. (The windows WMs are not unusable but a way inferior experience (I still use them when needing to use windows)
If u plan on not using the pros of Linux mentioned I would stick to windows, but if u only even want one, the switch might well be worth it.
Dry-Reputation-9909@reddit
You don't really need linux, Linux makes coding faster easier handier, cleaner, just lots of improvements to everything but.
You will be sacrificing a lot of other features windows would have.
If your goal is just to maximize your coding, maybe for your job, then yea Linux is good.
But if your doing this for a project, or just learning how to code:
Then windows is perfectly fine, Linux would be better but theres a difference in actually needing the improvements and not.
My advice use windows thoo, majority of software engineers use windows or macOS
FigureFar9699@reddit
If your main focus is programming, Linux is definitely worth a try. Most dev tools, Docker, and servers run more smoothly there, and you’ll learn a lot just by using it day-to-day. That said, Windows is still fine if you’re doing .NET, gaming, or need certain apps. Many people dual boot or use WSL to get the best of both worlds. Try it for a few weeks, if it clicks, you’ll never look back
Pandemonium1x@reddit
Ubuntu Yes Arch No
Programming works in Linux just as well as Windows.
OddSpiteDevil@reddit
dual boot