Tools for Switching from Windows to Mac Development
josebrowne.com
josebrowne.com
I don't want to make this a Win vs. Mac thread, but I think it is important for both sides to understand there are things that are good about each.
The Mac guys get a closer to Linux environment, which makes much of the stuff that is happening on Web servers behave more closely in dev to the way they do in production.
Windows has a long history of dev tools, so there are some really great Large File (>4 GB) editors, memory inspectors, inspection proxies (Fiddler for example) which make my Mac devs jealous from time to time.
But I am routinely jealous of how easy it was when I was on a Mac to do installs of Libraries using Yum and such. Plus since we are a mostly Python Shop that is quite a bit easier on a Mac.
I am a long time user of Visual Studio, but there are a lot of great IDE's now so you do have choices, and because many of those are Multiplatform you do have more choice, even if your team mates don't share that choice. (Sublime, Pycharm, Eclipse)
http://mitmproxy.org/ https://news.ycombinator.com/item?id=3556688
You must download (featured but inelegant) PuTTY in order to do this on Windows.
Also, until somewhat recently (Win7), the lack of symlinks (junctions) caused all sorts of problems when pulling down a source tree locally for editing if it contained symbolic links.
Other than that, I agree.
And then projects need to use the latest versions of those software in order to benefit... and that's assuming the feature support is stable.
As late as 2009, our windows project devs (at my old company) were at a disadvantage to OSX, Linux users.
Here are some tips I wrote up on "How to Turn Your Windows Machine into Unix": http://www.patfitzsimmons.com/2011/05/how-to-turn-your-windo...
I'm just starting to use Vagrant, and I think that it's an awesome solution. Vagrant allows to manage headless virtual machine (VM without UI ). I have a headless VirtualBox right now and it uses 48Mo. I could easily run tens of them.
You can share folders with the host and serve files from the virtual machine in a completly prod like environnement. You can also isolate projects in separated machines. For those who think that a unix box is closer to prod think of how many conflicts you can have with tons of libs installed on the same laptop : python, ruby, php, node.js, mysql, mongodb, etc... It is really different from a prod machine anyway. And Virtualbox works better (faster ) on Windows because the shared folder implementation of VirtualBox is better on Windows ;).
I'm not sure how it will turn out for me as I'm not very far in this process, but it seems to be awesome for the moment.
That said I can see a usecase in the Growl notification feature for testing etc.
It has a better find interface.
It is almost exactly like Terminal.app in most respects, which I appreciate.
I can still remember the day our lead developer (at my previous job) led a mutiny and we switched from Windows to Macs. A great day in my life. ... I'm sure you'll enjoy developing on your Mac.
Autocoloring is enabled by default. Green for newly added lines, red for deleted lines. Ctrl-F/Ctrl-B jumps forwards/backwards by a page. Do other diff tools offer more functionality than this?
1. Sublime Text 2 2. Tower 3. Kaleidoscope 4. iTerm2 5. Oh-my-zsh 6. Xcode 7. MAMP Pro 8. CodeKit 9. Homebrew 10. CodeRunner
Honorable mention to: xScope, Sequel Pro, Transmit
I installed chocolatey [1] a package manager. With that I install python, git, and vim and I'm up and running. My vimrc and gitconfigs almost worked copied straight out of linux. I use cmd. My advice is not to use cygwin and the other stuff like it...
On the other hand, Cygwin's gotten to the point where it, plus mintty, are actually pretty good--Cygwin used to be a real pain to work with (I mean, bad) but it's improved by leaps and bounds over the last few years. You can get a bash or zsh shell that work remarkably closely to OS X or Linux and just about every tool you're likely to run into will work as you expect. Contrast this to direct Windows ports of your software, which are frequently compromised to work in the fairly deranged environment of the Windows shell.
<3 Vim
There isn't really any huge advantage (at least for gVim, I run linux...), it's just nice to detach it from the terminal.
Mostly, I can change the window size without it affecting the size of my terminal, and add some extra tweaks if wanted.
If you wanted a Unix environment you could have installed Linux.
OSX != Linux.
[1] http://arstechnica.com/apple/2007/08/mac-os-x-leopard-receiv...