Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Migrating from Mac to Windows for development
13 points by kuon on June 15, 2016 | hide | past | favorite | 13 comments
I've been a Mac developer for 20 years now, I was very attached to the platforms until recently.

I was very disappointed by the lack of machine "for me" (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.

I had windows 10 on my pc/hackintosh for a while now (dual boot), and I found myself using it more and more over the mac side of it. Recently I've been trying to get a working development environment out of it.

I tried linux, but the UI is really too sluggish, sorry for all the linux contributors, but it's not usable for me.

So, my question is what do you use for full stack (rails and now elixir/phoenix, with react/typescript/ES6 frontends) dev?

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).

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).

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.

If you can share your experience, the tools you use or just tell me to have faith into Apple or whatever, please do, I'll be very grateful for any discussion now, as my morale is quite low on the subject.




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.


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


console2 is my preference


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/) 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...


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.


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


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.


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


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.


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?


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.


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.


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?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: