Ask HN: Your development environment on Windows 10?

12 points by aosaigh ↗ HN
I’m a full-stack web developer and I’ve recently built a pc, having previously been working on Macs for the last 5+ years.

Im finding it difficult to create a productive development environment on Windows. There seem to be a couple of popular approaches; WSL, Hyper V vms, VirtualBox vms, git bash, ...

What does your setup look like?

23 comments

[ 2.9 ms ] story [ 64.3 ms ] thread
What is your stack?
Python/Django and Node.js generally
I only do very minor stuff with Python but for Node.js I use VS Code. For installing programming languages and other CLI tools (PHP, Python, Golang, Node.js, Git, etc.) I use Chocolatey on Windows: https://chocolatey.org/ It avoids the hassle of manual updates and having to modify your $PATH.
virtualbox ubuntu - i tried (against my better judgement/instinct) working in Windows at some point and it's just the worst.
Windows is not my main dev env but I do some things here and there when i'm booted into it. WSL + Docker for Windows via Hyper-V is pretty great. I also generally run terminator via x server and it's fairly snappy. Need to try the new vscode release, as it had some trouble launching from WSL in the past.
Thanks. It seems to be a coin toss between the native WSL + Docker and just running everything in a VM
I actually use linux subsystem for windows for a few things and it works OK!

Otherwise, PyCharm + Chrome. I have VirtualBox for some VMs that I need sometimes (specific software that needs to be installed, etc..)

I used Conda for Python environments.

Text editor: Visual studio code Terminal: Cmder (I can switch to WSL by typing bash)

Stack: Django + SQLite or .net core with MSSQL No VM: My computer keeps freezing. I am thinking about going docker at some point.

Browser: FF and Chrome

Coming from a Mac, your best bet'd be switching to a UNIX-like system; or at least setting up a dual-boot on your PC with a UNIX-like OS. If you just want to install an IDE and the like, you could probably install the bare minimum Arch requires, then install your IDE and the like in under 7GB or so.

If for some reason this isn't achievable, use VMWare?

Alternatively, you could always Hackintosh your new PC.

Visual Studio Code as the IDE, Powershell running on ConEmu with poshgit and oh-my-posh. For specific UNIX work I can simply drop into wsl with the bash command.

A whole lot of tools like python, php and node work flawlessly on windows these days. For something that does not work, you can always drop into wsl.

I have used Vagrant for a few years and never had an issue. All of my source code is shared/synced on the system drive. I use Go, Python, and lots of Javascript frameworks which are all installed and compiled in Vagrant. It's really nice not having all of the frameworks and compilers installed on my work environment. If I need to run a web server or DB I will either apt-get install it in the current Vagrant VM or create a second VM and configure ports in the Vagrantfile to make sure they can talk. I recently started to use Docker to run those services so my Vagrant environment is quickly just becoming the area where I run the tools associated with code compiling.
IDE - Visual Studio 2017 with ReSharper Ultimate

text editor - Notepad++

git client - SourceTree

CLI - Cygwin

I don't regularly use Windows as a development environment so I'm no expert on that matter but whenever I occasionally have to use Windows the solution for the most part is: Create some sort of UNIX-like environment for example by running Linux in a virtual machine or by installing Cygwin.

Git Bash is a lightweight alternative if you don't want to completely switch your OS. Though mainly intended to provide you with a proper UI for running Git commands in order do so it has to create a UNIX-like shell environment, which provides many additional benefits for running other development tools with a CLI as well.

I always install Sublime on a new Machine. Also, Cygwin is a must for be because I have to connect with X and ssh to remote computers.

I don't know if the Linux subsystemd for Windows (https://docs.microsoft.com/en-us/windows/wsl/install-win10) would work instead of Cygwin but looks quite good.

I’ve been using Cygwin years now and there are some gotchas; no Cygwin node or go packages, so you have to use the native windows ones. Where this gets you is some funky path resolution problems. Another pain point is network proxy config inside corporate firewalls. I personally think it worth it though.
For Windows dev, Visual Studio as the IDE, VSCode as the text editor, Powershell running within Cmder, and any required git extensions for running on the command line like Posh Git.

For Linux dev, I have Debian installed on a VM in VirtualBox, and this workflow works pretty nicely for me. It can be a pain in the ass to get the Guest Additions set up, but once you've got the hang of it for your system it's not so bad.

For Node, I tend to side more with Linux than Windows, purely because I use a Mac at work. Node and Python work great with Windows, but I can't say I've ever tried nvm in Windows, so it'll be down to your personal workflow and whether you can translate that over. For me, Python works just as well on Windows as it does on Linux.

VirtualBox> Ubuntu >Atom I know HN love to hate Atom, but it works tolerably out of the box on Python, SQL, XML, JSON, Markdown, HTML which covers most of my day job work.

I always have Notepad++ installed on Windows for quick edits, config files etc. Git Bash is helpful on Windows too as it adds a few useful bash tools, I can SSH properly (with keys) to my other machines for example.

WSL and sometimes Docker. If it belongs on the command line I keep it in the Ubuntu environment.

I've been swinging between the Jetbrains IDEs, Atom and VS Code over the last year but I think I'm settled with VS Code now.

I'm using Hyper for terminal, or VS Code's terminal.

Do a fair amount of Node and browser stuff on Windows. Use Sublime with a few plugins as my text editor, and git bash as my terminal, Chrome debugger when I really need it. Works pretty comfortably.
It depends on what you are building. If you are .NET developer you pretty much don't need anything else but Visual Studio.

If you need some unix tools you should just go for Linux Subsystem for Windows.

VSCode for most of the editing work, jumping to Sublime for very large files and IntelliJ for Java work.

Git for Windows, and SourceTree for all serious Git work except interactive rebase.

For building, testing and packaging, Docker. This way I don't need to spend lots of time maintaining runtimes for all languages and environments. If things go weird I just factory reset the Docker installation.

I used to do choco and a lot of tools maintenance, but that is all history with Docker in the mix.