Moving to Ubuntu. A Windows developer point of view
Tags: ubuntu, linux, windows, php
Published: 2020-02-10 21:42:18

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](https://laragon.org/) 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](https://dev.to/manuelojeda/setup-a-php-dev-enviroment-with-laravel-valet-and-wsl-1pp6) 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](https://www.tecmint.com/install-ubuntu-alongside-with-windows-dual-boot/) there was no problem at all.

Then started installing everything I needed to start developing:

- PHP 7.2
- [Laravel Valet](https://laravel-news.com/valet-for-ubuntu-linux)
- Node.js
- ZSH
- etc.

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](https://www.figma.com/) which is a great UI design tool. Or [GIMP](https://www.gimp.org/) 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.