
Ask HN: Migrating from Mac to Windows for development - kuon
I&#x27;ve been a Mac developer for 20 years now, I was very attached to the platforms until recently.<p>I was very disappointed by the lack of machine &quot;for me&quot; (I wanted a mac mini that can handle 4 external monitors but not at the price of the mac pro), so I built a hackintosh that has been working great. But the direction Apple has taken lately is not the one I want to follow, the last macOS update (siri all over the place) is not the one I want to follow.<p>I had windows 10 on my pc&#x2F;hackintosh for a while now (dual boot), and I found myself using it more and more over the mac side of it. Recently I&#x27;ve been trying to get a working development environment out of it.<p>I tried linux, but the UI is really too sluggish, sorry for all the linux contributors, but it&#x27;s not usable for me.<p>So, my question is what do you use for full stack (rails and now elixir&#x2F;phoenix, with react&#x2F;typescript&#x2F;ES6 frontends) dev?<p>My current setup so far is to have a VM with all the tools I use (ruby, erlang, database, git...) and ssh into it from my windows machine, this covers most of the tooling for the backend. I mounted this VM thought samba and I access it from the windows side with GUI tools (atom, sourcetree).<p>I have a few quirks like atom plugins requiring the tools to be installed locally (linter, formatter...) or samba being a bit problematic for git (filemode have to be off).<p>I was wondering if I should run the editor on the VM and VNC into it, or maybe run an X server on my windows machine.<p>If you can share your experience, the tools you use or just tell me to have faith into Apple or whatever, please do, I&#x27;ll be very grateful for any discussion now, as my morale is quite low on the subject.
======
romanovcode
Nowadays node works perfectly fine on Windows, you don't have any problems
with MAX_PATH anymore. Also, use Cmder to have unix commands. You can even
register it in registry so that every time you open cmd it will automatically
open Cmder.

Also, this summer Windows update should go to public that adds native Ubuntu
shell so you will be 100% set.

Windows10 is fine for development. It's not 2006 anymore.

~~~
bossmojoman
Also, download and install conemu and use it instead of cmd - lots of shell-ey
goodness

~~~
wprapido
console2 is my preference

------
doobiaus
I used to work in a mixed Windows/Linux environment and found what worked best
for me was to run Linux via Vagrant, and use MobaXterm
([http://mobaxterm.mobatek.net/](http://mobaxterm.mobatek.net/)) for ssh, as
it has an X server. That's how I used to use RubyMine and Geany.

EDIT: There's also interesting stuff coming soon with Ubuntu/Bash on Windows
[https://blogs.windows.com/buildingapps/2016/03/30/run-
bash-o...](https://blogs.windows.com/buildingapps/2016/03/30/run-bash-on-
ubuntu-on-windows/)

------
rpeden
I've generally had good luck with Rails just working as expected on Windows,
as long as you install the Ruby DevKit. JRuby works well too, as long as
you're not using any gems with C extensions.

As an alternative, I've run Rails apps using Docker, which also worked well.

If you haven't tried Cmder as a shell, I'd recommend it. You can run cmd,
Powershell, and bash tabs in the same window and if you get the full Cmder
install it comes with most of the Unix command line utilities you're used to.

~~~
kuon
Cmder looks nice, I'll have a look at it.

------
BjoernKW
I can't tell you to just have faith in Apple. Obviously, given the route
they've chosen with Siri there might be some problems ahead privacy-wise. I
for my part, will stick to OS X for the time being but if the time came
Apple's OS was not suitable for me anymore I'd switch to Linux and I suggest
you take a second look as well.

In terms of UI there are so many options for Linux that there almost certainly
is one that suits your needs.

Development of non-Windows software under Windows despite all the improvements
in most recent versions at times still is a pain-in-the-ass: From an inferior
CLI (compared with those available on UNIX and UNIX-like operating systems) to
missing development tools and all sorts of Windows-specific work-arounds
required to get Rails or Node.js working, let alone run actual apps.

~~~
romanovcode
Friend, you have native Ubuntu sub-system running on Windows this summer. You
get all the tools you want :)

------
bwackwat
I use Windows primarily for entertainment, and some personal software
projects.

For developing code I want to deploy to production on my Debian VPS, I run a
nearly-identical (in terms of specs and OS) Debian VM using VirtualBox.

I develop server software, so I prefer developing on Debian (using a VM) and
pushing development releases into production without worry.

------
gldev
Vim, that's all i use and i like it, sometimes i use Sublime when i feel
turbo-lazy.

But i despise windows for development in any stack that's not part of
microsoft's. Maybe going with xterminals would do it for you?

------
whostolemyhat
I'd definitely recommend running React/ES6 stack in a VM - I'm using a Windows
machine at my current contract, and everything is so much slower when running
natively compared with in a VM.

Things like starting up PhantomJS to run tests takes 2-3 minutes when running
in Windows, rather than a few seconds on a Linux VM on the same machine. I get
the impression that Windows seems to be a second-class target for a lot of
front-end tools, so while they'll probably work, just won't work as well.

------
zbjornson
Do your tools/platforms work on Windows? I do full-stack dev on Windows using
quite a few of the same tools you've listed. Solves the latency problem and
hassle of a VM or similar.

GitHub for Windows comes with posh git, which gives you a linux-y shell on
PowerShell -- ssh, basic commands like ls, git of course. That's been all I've
needed that is sort of "special" to Windows.

------
joshbackstein
For me, it depends a lot on what I'm planning to use the machine for.

For web development, I prefer Mac or Linux because I like to be able to do
everything on one machine and usually prefer CLI tools. I personally feel like
switching to a VM for development would get annoying pretty quickly, but lots
of people are okay with that.

You mentioned that you've tried Linux and that the UI was too sluggish. There
are lots of distributions out there, so if you limited yourself to just one,
it might be worth it to check out some other ones. If you do, keep in mind
that some software (Photoshop, etc.) won't run on it. You could use VM (or
possibly Wine) to use that stuff, but you'd want to take into account how
often you use them. You'd still run into the problem of switching to a VM for
certain things with that though. My own experiences:

\- Ubuntu was slow for me when I originally tried it; I think they had just
started using Unity at the time, and it was terribly buggy and slow for me. I
didn't like the design of the interface much either, so I haven't really tried
it since then. This is probably the most popular distribution out there, so if
it's the one you tried, it might be worth playing with the other ones in a VM
to see what you think.

\- Linux Mint is fairly popular and a derivative of Ubuntu. Cinnamon and MATE
are the default desktop environments for Mint, and most people really seem to
enjoy them. During the brief time I played with it, I liked it.

\- Debian is a rock-solid distro. It's stable, pretty minimal, and has always
run well for me. The packages will probably be outdated because they stick
with older releases with better stability, but you can repositories with more
up-to-date packages. I used GNOME Shell on it and it was very smooth.

\- Fedora is more bleeding edge than Debian is in the Red Hat camp. It's a
popular one and uses GNOME Shell by default. It's not as stable, though I
never ran into any stability problems myself.

\- Elementary OS is pretty nice and based on Ubuntu. It looks a bit like OS X,
so you might appreciate the familiarity. I tried it on an older laptop and it
was slow, but the hardware is old enough that it won't even run Minecraft, so
your experience would almost certainly be better than mine.

\- Arch is very minimal (you install everything yourself), so it is very light
on resources if you don't bloat it up, but it will probably take a good chunk
of time to get set up. It's my preference, but for something that "just
works," I wouldn't recommend it.

One of my buddies has had pretty good luck with Bash on Windows. He doesn't do
any web development with it, so I can't really vouch for it, but it might
still be worth looking into. Another friend says it has worked really well for
him too, but I don't know if he's used Ruby with it or not. I will probably
wait until it gets pushed to the regular release to use it. There are a lot
more tools on Windows for other areas of interest to me, and lack of a good
option for CLI tools has kept me from switching back, but Bash on Windows
might be enough to make it a viable option again.

That might not have really helped much, but I thought I'd still offer my two
cents. What tools do/did you use on your Mac?

