4
votes
Honest question: Are Windows or Linux laptops more suited for freelancers?
I know it's a technical question but I want to know specifically from freelancer perspective. A freelancer's decision making differs from that of regular corporate worker in this regard due to many reasons:
- Freedom to choose: Unlike corporate, a freelancer isn't imposed any process or specific software guidelines to follow. They're free to use Linux and open source if they want to.
- No team compatibility: A freelancer can work on specific project with a geographically distant team but they don't have to submit to any long-term compatibility constraints.
- Budget constraints: A freelancer can't typically afford costly licenses. With corporate, they can scale well and bring down the licensing costs which isn't true for freelancers. Hence, open source software is typically more suited to their workflow (even when using a Windows OS).
Given all these factors, do you think a Windows or Linux laptop is more suited for a typical Freelancer? What do you happen to use?
I had to use WSL for the first time recently, and as someone who spends all day on macOS locally and Linux via SSH I was pleasantly surprised! It pretty much just worked like I would expect any other Ubuntu install to do, no noticeable glitches or performance issues even under heavy load.
For anyone who prefers the Windows experience for whatever reason and isn't developing games or .NET applications, it seems like it'll save a lot of mental context switching between local/remote/the shell everyone on Github assumes you're using.
I've had trouble with internet connections on WSL. First is that docker desktop has a bad dns entry I think? To fix it I had to go add some new dns config. The other issue is that it does not play well with VPNs. I gave up trying to get it to connect on my corporate VPN. I didn't need it for work, so it ultimately didn't matter.
It's been great personal projects because it helped me learn how to use Linux.
Mostly PHP scripting work (CodeIgniter, Symfony, Laravel, etc.). As you said, both have excellent tools in this regard. Windows has the Apache XAMPP and Linux distros have their own repositories with the full LAMP stack.
I'm just a bit curious what most other freelance coders use in this regard, and what all comes in their decision making process?
Most of the code you are writing will most likely be on a linux machine, and as a freelancer you may not always get acess to a test server, so I would say that, as long as you are already comfortable using linux to get work done, linux probably edges out here.
A lot of freelancers (most?) have a regular set of clients they work with, and specific requirements for them. For me, some of my client work requires reproducing and fixing bugs on web applications running on the clients’ main operating systems (usually Windows). So it heavily depends on your:
For most clients, the cost of a laptop for a specific job pales in comparison to what the labor costs.
I hear Windows 11 has gotten better about this, but I love KDE's window management.
Window Rules, that let you set size and position of windows based on window state is one of what I consider killer Linux features for productivity.
That said, you'll probably have to VPN into client's machines at some point, so having a Windows partition handy is probably a wise idea. Looking at you Citrix. Bet you a nickle someone came up with a guide to mount a linux partition in WSL.
Just speaking from my own career experience: In software development, very few necessary tools are platform-specific. Things that must run locally on a computer are almost always cross-platform, and have offerings available on the 2 major platforms, if not all 3. Furthermore, a lot of stuff happens (in the web development field, anyway) remotely on servers and/or in the cloud. You can use any of the 3 to access remote stuff. You can get pretty much everything done with a web browser, an SSH client, and your choice of IDE/editor.
A few specific fields come to mind where you might need to use a specific hardware + OS platform: audio, video, graphic design, engineering (CAD, etc.). But, otherwise, I'd say that most software engineering can happen with the engineer using whatever they want (subject to restrictions imposed by company IT deptartments -- which, even in the case of freelancers, may not always be avoidable).
Depends on what you're doing - but a very popular model is to do actual work in VMs. Especially for a software developer where you might be installing software or specific libraries or changing settings that might affect other projects. Its also great if you accidentally screw up your system - you're instead nuking a VM instead of your laptop. I'm not a freelancer, but I'd imagine separating work by project/client into separate VMs would also be useful for keeping different projects distinct and/or secure. In the case of VMs, it doesn't really matter what the base OS is. I work for a linux company, but it isn't uncommon to see people using macbooks - with browser/email/chat/etc on the main OS, but development would happen in a VM.
Using containers might also work well, and the OS matters more there.
Given the things you're doing, Linux will probably be more convenient. However, with a good SSD and 16GB+ o RAM, Windows can be pretty nice. If you ever plan to game even a little or use specialized non-Linux software such as Adobe, Windows 10 is a superior experience.