Why Windows with its 20H2 update is the best OS for FullStack Developer
First thing first, if you used to use low functions of Unix/Linux OS in your daily work/practice then this won’t fit to you, but if you are like me a web/mobile developer that used to use them just to run your server using tools like Apache, Node.js etc and IDE like Android Studio or VS Code then this will totally fit to you.
Now if you are still here then let me explain my statement.
Let’s start from the beginning. Between web and mobile development, the first coming is web development that was mostly done using a Unix like OS (Linux like or MacOS), Windows was not a good option even if it’s the most used OS out there. Coming from that, if you wanted to develop, Windows wasn’t the best choice unless you’ll need to use program like IIS or develop a ASP.Net like program. Then now, with the reign of the actual CEO of Microsoft, Satya Nadella, the company started to embrace the world of Open-source program and so Unix like system/program. We saw the first release of their work called WSL (Windows Subsystem Linux) that allowed you to run a Linux OS in your Windows like a simple program. At its first version, WSL didn’t run a Linux kernel but just emulated its core functions. It was a good start but it lacked of lot of stuffs that’ld need to program. Then came the second version requiring Windows 20H2 cause this one beside the Windows Kernel has also a Linux Kernel, so the Linux core functions are not longer emulated but they was really excuted from a real kernel. From this moment, the game changed. You could execute almost all of the CLI linux programs you’ll need to develop for web and mobile like you was on a Linux machine even though there’s little difference of performance depending on what you achieve.
Windows 20H2 and later for Web development
Why is Windows 20H2 and later version your best deal if you are a web developer ?
So you have:
- The possibility to run multiple distributions of Linux at the same time almost as powerful as a Linux machine.
- The possibility to have one editor and access your code in all these distributions, and windows, and share files between them as simple as a copy/paste.
- A unify terminal named Windows Terminal, not installed by default but easily installable through Microsoft Store and allowing you to execute all your systems terminal alongside in tabs like in a browser and it has a lot of utils coming with it. You can even execute some bash commands within it.
- Access your web server inside your Linux systems from Windows for some tests purpose like testing through Windows Postman or all browsers, this way you’ll have a real end user experience.
Windows 20H2 and later for mobile developer
First thing first, if you are iOS developer, we both know that Windows isn’t for you because Apple restricts iOS developement to MacOs.
So for all others mobile developement (Android, Cross-Platform, etc …), Windows had the advantage to have the drivers available for almost all devices that’ll need to develop/test your development with. The software you’ll need will be available in it.
As Flutter development, i had to use VS Code and Android Studio for my mobile android development. The experience was almost same in Linux system like Ubuntu and Windows, both possessing all requirements but in Windows i had one little issue. Not that really troublesome but was a disadvantage against Ubuntu. This issue wasn’t really related to development but to Git for versioning. In ubuntu and others Unix like systems you have in terminal the autocompletion of commands. That really help you in development and using Git commands on your terminal but Windows command or Powershell didn’t come with that. There’s some tricks to add it or do something like that but not as complete as in Ubuntu. Fortunately, in Windows during Git installation you can install the Git bash that it’s a Unix shell like with autocompletion and you can execute it using the contextual menu in a folder or you can set it as your default Shell in VS Code and get all bash utils and power or add it to your Windows Terminal.
So you have a great OS, fluid, very user friendly and with all tools required to develop all your apps. It allows you to create/use multiple subsystems and use them almost like a real OS and in near future it will have the possibility to execute the GUI of Linux OS like a simple application. All you have to do is to install it and have FUN.