

Ask HN: Considering moving to a Mac - development pros and cons? - bjhoops1

My Windows 7 laptop of 3.5 years is starting to get a bit flaky.  I have been considering making the move to a mac for development, but have heard that they are not necessarily my best bet for development.  I am also not sure what to think about Windows 8 yet.<p>I do a variety of Java/J2EE (for work, don't judge!) as well as various web development and am looking to get into Ruby as well.<p>What OS/hardware would you recommend for a general purpose development machine?
======
osivertsson
I'm doing mainly embedded C/C++ development nowadays, but did some Java/J2EE
work a couple years back too, and Debian GNU/Linux has been and still is my OS
of choice, but Ubuntu is probably an easier entry point to the Debian
ecosystem. You can easily try it with e.g. Wubi or booting from a USB stick,
but if you like it you will get better performance with a native installation.
I'm currently running Debian on a Dell M4500 with a first-gen i7 and 8GB RAM,
and full HD _matte_ display. It has been an excellent machine for the last
couple of years. The current M4700 looks nice too.

From 2006 to 2008 I did everything except development (only some web dev
stuff) on an Apple Macbook. It was a really good product, excellent font
rendering at the time, stuff just worked. Well there was some pain with using
fink/darwinports and rails etc. back in the day, but I think that is a solved
problem today with Homebrew.

During 2011 I also had a contract where I did C# development in Windows 7 on a
high-end Dell Inspiron with an i5 and 8GB RAM and a 160 GB Intel SSD. This
worked fine too even though Visual Studio was still slow on our rather big
project.

For a general purpose development machine today I'd look at lots of RAM, i.e.
at least 8GB, at least a good i5 cpu, and an excellent screen with at least
1920x1080 and I prefer matte displays for development. Good full-size keyboard
too. SSD is nice too, but at least on Dells it probably cheaper to replace the
disk yourself.

If a laptop, some people like to have a docking station that is able to drive
two external displays. I don't, mainly because my M4500 display is so much
better than the glossy cheap external displays I have access to at work.

If you can afford it the 15" Macbook Pro with a Retina display is pretty
sweet.

Having used Linux+Mac+Windows the last couple of years has given me the
knowledge to be able to get work done on all of these platforms, and debunk
FUD about why a specific plaform sucks/rules. I think that is an argument to
switch platform every now and then.

------
AncoraImparo
I would like to add that I purchased my mac solely for the purpose of finding
out what development would be like on it. I am a C programmer, and I write
code in Vim, so in terms of day to day activities, not a lot changes. Until I
move into IDE based projects, where I almost always run crying back to my
linux machine, and quite regularly the windows one too. I guess it really
depends on the environment that you want to set up for writing your code in.
Personally though, I would spend all that extra cash on a really nice machine
(or even two...) With enough memory for decent virtualization. That way you
can even have a Mac VM setup to see what it is like.

~~~
hboon
Can you elaborate on what happens with IDEs and Linux/Mac/Windows?

------
brudgers
> _"I am also not sure what to think about Windows 8 yet."_

I upgraded an existing machine from 7 to 8. It was mostly painless. The only
real PITA was no upgrade path for XP mode which I used for an old version of a
shrinkwrap application. Because my machine is too old for Hyper-V, I had to
create a new VM, load windows and then reinstall it.

On the other hand, my workflow under Windows 8 is at least equivalent. The
characterization of Windows 8 as touch centric is misleading - it is designed
to run well from a keyboard.

------
idleworx
...switched to a mac once for development. Going from windows to mac was quite
a hassle, especially when you're trying to get things done quickly right away
and each little thing takes you on a 30 minute roadtrip to google to find out
how to do things the mac way.

... for one thing I never got over the fact that I can't right click and
create a file of a certain extension in the macfinder,and then open it like
you can on windows. Why do I have to have an application open before I can
create a file using the UI (I know it can't be done from the command line).
Small things like that annoyed me enough to remain on windows.

If I'm gonna switch to a linux, might as well be onto a CentOS or Ubuntu box.

~~~
whichdan
"I can't right click and create a file of a certain extension in the
macfinder" 100% agree

that said, having the terminal baked in as part of the OS is quite nice

------
pedalpete
I've got both a mac and windows machine. I never really got into the mac
thing. I find I do most of my non-ios development in a ubuntu virtual machine
on my windows laptop.

I got a 11" MacBook air, and aside from the small drive space, I think it is
fine for coding, assuming you'll regularly be hooking it up to an external
monitor and keyboard. I actually code on the machine without external tools,
but like I said, it isn't my main machine.

On the other side, with Windows laptops now having touch screens, I'd struggle
to recommend a mac until they do to.

~~~
joonix
What is the point of having a touchscreen on a laptop?

------
xauronx
If you expect to have to do any iOS development (even using the C# cross over)
you'll have to have a mac, which is kind of obvious.

I love the hardware of my macbook pro, but being a windows user my whole life
took plenty of awkward forehead banging. Now I tend to do all of my
development on it and leave my windows 7 machine relatively untouched
(although I'm hooking up an external monitor to it tonight).

------
geophile
I have a Mac with 16GB memory, running a Linux VM. (With that much memory I
can run two easily.) I still find Linux preferable for Java development. The
Mac isn't bad, but little things don't work quite right for me -- Mac keyboard
bindings, Gnu Emacs (especially the font). When I want various open source
goodies, I usually find that they are more readily available on Linux.

For me the biggest issue in this area is profiling. Solaris Studio is the best
Java profiler I've tried, and I believe it is not available on Macs. This is
the thing that really pushed me off the Mac for Java development.

Why not Linux on bare metal? VMs are convenient, and I find that multimedia,
VPNs, wireless networking, work better on the Mac.

------
YoAdrian
I recently purchased a 17" MacBook Pro and am in the process of adding more
RAM and an SSD along with Parallels. Parallels lets you install linux or
Windows alongside OSX. Meaning, they run at the same time. Alternately, you
can just run VirtualBox and load all the other OSs you'd like.

Previously, I had a 17" Dell Core2Duo. It worked fine for development, but
it's a boat anchor and had to go.

~~~
brandoncordell
Check out <https://github.com/xdissent/ievms>

It downloads and installs multiple versions of windows VM for Virtualbox with
IE6-9. It also installs reset points so when the activation is up you can just
reset all your VMs and use them again until activation is up.

It's really useful if you do web development with a need to test on IE.

------
Pr0
I'd wait a bit and then get a Windows 8 ultrabook. It comes down to personal
preference though, in the end.

------
tnorthcutt
I switched to a MBA 6 months ago and have been very happy with it. I'm not a
hardcore developer, so ymmv, of course.

Homebrew is pretty handy. Not having to muck around with cygwin or some other
command line addon in Windows has been quite nice.

------
joshstrange
I think it really come down to what you will deploying on. For me (a PHP/MySQL
dev) I work primarily with Unix boxes so switching to OS X made a lot of sense
as my laptop shares a lot in common with the servers I deploy out onto.

------
imtu80
I got win7 with 8GB RAM. Leaning RoR in Ubuntu on VirtualBox.

------
saiko-chriskun
You've heard they're not the best dev machines? Really? I find that pretty
weird. Any unix-based os is going to be hands-down easier for development than
windows. Just go to /any/ tech conference, all you will see are mac and linux
laptops. Maybe a single windows dude.

The only real exception to this is if you're using a fully microsoft-centered
stack, like windows development with C# and such. Their internal dev ecosystem
is pretty good.

------
shail
boy you are late!!! welcome to the party.

just figure out whether you are using any software which comes only for
windows (you will need to find a replacement for that), but my guess is that
there will be none.

Rest, obviously there will be hiccups but eventually you will love it.

------
ixacto
Have you considered linux?

