DEV Community

Manuel Ojeda
Manuel Ojeda

Posted on • Edited on

Moving to Ubuntu. A Windows developer point of view

Hi guys, in this post I wanted to share with you my development experience from a Windows point of view and, why I decided to move to Linux (Ubuntu).

Prologue

I being developing since 2015 using Windows as a primary OS. Normally I do some development of PHP Web App's, and as some of you know, doing PHP in Windows can be a kind of tedious. Started using the old WAMPP, then moved to XAMP and so on until I started doing Laravel with Laragon apps since at the end 2017.

In my experience Windows is such a great OS (Windows 10 is such a complete OS that let you do a lot of stuff, even using Linux with WSL, I'll board that point later), of course is intended for mainstream use, common uses like listening music, watching movies, doing some paperwork with Office, etc. etc. But at as developer can be a little tedious setting a proper development enviroment, since installing the right tool, seeking a proper compatibility with the Operative System etc etc.

After some point you can make this possible, you have installed what you need but then the main Windows issue comes to life, the OS starts being too slow, the startup takes too much time, of course you can solve this installing an SSD which is common at this time but before at 2015's was a new thing in the hardware topic.

Windows 10 and WSL comes to the searchlight

As I mentioned before, Windows 10 came with a lot of great thing as a developer, the developer experience got a new life, why? Because Microsoft did the unthinkable, added Linux support with WSL (Windows Subsystem for Linux) but once again the performance over time degrades at that point this can be slower than using the native OS.

The main problem with WSL is that sometimes trend to freeze when executing a task, since a simple npm install <something> can take more time that doing it native (Windows or Linux). Also, some PHP extensions can't be used in Windows because there is no working approach, this happened to me after started working with a Laravel project that was developed using Ubuntu, found out that a specific PHP extension was needed and there is no Windows solution for that.

So then I started using Laravel Valet WSL, you can check an installation guide here and the development was fluid, no problem at all, just some server restart after starting the WSL when you recently started up your PC because you get a 502 error that can be fixed using valet restart. But the freezing keep coming sometime along. So decided to try a native Linux approach.

Decided to try Ubuntu

After meditating a lot of time I decided to move to Ubuntu, I was using Ubuntu WSL version for 1 year long and I had the confidence to move into a new Operative System since I was using the Ubuntu CLI and lost the fear we have most of the time using Linux. Yes, that fear that make you think you can break something using the Linux Console Bash, and if you break something, there is no problem, at least you learned something from that.

The only thing I had to be careful was not to destroy the Windows installation in my workstation. I'm using a PC that became with a preinstalled Windows 10 and with one HDD only, so my fear was if the Windows install became rogue, with my luck and this tutorial there was no problem at all.

Then started installing everything I needed to start developing:

I noticed a bigger performance, more efficient installation and didn't take too much setting my development enviroment (maximun 3 hours) and I was amazed with this result. But of course you may ask, what happens with all the Windows products that doesn't works in Linux?

There are Adobe XD alternatives, you can try anoter approches like Figma which is a great UI design tool. Or GIMP as a Photoshop alternative, this one is pretty powerfull.

I give you an invitation to try Linux (doesn't matter what distro did you choose), it will give you a great developer experience and performance, also doesn't need too much resources from your computer, which is nice now a day.

Top comments (9)

Collapse
 
dabit_coder profile image
David Oliva Tirado

Nice article! Some months ago I created a partition in my computer to work in a linux environment and was the right choice. The only thing I would recommend is to do not look for another distro. There are ones with better performance, better UI or similar, but once you start jumping from one distro to another you are lost.

But if you feel it, try Pop!_OS or Manjaro. Both are really good in performance an stability :)

Collapse
 
dhatguy profile image
Joseph Odunsi

I recently got Linux Mint installed alongside with Windows 10(dual-boot). Though I have been using Windows for a long time, I now spend most time on Linux Mint. I only boot my Windows when I want to do things I can't on Linux.

Collapse
 
jekinney profile image
jekinney

Problem I have with Linux is many times I would do more work to get around issues (like no Adobe, dual boot issues, wine etc) than it's worth. With that said it's definitely about use case. With Vagrant and docker I've actually dropped Linux use personally, only issue is capitalize issue where windows doesn't care but Linux screams.

Collapse
 
silverman42 profile image
Sylvester Nkeze

I feel this article speaks directly to me. I have a laptop with windows 10 pre-installed in it. My dev stack is similar to yours (Laravel and vuejs). Did your PC suffer quicker battery power consumption when using Ubuntu ? This is my major fear as i have heard about ubuntu OS not being light on the battery.

Collapse
 
manuelojeda profile image
Manuel Ojeda

My PC is a desktop one, at this point I don't know how much battery will Ubuntu use, but i'm sure this article can help you:
help.ubuntu.com/stable/ubuntu-help...

Collapse
 
eliaweiss profile image
eliaweiss

I'm using docker on Windows, and it works very good in any way.
Getting used to docker took me a while though

Collapse
 
zexias profile image
Matheus Faustino

Docker, outside of linux env, is at maximum ok. I mean, it works in others OS but the performance isn't that great and the filesystem drive for windows or macos is not good as the one in linux. So, if you have an I/O bound application, you're dead, it is too much slow.

Collapse
 
jekinney profile image
jekinney

As I mentioned in my comment, eliminated my need for Linux using vagrant or docker.

Collapse
 
manuelojeda profile image
Manuel Ojeda

Should give a try to Docker, thanks devs 🤘