However nothing stops you from using 100% Windows tools for development environment, it is not as terrible as it was 5 or so years ago. ’ to launch Visual Studio Code there.Īll the solutions I showed in this article could be summarized as “bringing Linux experience to Windows”. ’ to run Windows Explorer in current directory or ‘ code. exe’ at the end or make a symlink… For example, I run ‘ explorer.exe. Luckily same pattern could be used with WSL with no problem, it could run any Windows apps, just don’t forget to add them to PATH and add ‘. There is a common pattern for me on Mac to ‘ cd’ into specific directory via console and later launch Finder or text editor within that directory from console.
Setting up Docker to work this way takes just 10 minutes: you’ll just need to install Linux Docker client, change some settings in Windows Docker GUI, make a symlink, add a single line to your bash/zsh/etc configuration file and probably make an adjustment to your ‘ docker-compose.yml’. Just follow “ Developing a dockerized web app on Windows Subsystem for Linux (WSL)” article. There is workaround available, allowing you to run native windows docker server and communicate with it from Linux docker client via WSL, so you’ll achieve same user experience as on Mac for example. You could always open separate power shell tabs in CMDer, but it is not very convenient IMO(for example, you cannot run Unix shell-scripts on top of Docker and need to create PowerShell versions instead). However there is still a downside: it assumes you’ll work with ‘ docker’ and ‘ docker-compose’ from cmd or power shell (or some Windows GUI of course).
I won’t get into WSL setup details, there is already Windows 10 Installation Guide for that.Īfter following the guide you’re getting full-fledged Windows Docker client and server. Ironically, you’ll need Windows PowerShell just to set up Linux Subsystem for Windows and continue with bash, zsh or other unix shell of your choice. There was an old Joke: “The only time you are allowed to use Internet Explorer is when you’re downloading Chrome or Firefox”.
Let’s set up basic development environment on Windows, so you’ll get similar experience to what you have in Mac or Linux.
Nowadays premium laptops are not limited to Macbooks, there are Dell XPS, Asus Zenbook Pro and few others that are more powerful and flexible.
Going forward let’s assume you’re less lucky fellow like me, who cannot use Linux (probably you need commercial software that is not availble on Linux or some hardware does not work properly on Linux) or not quite happy with Mac (products are not flexible enough for you as a power user, while the cost is sky-high).įor me the turning point was the release of 2016’s Macbook Pro, that lacks ports and functional keys I need every day, shows mediocre performance, but costs more than ever and isn’t upgradeable. If you are completely happy with your Mac/Linux laptop or desktop workstation - good for you, probably you should stop reading this article right now. Why is it worth using Windows and not Linux or Mac? If not, Windows development experience is closer to Linux now. If you’re using Docker, development on Windows and Mac feels virtually the same. Raise of containerization technologies, particularly Docker.Release of Windows 10, which is a solid modern OS… and yeah - it supports virtual desktops.
There are few innovations hapened last couple of years, that made development on Windows enjoyable: The pain is goneīut now we’re in 2018 and all those issues are not relevant anymore. one with IDE, terminal and probably other development or testing-related tools, separate desktop for instant messengers, etc. It feels so natural to have separate desktops for different contexts, e.g. Probably the biggest downside for me was lack of virtual desktops. Using libraries with C-bindings was a nightmare: you were forced to either find compiled DLLs somewhere or build them yourself! There were always workarounds like using cygwin or developing in virtual machines (and later Vagrant), but it was still painful comparing to development on Linux or Mac.Įven from a power user standpoint Windows was quite inferior to Linux and Mac.
Developing server applications (meant to run on Linux in production) was always a pain in the ass on Windows: you lacked powerful Unix console with the same tools you have on a Linux server, you needed to download and set up custom libraries and language runtimes in a manual way instead of using automated reliable tools like ‘ apt-get’, ‘ yum’ or ‘ homebrew’. Back in 2008 I switched from Windows to Linux and later that year switched to Mac without any regret. NET), but the trend is obvious - most people hate Windows for software development.Īnd I was exactly like that majority. Sure there are some exceptions (especially in fields like game development or with technologies like. Most software engineers I know either use Mac or Linux.