Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

wumster

macrumors newbie
Original poster
Jun 21, 2012
3
0
Hello all,

I searched the forums and I couldn't find what I was looking for so I hope someone can help. I am very interested in investing in a Mac, but the only thing that I am worried about is that it may not be the right tool for me to develop on.

I really want to get away from Windows, not because I think the OS is horrid, I just think OS X is better. I use Visual Studios a lot and I am very heavy into app development. I am learning Objective-C but I still love C# and C++. I know that I can program using C++, but what about C#? Also, i want to continue to develop Windows 8 and windows phone apps along with iOS. What is your (opinion)s on the matter?

If I asked the wrong question or I didn't make myself clear then I am sorry, I will gladly clarify anything someone doesn't understand. Thank you.
 
Last edited:
Honestly, you're going to be using windows a lot more than OSX if you're going to school for software engineering. I took software engineering while I was in college and 80 percent of the time I had to boot camp into windows. Visual Studios is a very good IDE and you can't get that on OSX.
 
With a little bit of ingenuity, you can get by fine in a Computer Science program with a Mac. I took a lot of computer science courses about 5 years ago, so I can't say how relevant this is today, but this is my experience.

Most of my peers and all of the teachers taught the courses from on Windows PC's. All of the computer labs were also setup with Windows PC's. The programming classes that I took were in Java, so I didn't run into any issues copying the projects between computers. NetBeans IDE ran fine in both environments.

For an Oracle database class that I took, the teacher provided instructions and a CD for installing the software, but only for Windows. The software is also made for Mac, but it was up to me to figure how to get the Oracle SQL Client installed and running on my machine. At the end of the day, I was much happier running the client from the OS X Terminal then from the Windows cmd.exe prompt because of better Readline support (better editing of command lines as they are typed in). It's not that the teacher didn't like Macs, but that he was unfamiliar with them. There must have been a demand however, because I was asked to whip up some documentation on how I did it for future students to use.

To cut a long story short:
Be prepared to operate in a Windows centric environment. There's no reason why you shouldn't be able to use a Mac in your classes though. I suggest installing either VirtualBox or Parallels, and Windows 7/8 for those times that you'll need to operate in Windows and with VisualStudio. Does your school offer any iOS or Mac development courses? Mine did not, so any development in those areas had to be done on my own time. Fortunately, the concepts of development span across platforms.

Good luck!
 
Honestly, you're going to be using windows a lot more than OSX if you're going to school for software engineering.
The fact is that this is very dependent on how the curriculum is set up. It varies from school to school. Some lean heavily on platform independent languages like Java, some lean heavily on Unix based OS's. I wouldn't make that blanket statement.

I'd go for a Mac, and should any classes require Windows based tools, get a copy of Parallels/VMware (I personally like VMware better) and a copy of Windows. Most schools participate in a developer program with Microsoft that allows students to get Windows licenses for free (so you may not need to buy a copy).
 
You have to decide how much you enjoy working in a VM. Because you'll be doing it a lot. Some people need to work in a Windows environment. I have an IT job where I can choose a high-end Macbook Pro or a high-end Thinkpad. There is no budget limit.

Sounds great right? I picked the Thinkpad. Almost all of my tools are Windows only. It's easier to get my work done. At home I have a Mac. My co-workers who have Macs are constantly working in a VM and complaining about it. Personally, I don't see the point.

Your situation is different, in studies you can probably live in both worlds on one machine a little more easily. If you do - get lots and lots of RAM.
 
The fact is that this is very dependent on how the curriculum is set up. It varies from school to school. Some lean heavily on platform independent languages like Java, some lean heavily on Unix based OS's. I wouldn't make that blanket statement.

I'd go for a Mac, and should any classes require Windows based tools, get a copy of Parallels/VMware (I personally like VMware better) and a copy of Windows. Most schools participate in a developer program with Microsoft that allows students to get Windows licenses for free (so you may not need to buy a copy).

I'm pretty sure most engineering schools have more windows base machines than Macs unless it's iOS/cocoa development. Using Parallels/VMware on large projects, that's not a good idea. Just boot into windows and run it natively, because less crashes and performance issues.
 
Last edited:
Thank you all for the replies. All of you who answered are really unbiased and are giving me some really good information. Is it bad to boot into a VM for programming? Will performance suffer?

To get some other stuff out of the way, my school does teach iOS programming. I guess another question is, will Objective-C help me in the future as far as the job market is concern? I feel that the more I know, the more I can separate myself from others. Objective-C is moving up in the programming rankings and I don't want to be left out.

http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

I graduate next year and I really want to be well rounded.
 
I'm pretty sure most engineering school have more windows base machines than Macs unless it's iOS/cocoa development. Using Parallels/VMware on large projects, that's not a good idea. Just boot into windows and run it natively, because less crashes and performance issues.


agreed. running vm/virtualbox/etc is really only good for a few things (like testing views in crappy ie browsers) and definitely not for application development.

if you want to be 'more well-rounded', well objective c isn't really the one to go for then. everyone tries to scramble on top of objective c because they think the big bucks are in iOS dev so you're not really standing out at all. very few actually make anything of it. game development is another matter altogether and will require much more knowledge than objective c.

i hope you realize that despite the fact that native apps are the current trend right now, its more and more likely that web apps will come back into stronger force as js/html5/css3 become more powerful and will be fully cross-platform rather than platform-specific.
 
Thank you all for the replies. All of you who answered are really unbiased and are giving me some really good information. Is it bad to boot into a VM for programming? Will performance suffer?

To get some other stuff out of the way, my school does teach iOS programming. I guess another question is, will Objective-C help me in the future as far as the job market is concern? I feel that the more I know, the more I can separate myself from others. Objective-C is moving up in the programming rankings and I don't want to be left out.

http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

I graduate next year and I really want to be well rounded.

When learning programming, don't focus so much on the language but more of the concepts such as OOP (Object-oriented programming). Once you understand OOP, you can pretty much pick up any OOP programming languages. Yes VM does hurt performance when comparing to natively.
 
When learning programming, don't focus so much on the language but more of the concepts such as OOP (Object-oriented programming). Once you understand OOP, you can pretty much pick up any OOP programming languages. Yes VM does hurt performance when comparing to natively.

Thanks Cypther
 
I'm pretty sure most engineering schools have more windows base machines than Macs unless it's iOS/cocoa development. Using Parallels/VMware on large projects, that's not a good idea. Just boot into windows and run it natively, because less crashes and performance issues.

I disagree with this. I graduated ~4 years ago from a somewhat well known engineering school. There was a large increase in the number of macs being used by professors and students just in the 4 years that I was there and I assume its even greater now. Also, there wasn't a single class I can remember that required the use of a PC. Most of our projects or homework either were written in Java or had to be run on shared unix machine.

How much a program depends on windows is very dependent on the school, as someone has already mentioned.

----------

You have to decide how much you enjoy working in a VM. Because you'll be doing it a lot. Some people need to work in a Windows environment. I have an IT job where I can choose a high-end Macbook Pro or a high-end Thinkpad. There is no budget limit.

Sounds great right? I picked the Thinkpad. Almost all of my tools are Windows only. It's easier to get my work done. At home I have a Mac. My co-workers who have Macs are constantly working in a VM and complaining about it. Personally, I don't see the point.

Your situation is different, in studies you can probably live in both worlds on one machine a little more easily. If you do - get lots and lots of RAM.

IT is very different than software engineering. I work for a software company that has about 300 people in 11 countries and there probably isn't a single person in engineering that has a PC. We touch Java, Ruby, Python, iOS development, Android development, etc.

Unless you are doing something that specially requires C# or something similar, a mac is much better for development than windows.
 
Thank you all for the replies. All of you who answered are really unbiased and are giving me some really good information. Is it bad to boot into a VM for programming? Will performance suffer?

To get some other stuff out of the way, my school does teach iOS programming. I guess another question is, will Objective-C help me in the future as far as the job market is concern? I feel that the more I know, the more I can separate myself from others. Objective-C is moving up in the programming rankings and I don't want to be left out.

http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

I graduate next year and I really want to be well rounded.

Speaking from experience as a current engineering student, Mac's are growing on campus exponentially. Even those involved in technical majors are typically using Parallels or VMware Fusion and there are some using boot camp. Personally, I bought a MacBook Pro going into school, and I have no regrets. I was able to get into iPhone development and also run Win7 when needed.

Off of an SSD, Win7 takes about 15 seconds to boot on my 2010 MacBook Pro in VMware Fusion. So, speed should not be a concern at all. Performance should not stress the machine tremendously when developing. I'm able to run some fairly intensive Windows games on my dual booted Mac. At least if you go with the Mac, you are able to work on both platforms. Most languages I was able to use my code without issue between Mac OS and Windows. And the CS dept at my school also has a number of Mac labs.

Mac's are definitely growing. Dual boot is the way to go if you would like access to both worlds. Plus, I appreciate the design/build quality of my Mac over the PC manufacturers. You pay a premium, but it's worth it.
 
Honestly, you're going to be using windows a lot more than OSX if you're going to school for software engineering. I took software engineering while I was in college and 80 percent of the time I had to boot camp into windows. Visual Studios is a very good IDE and you can't get that on OSX.

This must be very program dependent because I have a CS degree (program was very programming heavy) and we rarely used Windows.
 
Thank you all for the replies. All of you who answered are really unbiased and are giving me some really good information. Is it bad to boot into a VM for programming? Will performance suffer?

To get some other stuff out of the way, my school does teach iOS programming. I guess another question is, will Objective-C help me in the future as far as the job market is concern? I feel that the more I know, the more I can separate myself from others. Objective-C is moving up in the programming rankings and I don't want to be left out.

http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html

I graduate next year and I really want to be well rounded.

I should note that I'm not a programmer although I graduated with a CS degree but it has helped me in my jobs since graduating. I used to do heavy Perl scripting, shell scripting, some reverse engineering, etc.

It doesn't hurt to learn other programming languages and practice in them but honestly, once you learn how to program in one language, you can program in the rest. Obviously there are some variations and style differences (for example I learned to program in Pascal but was expected to know C, C++, Java, etc. And you become a more efficient programmer in a language once you use it but that is just time. I don't know how your classes are but with ours, at the beginning of the semester, we'd be told what programming language we'd be using but the language itself was never taught.

My first job offer after college also was for a job programming in a language I've never used. Although I really liked the manager and the environment, I chose to go elsewhere due to location.

So anyway, not that this has to do with Macs in any way, I'd say go ahead and learn it and practice in it but either way, its not really a big deal.
 
True Eclipse works for a lot very well and it works just as well in OSX.

In my experience you mostly have to figure out how to install stuff yourself. For Windows there is often an installer. Click next ... ready go. All the configs are written all the stuff is done by the installer.
For Unix apps you often need to set your env. variables yourself. Sometimes change folder privileges and we never got an explanation from teachers unless they had a Mac themselves.
On the other hand you learn more and know your way around the apps you use better. Especially dealing with servers of all kinds is so automated in Windows you never really learn anything.

Almost everything you will do in school will work fine on OSX and the few things that don't can easily be done on a VM. Once you go serious development and want to do Windows 8 Apps that is just not as convenient without Visual Studio. Xcode may work for Apple stuff iOS stuff.
It is mostly convenience and tools that will throw you back to Windows.

If you just start it doesn't matter because who knows what you will program in a few years. You will learn all the basics and learning specific languages is according to the job. Just don't get too dependent on one tool. Take a look into XCode and Eclipse.
Don't invest everything in one platform. IT is fast changing it is important to be flexible.

Windows can do almost all very well. OSX is better with learning Unix and Linux, it has ruby out of the box and stuff like Java works just as well. In Windows you can get by almost without ever touching the commandline. In OSX you do more on the terminal and that is not so bad.
Don't grow too dependent and you will do fine on a Mac, but it often does take more work. I had classes where a new little tool was needed every 2 weeks. Installing and setting up stuff at the beginning that is not properly packaged can create quite a workload. Sometimes that is half of everything. It gets better overtime.
 
Yes game programming C#/C++ XNA.

I was never interested in game programming myself and our school didn't do anything specific regarding games. So its not something I am too familiar with. Funny though, our school (which 90% of our programming was on Unix platforms) was a big hiring source of one of the major gaming companies. I never looked into what programming languages they utilized though but it doesn't really matter what you learn, it is how you translate it once you start working :)
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.