Mac OS and Windows, which is more suit for programming?

Joined
Oct 3, 2011
Messages
8
I am not either Windows/Mac fanboy or hater. Some of my friends said that most professional programmers tend to use Mac to code, because its UNIX-based, has UNIX command line whatsoever.

However, in my programming class, and actually in my school Computer Science Department, nearly 75% my classmates are using Windows. Also, I hardly see my instructors use Mac when do the program. I don't know if they use their Macbook at home or not, but well...

So, is it true that Mac has more advantages comparing to Windows when it comes down to do programming? or vice versa? If so, then what advantages?
 
It doesn't matter. Programming is a logical set of commands towards a particular goal. Work in whatever environment you're comfortable with or the project demands.
 
I'd go with the Mac and get a Windows 8 license for it (Boot Camp or Parallels) - then you have the best of all worlds. You could then natively program for MacOS X, iOS, Win32, WinRT, WPF, Windows Phone, and POSIX. There's even an Android emulator for at least Windows.
 
It probably just depends on what environment you are using. To me, if I wanted to program in a Linux environment I would just use Linux on my own PC and I wouldn't buy an overpriced Mac for that. If I wanted to develop for IPhone then perhaps a Mac is the best choice. If I developed for a Windows platform then I would use a Windows machine.

Anyway, in general your friend's comment about most professional developers using a Mac is silly and wrong. You should ask him for clarification.... What does he mean? For mobile phone development? For web development? For business apps? Video games? etc. He sounds like a Mac fanboy to me.
 
Unless you're going to be doing IOS or Java development you'll probably want a machine that can run windows. Microsoft has a lot of good development tools that are windows only such as Visual Studio. Most work places have windows machines for the programmers.
Macs have nothing special for development. The main IDE for OSX is Xcode which is laughable compared to Visual Studio. I'm assuming for school work you're probably using Java or python both which have plenty of IDEs that are on both Mac and Windows. The only real advantage macs have is they can be used for IOS development. So unless you have an iPhone and want to make some apps I wouldn't get a Mac.

I prefer using a PC because I can use more monitors and the hardware is a lot faster. Programming on just a laptop is frustrating.
I know people that use Macbook Pros because they want a laptop and like the hardware, but they put windows on them and do most of their development using windows unless they are doing a simple website or something.
 
In my experience with Perl, the general syntax within the language is the same but there was a big difference when referring to directory paths between Linux and Windows.

Personally I find programming on Linux to be far more convienant because the OS is built for it. However if your looking for a mainstream commercial endeavor then Windows is probably the better way to go. In Linux I think people actually prefer command line programs because they can be linked together, but in Windows it's gotta be a flashy GUI. But good luck getting a script to talk to a GUI based program.

While I love notepad++, Linux has kwrite built-in which has been acceptable for me at work.
 
Thank you guys. I'm using Windows for around 15 years already. I feel more like at home when using it, either for coding or else. Since some friends suggest me to have a Macbook, I am kinda confused so I decide to post it and ask for experts' opinions. It turns out that I dont have to pay for an overpriced Mac :D
 
So, is it true that Mac has more advantages comparing to Windows when it comes down to do programming? or vice versa? If so, then what advantages?
No, it's not true.

Most developers will use the environment they're targeting. If you're writing code to run under OSX or iOS, you'll use a Mac. If you're writing Windows code, you'll use Windows. If you're targeting Linux, you might run Linux directly or you might use OSX.

The exception are embedded systems. If you're targeting a microcontroller, you're not going to run your development environment on that same microcontroller. On the other hand, the tools the vendor makes available for that environment will probably dictate what platform you run on your desktop. That also drives platform choice for mobile development; good iOS tools aren't available for Windows, so iOS developers use Macs.
 
The mac terminal uses Bash which is a unix shell. As such if you have certain applications that require unix compile libraries working on a Mac gives you a polished OS with Unix capabilities.

In web development Macs have been popular for a long time because web servers generally run Linux and Apache, and you get better compatibility and workflow between development and production servers. The Unix shell has a number of useful built in features such as cURL, SSH, file operations etc.. For a long time Ruby on Rails had issues running on windows but most of those have been ironed out.

There is generally no difference between the two, however there are certain languages and frameworks that work better on one or the other. .NET development for example, is probably better done on windows.

Most widely used languages (C++. JAVA, PHP, etc.) will work fine on either one.
 
If I'm writing server-side scripts (PHP, Python, Perl, Ruby, NodeJS, etc.) I use a Mac since it more closely resembles the production environment (Linux/BSD servers). If I'm writing client-side code, I write it on whatever the target platform is. If you're writing server-side scripts on Windows that are targeted for a non-Windows server platform, at least set up a VM running a similar environment inside to test your stuff on. It's much easier to set up Ruby and Python for the web in a *NIX environment than on Windows. I do all mobile development on a Mac with no exceptions (though this may change if we start targeting Windows 8) since you need a Mac to build iOS-compatible binaries and our iOS and Android codebases are intertwined. If you're in school, try to use whatever your professors and classmates are using. It will be easier to get assistance from others if you are using the same platform as they are.
 
Well you COULD make a hackintosh if you really wanted to learn the software side, without paying the hardware prices. You can (easily) put OSX on any modern Intel based system, and AMD systems require a little more work.

Just have to buy an OSX install disc from Apple (they dont sell in the stores anymore).
http://store.apple.com/us/product/MC573/mac-os-x-106-snow-leopard $20

Just borrow a Mac from a friend to buy Mountain Lion. No sense in installing 10.6 then upgrading.
 
During college most people who used Macs coded on vim or emacs. Nobody used Xcode unless it was for iOS development.

Anyway IMO college learning is better done on OSX or Linux. However most of the times everyone SSHed into the school Unix workstations anyway.
 
Short answer, the platform you develop on generally doesn't matter much.

If you plan on doing OS X or iOS development, obviously a Mac is a better choice. If you want to do Windows specific development, the choice again is obvious. As far as general development goes, use what you're comfortable with.

Personally, I like *nix systems. I used to use Linux extensively, and now am using OS X. I personally found that many packages and tools did not play well on Windows, and generally worked much better in *nix systems. I also can't stand being away from a bash prompt, so that may have something to do with it.
 
I find both are fine for development. Obviously for most common types of applications, Windows has a much larger user base. OS X is a fine alternative for many types of BSD/*nix development.

The one thing about Xcode is that it is possibly one of the buggiest IDEs I've ever used. Seriously, if you work on any sizable project, prepare for parts of the IDE to stop working correctly, necessitating exiting and reloading. It reminds me of the state of IDEs from the Win9x era, and is totally unacceptable in 2013.
 
The one thing about Xcode is that it is possibly one of the buggiest IDEs I've ever used. Seriously, if you work on any sizable project, prepare for parts of the IDE to stop working correctly, necessitating exiting and reloading. It reminds me of the state of IDEs from the Win9x era, and is totally unacceptable in 2013.

I haven't used XCode extensively, but I have to throw in that I've had incredibly stupid issues with Visual Studio. I find most IDE's I've used that provide anything more than absolute basic functionality is buggy. I prefer a text editor and compiler personally, much less to go wrong :)
 
I haven't used XCode extensively, but I have to throw in that I've had incredibly stupid issues with Visual Studio. I find most IDE's I've used that provide anything more than absolute basic functionality is buggy. I prefer a text editor and compiler personally, much less to go wrong :)
Not knowing how to use VS's tools is a separate issue from the sheer bugginess of Xcode.
 
The one thing about Xcode is that it is possibly one of the buggiest IDEs I've ever used. Seriously, if you work on any sizable project, prepare for parts of the IDE to stop working correctly, necessitating exiting and reloading. It reminds me of the state of IDEs from the Win9x era, and is totally unacceptable in 2013.

It just wants a boatload of RAM. After we rolled out new systems with 16GB, we saw almost no crashing or stability issues, so we upgraded all the existing devs to 16GB and it fixed most of our problems. Xcode behaves terribly when it is hungry, but we have far less problems with it than Visual Studio (which has a tendency to behave badly for no reason at all).
 
No, it's not true.

Most developers will use the environment they're targeting. If you're writing code to run under OSX or iOS, you'll use a Mac. If you're writing Windows code, you'll use Windows. If you're targeting Linux, you might run Linux directly or you might use OSX.

The exception are embedded systems. If you're targeting a microcontroller, you're not going to run your development environment on that same microcontroller. On the other hand, the tools the vendor makes available for that environment will probably dictate what platform you run on your desktop. That also drives platform choice for mobile development; good iOS tools aren't available for Windows, so iOS developers use Macs.

^^ this.
 
Seriously, if you work on any sizable project, prepare for parts of the IDE to stop working correctly, necessitating exiting and reloading. It reminds me of the state of IDEs from the Win9x era, and is totally unacceptable in 2013.

Would 100k LOC count as sizable?

Works fine here...
 
Not knowing how to use VS's tools is a separate issue from the sheer bugginess of Xcode.
You don't need to not know how to use IntelliSense for it to fail catastrophically. It's just going to do that anyway.
 
I switched to a Mac simply due to the fact I am a PHP web developer and wanted something closer to the linux command line than MingW64 or what ever it was called could give me in windows.

But I know plenty of people who are perfectly happy on windows, comes down to personal preference and the platform your working on in my opinion.
 
While I switched to a Mac Pro for development work, I don’t see this being the general case for professional software engineers. At least not unless they are developing for OS X or iOS or just prefer the platform.

I develop for multiple platforms, including Windows, OS X, Linux, iOS and Android, as well as doing a good amount of embedded work, using a variety of languages and tool chains. This is the least hassle way to run all of those environments in parallel on a single box.

Virtualizing OS X under Windows is more hassle than the other way and since this is a tool the margins in piddling about with potentially broken OS X instances due to updates just isn’t worth it (it's not hard, but one failure and anything I might have saved would be wiped out). Also I like having the ability to seamlessly host Windows applications on the OS X desktop.

As an added bonus it was the cheapest and fastest way to get a 12-core/24-thread machine with good RAM capacity and that is extremely quiet. HP and Dell etc. were a month out on deliveries and a couple of thousand dollars more expensive for the same basic spec.

And if this box died tomorrow I could have a replacement the same day.
 
Back
Top