2013-2-8 Mac users must update to the Java 7 Update 13 for Mac OS X. If you are not sure you need Java, try running your PC for a few weeks to see if you can do without it.
For programming, I find OS X to be far, far easier to use than Windows, with some flavors of Linux probably a hair easier still thanks to very good packaging systems like 'apt' in Debian for chasing down dependencies. I think you'll find that many of the 'best' developers share this opinion and use macs or linux machines - if you walk around the floor at Google or Facebook (or most well-known startups, or, for example, I'd bet Reddit), most people will be using some flavor of Linux or OS X. The enormous advantage OS X has over Linux is that many things that aren't programming, like connecting to network printers, can be like pulling teeth in Linux but are trivially straightforward in OS X. I find visual studio and other large GUI-driven IDEs awkward development environments and prefer to do without one - I use vim though some prefer emacs.
This is hard to do in windows because many linux-based command line tools aren't readily available without, say, cygwin, and cygwin can be complicated to work with. However, the most important question is how your classes will be taught. At my university it was assumed everyone would want to learn in linux or OS X and that's how our classes were designed, but if your professors are going to do all of their demonstrations in visual studio you will be frustrated if you are trying to convert their instructions to some other environment. I'm a CS student and I bought a MBP last spring. Most of my work is done with C or Python and I too use vim for everything. Before my MBP, I had a netbook with linux on it, which I rather liked because of its lengthy battery life. When it came time to replace it, I decided I would get a mac even though I had never owned an apple computer since the Apple IIe.
The main reason for the switch was for the 7 hour battery life, but also because of build quality and the fact that OSX with its BSD underpinnings seemed similar enough to Linux to allow me to get work done, but user friendly/polished enough to avoid spending 20 minutes trouble shooting why something is broken. Overall I'm happy to have made the switch.
With homebrew or macports, you're able to fill in most of the gaps between linux and osx, and so far I haven't found anything that I really would prefer linux for. Also of note, for both CS101 and CS201, it was assumed that everyone was using windows with Visual Studio. I always used linux/osx instead and there weren't any real problems. However, if you're doing a lot more with VB/C#/.NET, you would probably have to bootcamp a win7/win8 partition, and if you're spending most of your time in windows on a mac, you could have saved your self some money. I'm majoring in Software Engineering and I use a MacBook Pro 13', as well as most of the lecturers/professors in my department. I'd go with 16GB although 8GB is enough for what your aiming to do. You will find that a combination of LaTeX and vi will be great on the OS X command line, for any projects you need to write.
C, C and ObjectiveC are supported by XCode and the llvm compiler. OS X has a native git client and python works out of the box. Despite what many think, MacBooks are essentially UNIX workstations with a nice GUI. A developers dream! For what it's worth I program for a living, and that's exactly my main rig.
Two things:. Upgrade it all the way to 16 GB, it's cheap enough when you don't buy RAM from Apple and you'll probably be running a virtual machine for the.NET stuff. Definitely put an SSD in there.
I find the Crucial M4 works great, but you'll want to in order to enable TRIM support, and then possibly to prevent unnecessary wear and save space on the drive. There are some downsides though:. 1280x800 is arguably insufficient for designing GUIs, whenever I find myself doing so I have to hook it up to an external monitor. And along with the current Air, the mid-2012 MBP has an that can result in unbearable image quality on some monitors, so you'll probably want to use DVI instead. For C development, OS X (like FreeBSD, but unlike Linux) gives you ancient versions of GCC and GDB due to Apple's aversion toward the GPLv3 license of newer versions.
![What is java used for on my mac download What is java used for on my mac download](http://www.progenygenetics.com/images/kbpics/JavaMacUpdate/Manual3.jpg)
You can build newer versions with Homebrew, but then you have to so that it can have debug privileges. Of course, if you don't need all of GCC's C features then you might be able to get by on clang instead. EDIT:. There is, but when doing anything in.NET you'll probably want to be working in Visual Studio, and that means running a virtual machine.
I find VMware Fusion works really well, other people prefer Parallels, but either way this will eat into your RAM usage and disk space. Homebrew can install many of the packages you'd expect to find in a Linux distribution, but there are exceptions and packages that sometimes fail to build; such software is designed for Linux first, and OS X is not Linux. No problems using OS X for Java development anyway (though I haven't done much of that myself). The hardware and OS are great, despite the issues above. But in all honesty for the kind of work I do, I might have been better off with Linux on a ThinkPad X1 Carbon.