tags:

views:

1121

answers:

12

Here's the deal: I have both a last gen Unibody Macbook Pro 15" (base) and a ThinkPad T500 sitting in front of me (don't ask). The Macbook Pro is beautiful and OS X appears to be very interesting. However, my tool set lies within Windows - Visual Studio, VB.NET, C#, ASP.NET, etc.

I'm really torn on this potential decision. Part of me wants to be the ruler of my domain and stay with Windows full-time. The other part wants to tinker with different technologies, use OS X as my primary and fire up a VM to develop within Windows. I'm still not convinced this is a proper way to develop, btw (especially since the MBP I have maxes at 4 GB).

From a pure programming perspective: is this a good or bad move? This isn't PC Vs. Mac but more Generalist Vs. Specialist. As it stands now I'm a specialist with the .NET tools. If I go to Mac, I'll still be very heavy in .NET but I'll also be spending time learning stuff like Ruby or even Rails, which will cut into my .NET time.

+2  A: 

I don't understand why you can't do both. At least satisfy some of your craving for Mac with a hobby project. Second, you could consider obtaining a Mac programming job. It's probably considered "specialty", but I don't foresee Mac programmers going away entirely any time soon. Would it be harder to find a job if you and the Mac company parted ways? Probably. But keep an emergency fund handy and keep your Windows skills sharp and I suspect you've mitigated your two biggest risks.

billb
A: 

Get VMWare and run Windows on the Mac OS.

Try "Deep FRied Bytes" podcast episode 5

Tim
+1  A: 

Well, first, there is no reason why you would have to develop for Rails on the mac. You would be just as able to do that on your ThinkPad. However, if you want to do native Mac apps or iPhone development, then I would say go for it. I VM on my mac to do some light development in C# Express (All my heavy stuff is on my desktop at work). Even with the 4GB ram, I think you would be ok if you split it halfsies between the Win box and the Mac OS. Of course, you could also use Boot Camp and give Windows the entire 4gb, and go back to Mac OS when you want to do other development.

Totty
Developing Rails applications is a lot less painful on a Mac. The Rails core team all use Macs, so Windows support isn't a priority.
John Topley
+1  A: 

I am a .Net developer, but last year I bought a MacBook. It has become my main computer (partially due to the fact that my PC died on me months after I got the macbook). I have 4GB of ram in it, and I primary sit in OS X. When I'm doing light weight .Net dev, I boot up my bootcamp in VM(XP, VS2008, 1.5GB ram to the VM). If I'm gonna be doing some sizable development in .Net, I find it much easier to boot up into bootcamp.

This allows me to enjoy OS X (which I tend to favor) while being able to quickly get into a .Net environment.

You could also dive into Mono, allowing you to do C# and such in OS X.

My main reason for getting the MacBook was to expand my skills (Some Cocoa/iphone dev planned, python, ruby, perl, php, bsd base already setup in OS X)

phsr
+1  A: 

Learn to develop for the iPhone. Satisfies your craving for developing on a new and shiny platform, gets you learning Objective C and gives you a new and marketable skill -- more marketable than developing for OS X.

jcollum
+4  A: 

Generalist is good, in my opinion. My primary machine is a (I guess now last-gen!) 13" unibody Aluminum 13" MacBook. I replaced the hard drive a few months ago with a 320GB, and now use Boot Camp to go into Windows for .NET development. At the office, I have my Vista machine, of course, loaded to the gills with everything I need. And frankly, 90% of the time that I need Windows, I need that machine anyway -- so I VPN into the office from the MacBook (running Mac OS), fire up a Remote Desktop Connection (yes, there is a Terminal Services connector for Mac), and get to work.

The way I see development life is simple: Why would we not want to be exposed to different technologies and ideas? Maybe playing around with Cocoa and Objective-C doesn't help your career today, but how can extra knowledge ever be a bane instead of a boon?

John Rudy
<3 RDC for Mac. Between it and Synergy, I'm the master of my domain! (no pun intended.)
Totty
+2  A: 

I guess this is not really a programming related topic and very subjective. I'm answering because I recently did the same shift. From a professional point of view I'm developing with the .Net framework and ASP.net pages. This obviously implies that I'm using Windows all the time. Parallel on that, I'm doing a Master in Computer Science where I'm developing Java and more on the Open Source road.

So recently I switched from my HP notebook (which was a really "worker" notebook) to a Mac Pro and its great. I installed a VM and put Windows on it, installed Visual Studio and the whole .Net stuff. It's great, and if you don't like working on the VM you can install Windows natively. So I don't see why you shouldn't switch. You just get more.

Related to your specialist vs. generalist. Well I guess it is never bad to have a good overview of the technologies out there instead of just focusing on one. But at the end it is always a personal decision and depending on your circumstances. I personally prefer to have a good overview of more technologies since just focusing on one can often be a bit limiting.

New and different technologies open your horizon and force you to think in different ways, filling your mind with new ideas.

Juri
+1  A: 

A lot of non-Mac developers I know own Macs and run Windows in a VM (Parallels or VMWare) on top if they need Windows, but many of them end up just using the Mac OS X side of things if they can get away with it. That's probably a bit hard for a .NET developer.

It is good to spread your experience around and try out different ecosystems. For personal use, a Mac is great, and maybe you could write some iPhone software using Objective C and make a few quid on the side. it's also good for Unix, which will definitely broaden your experience.

JeeBee
+2  A: 

Generally, the more you know, the better.

Wil Shipley, a well known Mac developer (Delicious Monster, Delicious Library) once gave a talk on why you should be developing for the Mac over the PC. Read over this (Warning! PDF!), and if his points make sense, run with it and dive feet-first into Mac development.

I do all of the big three (Win/Mac/Lin) at the moment, and I strangely like Linux dev the best, but I'm quite weird.

A. Scagnelli
cocoa easier to develop with? Is he high?
Tim
It's his opinion, and he's had expereince with both. My preference is for Cocoa over .net at the moment, but as both get improved that may change.
A. Scagnelli
+1  A: 

In my opinion learning both will make you a better developer than learning either exclusively. I would say this to a mac only user just as much as to a pc only user. objective-c is a very mature language and cocoa is a powerful framework. They both do things in a very different way than c# and .net so it will give you a new perspective. It is also interesting to try and develop cross platform projects. It will give you a lot of appreciation for standards.

You also do not need to run a vm to go back to your visual studio. You can boot from windows and be running a windows pc.

Nick
+1  A: 

There's small chance it can be bad for your career. You are adding skills and gaining perspective on how other OSes, languages, and development communities think and express ideas. If you can afford to have multiple machines, go for it...it's a fantastic learning experience.

Greg
+1  A: 

Hello Michael,

I develop in VB too, and i hate to develop or run anything in a Virtual Machine, because it's not my default Operational System(I hate to use things or programs that are not default of my OS, like aMSN on Windows, because of this a have another PC with Linux), but it's your decision. Thanks.

Nathan Campos