top | item 5648586

Tools for Switching from Windows to Mac Development

31 points| digitalmaster | 13 years ago |josebrowne.com | reply

63 comments

order
[+] brandon_wirtz|13 years ago|reply
I am the lone Windows user in my office. I could use a post on how to go from Mac Development to Windows. Only half kidding.

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)

[+] ecaradec|13 years ago|reply
Vagrant and Virtualbox made me rethink about issues of developping webapp on Windows. I mostly do Windows dev and sometimes I also do some webdev, so I can't switch everything to MacOS or Linux.

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.

[+] landr0id|13 years ago|reply
The one thing that I absolutely cannot stand about my OS X workflow is that to this day, I still have not found a good hex editor. On Windows I used HxD, but there's nothing that really fits the bill. That, IDA Pro (I don't have an OS X license and from what I hear the OS X version isn't too spectacular anyways), and Visual Studio are what make me occasionally boot into Windows.
[+] w1ntermute|13 years ago|reply
Am I the only one who doesn't see the advantages of doing web development on a Mac instead of on Windows? If you're going to be running the site on a Linux server, why not just do development on a Linux server too? You can easily do this with a Windows laptop, by just mounting a Samba share or using SSH.
[+] digitalmaster|13 years ago|reply
@brandon_wirtz: I totally agree with you.. there goods and bads to both environments. I genuinely enjoyed my time on windows and always found a way, tool or trick to get the job done. Thanks!
[+] acanby|13 years ago|reply
I'd like to mention SourceTree[0] for a GUI DVCS. I typically drop to the terminal for git usage, but every so often use SourceTree when I need something that is easier achieved with a mouse.

[0] http://sourcetreeapp.com/

[+] shaggyfrog|13 years ago|reply
SourceTree makes staging chunks/lines in git a snap -- I use it to do that every day. I couldn't imagine the tediousness of doing that on the command line.
[+] acanby|13 years ago|reply
As someone who uses Terminal.app, what are the benefits of using iTerm2? After looking at the features of iTerm2[1], I see a lot of it as superfluous.

That said I can see a usecase in the Growl notification feature for testing etc.

[1] http://www.iterm2.com/#/section/features

[+] masterleep|13 years ago|reply
It is far faster at scrolling with non-ASCII characters, helpful when scanning logs of such characters.

It has a better find interface.

It is almost exactly like Terminal.app in most respects, which I appreciate.

[+] Pent|13 years ago|reply
I love it for visor mode. Basically in the preferences you can set it up to toggle the terminal (slides down from top of screen..) with a global hotkey. It manages themes nice as well.
[+] cschmidt|13 years ago|reply
You'll probably want a graphical diff tool. I use Araxis Merge, because I've used it for 15 years or so, but I'm sure there lots of other good options.

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.

[+] joejohnson|13 years ago|reply
If you use Xcode, it has a visual difftool that is pretty good. I never use anything for git besides cli and Xcode.
[+] sillysaurus|13 years ago|reply
git diff | gvim -

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?

[+] Steveism|13 years ago|reply
My personal 10 tools for Mac dev (in no particular order):

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

[+] ktsmith|13 years ago|reply
Any particular reason for Kaleidoscope over filemerge?
[+] hfz|13 years ago|reply
Dash app[1] is brilliant. It's an all-in-one place for language documentations. Very useful.

[1]: http://kapeli.com/dash

[+] digitalmaster|13 years ago|reply
I think if i had known about this before it would have been in my top 10! This is awesome! #thanks
[+] minamea|13 years ago|reply
I'm trying to do windows development and I'm learning that if you don't try to force it into a unix-lixe env, it works fine.

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

[1] http://chocolatey.org/

[+] eropple|13 years ago|reply
I don't agree with this advice at all. That you are stuck with cmd is really all that needs to be said.

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.

[+] tonetheman|13 years ago|reply
And remember clicking the red X does not kill the process...
[+] cobralibre|13 years ago|reply
That's true except when it's not true. Some apps are single window applications, and clicking the red x will in fact quit the app. For example, System Preferences.
[+] Pent|13 years ago|reply
You get really good at using cmd+q on everything
[+] TallboyOne|13 years ago|reply
Don't forget MACVIM. Vim on windows is terrible. Now that you're on OSX it's going to be fantastic.

<3 Vim

[+] eropple|13 years ago|reply
MacVim's pretty nice, but I've never had a serious problem with the Windows versions of GVim.
[+] hrayr|13 years ago|reply
Can someone please explain to me the advantages of using MacVim over Vim through terminal?
[+] gradstudent|13 years ago|reply
The only development tools you'll ever need: a terminal, vim and the GNU toolchain (gcc, gdb, make, screen etc).
[+] vacri|13 years ago|reply
Not making any graphical assets?
[+] shaggyfrog|13 years ago|reply
Not mentioned yet: HexFiend for hex editing, Cocoa Packet Analyzer and Wireshark for packet inspection.