Jump to content

MacOS or Windows 10 for programming?

shua

Hey all, I'm entering university for computer science and have the opportunity to get a laptop before getting started. I'm able to afford either a Macbook Pro or high end Windows laptop. I've seen a lot online about people using mostly Mac laptops for programming and software development because the Mac terminal runs on unix. I've been a Windows guy in the past, and could easily get a really nice Windows laptop with better hardware than a Macbook Pro for less money, but if the industry standard is MacOS it might be better to go that route. I'm hoping to get a lot of milage out of my purchase since the cost is high.

 

What are your thoughts? If you had the choice of either, would you go with Mac or Windows 10 getting into university for computer science?

 

Cheers.

Link to comment
Share on other sites

Link to post
Share on other sites

Get a better win10 laptop and run HyperV for a Linux VM for coding.

 

a 1.5k macbook gets you a 4c and igpu, while you can find a 1.5k windows. laptop with a 6c and a 1050 ti that is slim. 

Link to comment
Share on other sites

Link to post
Share on other sites

If you're looking for Programing, the Mac is going to offer the most compatibility specifically because of what you mentioned. The Mac terminal is based in Unix. Further you can dual boot Windows 10 with Bootcamp and run Linux in VMs. 

 

A MacBook Pro gives you access all 3 major Operating systems: macOS, Windows 10, and Linux. So if that is important to you, get a Mac. 

 

Considering you might not know exactly what you need, getting a machine that can do it all is probably your best bet. 

 

However if you know exactly what you need, I recommend contacting some instructors, then you can go for a Windows machine and save some money. 

Laptop: 2019 16" MacBook Pro i7, 512GB, 5300M 4GB, 16GB DDR4 | Phone: iPhone 13 Pro Max 128GB | Wearables: Apple Watch SE | Car: 2007 Ford Taurus SE | CPU: R7 5700X | Mobo: ASRock B450M Pro4 | RAM: 32GB 3200 | GPU: ASRock RX 5700 8GB | Case: Apple PowerMac G5 | OS: Win 11 | Storage: 1TB Crucial P3 NVME SSD, 1TB PNY CS900, & 4TB WD Blue HDD | PSU: Be Quiet! Pure Power 11 600W | Display: LG 27GL83A-B 1440p @ 144Hz, Dell S2719DGF 1440p @144Hz | Cooling: Wraith Prism | Keyboard: G610 Orion Cherry MX Brown | Mouse: G305 | Audio: Audio Technica ATH-M50X & Blue Snowball | Server: 2018 Core i3 Mac mini, 128GB SSD, Intel UHD 630, 16GB DDR4 | Storage: OWC Mercury Elite Pro Quad (6TB WD Blue HDD, 12TB Seagate Barracuda, 1TB Crucial SSD, 2TB Seagate Barracuda HDD)
Link to comment
Share on other sites

Link to post
Share on other sites

35 minutes ago, DrMacintosh said:

If you're looking for Programing, the Mac is going to offer the most compatibility specifically because of what you mentioned. The Mac terminal is based in Unix. Further you can dual boot Windows 10 with Bootcamp and run Linux in VMs. 

 

A MacBook Pro gives you access all 3 major Operating systems: macOS, Windows 10, and Linux. So if that is important to you, get a Mac. 

 

Considering you might not know exactly what you need, getting a machine that can do it all is probably your best bet. 

 

However if you know exactly what you need, I recommend contacting some instructors, then you can go for a Windows machine and save some money. 

I can triple boot windows, linux, and macOS on a none Macintosh pc if I use Hackintosh. Just saying. 

Sudo make me a sandwich 

Link to comment
Share on other sites

Link to post
Share on other sites

Get a dell xps 13. that thing is lightweight, portable, and stylish, perfect for a student. Its screen is amazing too. MacOS is by no means the industry standard. Professionals simply like to use it for video editing. 

 

Oh, if you simply refer to the OS, get whatever the software your classes will be using are gonna run on. 99.99% chance they will run on windows with 90% chance they will on mac and linux(assuming you are doing it for CS)

 

Don't listen to people who recommend overpriced machines just for features that you do not even need to pay for, especially true for software. Although if you are going to use SSH, Unix based system or at least a windows with Unix subsystem is recommended. 

Sudo make me a sandwich 

Link to comment
Share on other sites

Link to post
Share on other sites

4 hours ago, shua said:

What are your thoughts? If you had the choice of either, would you go with Mac or Windows 10 getting into university for computer science?

 

It really comes down to your choice. A friend uses a Mac while I use windows 10 and we both never had any issues.

 

My laptop is 6 years old with an i7 second gen and could easily run all my little programs without a sweat.

Link to comment
Share on other sites

Link to post
Share on other sites

9 hours ago, shua said:

Hey all, I'm entering university for computer science and have the opportunity to get a laptop before getting started. I'm able to afford either a Macbook Pro or high end Windows laptop. I've seen a lot online about people using mostly Mac laptops for programming and software development because the Mac terminal runs on unix. I've been a Windows guy in the past, and could easily get a really nice Windows laptop with better hardware than a Macbook Pro for less money, but if the industry standard is MacOS it might be better to go that route. I'm hoping to get a lot of milage out of my purchase since the cost is high.

 

What are your thoughts? If you had the choice of either, would you go with Mac or Windows 10 getting into university for computer science?

  

Cheers.

Keep in mind that under Windows 10, you have Windows Subsystem for Linux, allowing you to run Linux program natively on the system (you see them in the Task Manager too, as it if was Windows programs). You can use this environment to develop for Linux if you need to. You can install 1 or more Linux distro too (and cross functionality them if you are a mad scientist, but that is beside the point). So far, you have: Ubuntu, OpenSUSE Enterprise, OpenSUSE Leap, Debian GNU/Linux, Alpine and KALI.

 

But the reality of things, is that at university, you will be coding in Java most likely and most often, and even if you code in anything else, you should never be forced to use an OS over another other.

 

Many students buy Macs, but not because they can code on it, mostly those doing business related fields. In fact, I think you'll quickly realist that non-programmers will buy Apple computers, most programmers uses PC. I won't be surprised that you'll see more Chromebooks than Mac in Computer Science/Software Engineer classes over Apple.

Link to comment
Share on other sites

Link to post
Share on other sites

2 hours ago, GoodBytes said:

Keep in mind that under Windows 10, you have Windows Subsystem for Linux, allowing you to run Linux program natively on the system

There are some development things that don't work great in WSL. Docker is one example i've dealt with in the past. Docker doesn't run in a WSL envrionment cleanly and in order to actually get it working you need to expose some ports that aren't great for security to allow a host system's docker daemon to communicate with the WSL docker daemon. It might be better now, that was a few months ago, but it was pretty gross.

 

That said, you can also just do what we did upon finding that out, and just use a VM to run linux instead of using the WSL, and problem solved. (note i'm not knocking WSL, i'm just pointing out that 1) it's still got some hiccups to work out and 2) those hiccups don't disqualify windows for development since you still have VMs)

Gaming build:

CPU: i7-7700k (5.0ghz, 1.312v)

GPU(s): Asus Strix 1080ti OC (~2063mhz)

Memory: 32GB (4x8) DDR4 G.Skill TridentZ RGB 3000mhz

Motherboard: Asus Prime z270-AR

PSU: Seasonic Prime Titanium 850W

Cooler: Custom water loop (420mm rad + 360mm rad)

Case: Be quiet! Dark base pro 900 (silver)
Primary storage: Samsung 960 evo m.2 SSD (500gb)

Secondary storage: Samsung 850 evo SSD (250gb)

 

Server build:

OS: Ubuntu server 16.04 LTS (though will probably upgrade to 17.04 for better ryzen support)

CPU: Ryzen R7 1700x

Memory: Ballistix Sport LT 16GB

Motherboard: Asrock B350 m4 pro

PSU: Corsair CX550M

Cooler: Cooler master hyper 212 evo

Storage: 2TB WD Red x1, 128gb OCZ SSD for OS

Case: HAF 932 adv

 

Link to comment
Share on other sites

Link to post
Share on other sites

1 hour ago, reniat said:

There are some development things that don't work great in WSL. Docker is one example i've dealt with in the past. Docker doesn't run in a WSL envrionment cleanly and in order to actually get it working you need to expose some ports that aren't great for security to allow a host system's docker daemon to communicate with the WSL docker daemon. It might be better now, that was a few months ago, but it was pretty gross.

Every version of Windows 10 has improvements on WSL. But you won't be using Docker at university, and beside setting it up, you don't see how you want to use it as a dev environment.

 

1 hour ago, reniat said:

That said, you can also just do what we did upon finding that out, and just use a VM to run linux instead of using the WSL, and problem solved. (note i'm not knocking WSL, i'm just pointing out that 1) it's still got some hiccups to work out and 2) those hiccups don't disqualify windows for development since you still have VMs)

Yes, WSL has other limitations as well. But the point is not to run a Linux server on it for deployment purposes, but rather most cases for development.

 

Link to comment
Share on other sites

Link to post
Share on other sites

2 hours ago, reniat said:

There are some development things that don't work great in WSL. Docker is one example i've dealt with in the past. Docker doesn't run in a WSL envrionment cleanly and in order to actually get it working you need to expose some ports that aren't great for security to allow a host system's docker daemon to communicate with the WSL docker daemon. It might be better now, that was a few months ago, but it was pretty gross.

 

That said, you can also just do what we did upon finding that out, and just use a VM to run linux instead of using the WSL, and problem solved. (note i'm not knocking WSL, i'm just pointing out that 1) it's still got some hiccups to work out and 2) those hiccups don't disqualify windows for development since you still have VMs)

It's easier to get Linux apps running under WSL in Windows than getting Windows Apps running under wine in Linux. 

Sudo make me a sandwich 

Link to comment
Share on other sites

Link to post
Share on other sites

Honestly, buy the one you want. 

 

You can code properly on any OS. I use notepad++ or atom for windows, or I program in the terminal on mac. If you're writing cross platform code (python, java, etc) it's nice to have access to multiple platforms because some libraries don't work with certain OSes. (Many only work on windows, which is a bit annoying.) 

 

 

Also, with windows 10 you can install an instance of linux that sorta works in a sorta VM thingy? I did it and it's awesome for writing quick bash scripts or testing linux compatibility or simply giving me access to a bash terminal (because powershell and CMD suck).  Just go into the windows store and search "linux" and it's super freaking easy to install. 

 

Personally, I love the unix based terminal of mac. It's easy, it's standard, and it's built in. But I also like the massive amounts of programs (mostly games) available for windows. Also, the last few generations of mac laptops have been... less than stellar. (They're more form over function, insufficient cooling, etc.) And that's coming from a mac fanboy. 

Link to comment
Share on other sites

Link to post
Share on other sites

10 minutes ago, corrado33 said:

 

Also, with windows 10 you can install an instance of linux that sorta works in a sorta VM thingy? I did it and it's awesome for writing quick bash scripts or testing linux compatibility or simply giving me access to a bash terminal (because powershell and CMD suck).  Just go into the windows store and search "linux" and it's super freaking easy to install. 

 

 

It's compatibility layer, not vm. It is no different than running a Windows service pack on Windows 7 or 10 to sort out compatibility issues for programs that ran on older versions of windows.

 

Wine on Linux does the excat same things. Instructions ran natively rather than emulated. 

Sudo make me a sandwich 

Link to comment
Share on other sites

Link to post
Share on other sites

Just now, wasab said:

It's compatibility layer, not vm. It is no different than running a Windows service pack on Windows 7 or 10 to sort out compatibility issues for programs that ran on older versions of windows.

 

Wine on Linux does the excat same things. Instructions ran natively rather than emulated. 

Yeah it works super well, I was very surprised. 

Link to comment
Share on other sites

Link to post
Share on other sites

If this is for school, I would go with whatever is compatible with the tools they expect you to use. Or rather, look in their computer lab (I hope they have one) and get the platform that is most compatible with what they're using.

 

But if you want an answer to the question, I recommend Windows and if you need Unix like stuff, either use Windows Subsystem for Linux or run Linux on a VM like VirtualBox.

Link to comment
Share on other sites

Link to post
Share on other sites

Computer science is a very broad field so there is no "industry standard". Some 5 years ago when I was in uni our computer lab was mostly solaris (unix), some linux machines and a few macs. Windows machines were used elsewhere where students used excel or some engineering software (not related to CS) only available on windows. So if there was an industry standard, unix is probably it. 

 

As for tools that you will be using, it will mostly be pen and paper, and a text editor. Compilers and interpreters are available on most platforms. I have very limited experience with WSL but it seems to be a nice feature but not a substitute for a unix system. Some things mentioned in this thread seems to be missing the point (1050 ti? thermal performance?). You absolutely do not need a high performing laptop to run vim lol, and a dedicated graphics card is a waste of space. Leave that to the gamers.

 

If you are willing to spend the money, a mac is a great option as its a really nice machine, its unix, and it will probably last for your entire time at university. If you get a pc with linux you have more options to choose from and could potentially save some money. However, in my experience at least, you will have to spend time messing around to get your bluetooth headphones working, printer working (maybe not so much in 2018), or whatever else comes with the linux user experience. I would suggest to get a unix system to get into that workflow and unix way of doing things. 

Link to comment
Share on other sites

Link to post
Share on other sites

Personally i use a dual boot of Windows 10 and Mint on my laptop the only advantage of Mac would "maybe" be Objective C but it work well on Windows and extremely good on Linux (not a single problem so far). When i work with CAD software all their API are either window C++ or .Net. When doing Java, Mysql, and web programming i use mostly Mint. More pleasant and much faster on lower grade hardware.

Link to comment
Share on other sites

Link to post
Share on other sites

I used a Macbook Air during my computer science bachelor and switched to a XPS15 for my (also computer science) master.

Both machines can run all the software you want and most things (that don't require a GUI) also run in WSL (bash on Windows AKA Windows Subsystem for Linux).

 

If you are interested in graphics than that is a big win for any Windows laptop in terms of APIs.

Apple is deprecating OpenGL in favor of their own proprietary Metal 2 API.

There is a project for running Vulkan on Metal but I don't think it would be the most optimal development environment (less debugging options for example).

Also, Apple does not ship any laptops that come with a Nvidia GPU so no CUDA.

Apple does support OpenCL 1.2 for now (which is really old) but you don't even want to bother with OpenCL (it's so shit that I bought a secondary GTX1050 for CUDA, just to get away from OpenCL).

Now, if you're not interested in doing GPU work on your laptop (they drain battery and performance will suck when not connected to the charger) then a MacBook is a viable option.

 

If you ask me, the MacBook would even be the better option (if price is not an issue).

The trackpad of the MacBook is still miles ahead of any Windows laptops (both my old MacBook air and my brothers MacBook Pro 15 (2018) have nicer trackpads than the XPS 15).

Programming with a trackpad is almost impossible on Windows.

Literally every application scrolls differently (or not at all) and they all feel shit in their own way (no smooth scrolling, the way scrolling slows down is weird).

I never encountered this on my MacBook (on macOS): scrolling works the same in every application and it feels "just right".

Work spaces are also much better in macOS: full screen apps automatically get their own work space (really nice feature, at least on a laptop), good gestures to get a quick overview of all your open apps and work spaces and the ability to reorder work spaces (something that Windows 10 cannot do for some weird reason).

 

Also, independent of whether you choose for a MacBook or Windows laptop, go for a 13 inch model.

The difference in size/weight/battery life make a real difference when carrying it around and going from 13 to 15 inch doesn't have any impact on your productivity.

Furthermore, most 15 inch laptops have shitty battery life and require you to bring a charger.

Ultra books with integrated graphics don't have this issue so not only are they lighter/smaller but it also saves on a charger.

And in the case of macOS, you really need to bring a mouse either (I actually prefer a MacBook trackpad over a mouse because of the gestures) so that saves another 100 grams.

 

TLDR: need a dedicated / Nvidia GPU => Windows. Otherwise: MacBook Pro 13" (with touch bar, the one without touch bar is a dual core)

 

 

Desktop: Intel i9-10850K (R9 3900X died 😢 )| MSI Z490 Tomahawk | RTX 2080 (borrowed from work) - MSI GTX 1080 | 64GB 3600MHz CL16 memory | Corsair H100i (NF-F12 fans) | Samsung 970 EVO 512GB | Intel 665p 2TB | Samsung 830 256GB| 3TB HDD | Corsair 450D | Corsair RM550x | MG279Q

Laptop: Surface Pro 7 (i5, 16GB RAM, 256GB SSD)

Console: PlayStation 4 Pro

Link to comment
Share on other sites

Link to post
Share on other sites

15 hours ago, mathijs727 said:

 

this is the comment we need.. 

If it is not broken, let's fix till it is. 

Link to comment
Share on other sites

Link to post
Share on other sites

I have never worked on a windows machine. macOS has its advantage. the OS is built for productivity and it is really good for programming. 

to be honest if you just got into programming, OS does not matter. 

also if you just got into uni check the requirements of the laptops you need to buy. I remember when I was in school they gave us a huge specsheet and listed which courses demands what kind of laptop. some courses do not care. Others force you to buy a laptop with a certain OS because of the software they use. check with your school before you make your purchase.

 

I am a macOS guy so I might be biased towards mac.

If it is not broken, let's fix till it is. 

Link to comment
Share on other sites

Link to post
Share on other sites

On 11/20/2018 at 7:44 AM, Umberto said:

 

 

 However, in my experience at least, you will have to spend time messing around to get your bluetooth headphones working, printer working (maybe not so much in 2018), or whatever else comes with the linux user experience. 

It does require time, about as much time as getting printer and Bluetooth working on Windows, sometimes less. The trick is finding the right distro that has all the softwares out of the box so you do not have to hunt down printer drivers and software packages. 

Sudo make me a sandwich 

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×