Jump to content

Mac vs Windows for programming?

Pavilion

I own a MacBook 15" retina it's one of my favorite laptops and I own an iMac 5k which is my main home device

I'm now studying programming at the college all the software that the college use in windows platform even the explanation in windows.

so I'm thinking of getting a build with GTX 1080 and sell the iMac to have the benefit of both Windows and Mac? is it ok to switch sides when programming or should I stay with one platform to learn?

any advice or suggestions?

 

Thanks,

AMD Ryzen 1700x

Asus Crosshair VI Hero

GTX 1070

16gb RAM 2333Mhz

500gb Samsung SSD

Windows 10 & Linux

 

Link to comment
Share on other sites

Link to post
Share on other sites

5 minutes ago, Pavilion said:

I own a MacBook 15" retina it's one of my favorite laptops and I own an iMac 5k which is my main home device

I'm now studying programming at the college all the software that the college use in windows platform even the explanation in windows.

so I'm thinking of getting a build with GTX 1080 and sell the iMac to have the benefit of both Windows and Mac? is it ok to switch sides when programming or should I stay with one platform to learn?

any advice or suggestions?

 

Thanks,

What kind of programming? If your talking about Microsoft's Visual Studio, then yes, selling the iMac would be sensible. However, if its somthing like HTML or somthing you don't need an IDE that is restricted to windows, you can use an editor like notepad+ or brackets (I prefer brackets - its free too) or any other code editor.

 

If you do get a Windows PC, what you could do is use remote desktop to connect to it from your mac so you do all of your work on the pc. However, saying all that, I prefer to do all of my work on my laptops, either my SONY VAIO or my chromebook, which has linux and chrome OS dualbooted. I then sync everything through Google drive.

 

 

WAIT. ONE MORE THING (i forgot this) You can actually dualboot Windows on a mac, or macbook - a guide can be found here: https://www.google.co.uk/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwij2Iirz8LWAhXKlxoKHTqJAV4QFggoMAA&url=https%3A%2F%2Fwww.laptopmag.com%2Farticles%2Fdual-boot-windows-os-x-mac&usg=AFQjCNFrXpXdjAO5IeOdOo0M2vlwRaRXjQ

Bow down to me humans.

I can't help if you don't quote me. How am I supposed to know if you need my premium support? Now starting at £399.99 a year.

Also, be a sport and mark the correct answer as the correct answer. It will help pour souls in the future when they are stuck and need guidance.

"If it works, proceed to take it apart and 'make it work better.' Then cry for help when it breaks." - Me, about five minutes ago when my train of thought wandered.

Remember kids, A janky solution is still a solution.

Link to comment
Share on other sites

Link to post
Share on other sites

When programming the only thing you really should learn is how to code, not special features inside visual studio or whatever, since that will prevent you from switching platform or software in the future. If I were you I would go for linux and learn vim (which is what I did for university earlier this year) since it will help you out later in your life, but it requires a lot of time and maybe they have visual studio specific instructions (like the class designer, etc) which you will either have to translate to linux or dualboot to follow, so it would probably be easier/ require less work to switch to windows. But if it was between getting mac or linux I don't see any reason to use mac, except it being more familiar

Long live Stalin, he loves you; sing these words, or you know what he’ll do!

Link to comment
Share on other sites

Link to post
Share on other sites

Unless you need to do what can only be done on windows. sure then.

Switching from hardware/software is idiotic if you can do it on your current.

 

Many people i worked with who are web developers used Mac, sure it had some nice features but nothing worth the switch.

Selling my Gaming Pc because I'm highly interested in web development would be just dumb, even i never will touch .NET or something.

It comes all to building and having personal experience, only switch if you have legit reasons.

 

As for you college who teaches on Windows.

There will be a way to get it working on MAC most of the times.

Maybe not the exact software, but maybe even better software.

Quote or mention me if not feel ignored 

Link to comment
Share on other sites

Link to post
Share on other sites

platform does not mean anything unless it's proprietary.

i want to die

Link to comment
Share on other sites

Link to post
Share on other sites

6 hours ago, Pavilion said:

I own a MacBook 15" retina it's one of my favorite laptops and I own an iMac 5k which is my main home device

I'm now studying programming at the college all the software that the college use in windows platform even the explanation in windows.

so I'm thinking of getting a build with GTX 1080 and sell the iMac to have the benefit of both Windows and Mac? is it ok to switch sides when programming or should I stay with one platform to learn?

any advice or suggestions?

 

Thanks,

It doesn't really matter which platform you learn programming on. The only sticking point is whether or not the tools your classes require are available for Mac or if they're only on Windows.

 

Worst case scenario, you can make a Bootcamp partition or a VM. It's unlikely your assignments require something that needs a powerful machine.

Link to comment
Share on other sites

Link to post
Share on other sites

2 hours ago, M.Yurizaki said:

It doesn't really matter which platform you learn programming on. The only sticking point is whether or not the tools your classes require are available for Mac or if they're only on Windows.

 

Worst case scenario, you can make a Bootcamp partition or a VM. It's unlikely your assignments require something that needs a powerful machine.

Not only all of that, but if you're working on anything that's going to run on Apple's ecosystem, you WILL need that Mac.

CPU - Ryzen 7 3700X | RAM - 64 GB DDR4 3200MHz | GPU - Nvidia GTX 1660 ti | MOBO -  MSI B550 Gaming Plus

Link to comment
Share on other sites

Link to post
Share on other sites

5 minutes ago, PocketNerd said:

Not only all of that, but if you're working on anything that's going to run on Apple's ecosystem, you WILL need that Mac.

In which case they should have a computer lab with Macs and all the tools you'll need to get your assignments done.

 

Actually, avoid any school offering a computer science related curriculum that doesn't have a computer lab with all the necessary things you need to get your assignments done.

Link to comment
Share on other sites

Link to post
Share on other sites

Programming on Windows is terrible, period. Why?

  • No built-in package manager, support for version managers (afaik), you just have chocolatey which isn't too comfortable to use
  • PowerShell and cmd commands are different from macOS/Linux ones, the shells aren't easy nor comfortable to use.
  • If you're not using a proper editor, unix line endings could get replaced with Windows line endings and screw up your code.
  • Many niche languages and libraries simply don't support Windows.
  • It's more difficult to get build tools, compilers etc., and their installation is way more time consuming than on macOS/Linux.

 

10 hours ago, limegorilla said:

What kind of programming? If your talking about Microsoft's Visual Studio, then yes, selling the iMac would be sensible. However, if its somthing like HTML or somthing you don't need an IDE that is restricted to windows, you can use an editor like notepad+ or brackets (I prefer brackets - its free too) or any other code editor.

 

If you do get a Windows PC, what you could do is use remote desktop to connect to it from your mac so you do all of your work on the pc. However, saying all that, I prefer to do all of my work on my laptops, either my SONY VAIO or my chromebook, which has linux and chrome OS dualbooted. I then sync everything through Google drive.

 

 

WAIT. ONE MORE THING (i forgot this) You can actually dualboot Windows on a mac, or macbook - a guide can be found here: https://www.google.co.uk/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=0ahUKEwij2Iirz8LWAhXKlxoKHTqJAV4QFggoMAA&url=https%3A%2F%2Fwww.laptopmag.com%2Farticles%2Fdual-boot-windows-os-x-mac&usg=AFQjCNFrXpXdjAO5IeOdOo0M2vlwRaRXjQ

Unfortunately, I don't think you have much experience in development, people don't just do development in pure HTML - I don't know a company where it would've been done so. Everyone uses either a full-fledged front-end framework environment (Vue + webpack for example) or they are using back-end language/features, like Jade for JS or Blade for PHP (Laravel), and in pretty much all decent webapps you'll use some kind of toolchain. For both case scenarios, you need good editors that can support custom syntaxes and build tools to actually run your code.

 

 

Link to comment
Share on other sites

Link to post
Share on other sites

2 hours ago, PocketNerd said:

Not only all of that, but if you're working on anything that's going to run on Apple's ecosystem, you WILL need that Mac.

not true

i want to die

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, Gachr said:

Programming on Windows is terrible, period. Why?

  • No built-in package manager, support for version managers (afaik), you just have chocolatey which isn't too comfortable to use
  • PowerShell and cmd commands are different from macOS/Linux ones, the shells aren't easy nor comfortable to use.
  • If you're not using a proper editor, unix line endings could get replaced with Windows line endings and screw up your code.
  • Many niche languages and libraries simply don't support Windows.
  • It's more difficult to get build tools, compilers etc., and their installation is way more time consuming than on macOS/Linux.

 

Unfortunately, I don't think you have much experience in development, people don't just do development in pure HTML - I don't know a company where it would've been done so. Everyone uses either a full-fledged front-end framework environment (webpack + Vue for example) or they are using back-end language/features, like Jade for JS or Blade for PHP (Laravel), and both use some kind of build toolchain. For both, you need good editors that can support custom syntaxes and build tools to actually run your code.

 

 

windongs 10 has `bash`

aka thin linux install you can use from command prompt

i want to die

Link to comment
Share on other sites

Link to post
Share on other sites

2 minutes ago, Lumi said:

windongs 10 has `bash`

aka thin linux install you can use from command prompt

Yes, I forgot to mention that. I didn't use that feature personally.

Link to comment
Share on other sites

Link to post
Share on other sites

Just now, Gachr said:

Yes, I forgot to mention that. I didn't use that feature personally.

Personally, The only thing I prefer OSx or a linux flavor for developing is web applications because it's easier in my opinion to setup a robust local stack.

i want to die

Link to comment
Share on other sites

Link to post
Share on other sites

Quote

I own a MacBook 15" retina it's one of my favorite laptops and I own an iMac 5k which is my main home device

... and I'm sure you'd miss your favourite laptop if you were to part ways with it. I understand this much, and that's where this answer's coming from.

 

Quote

I'm now studying programming at the college all the software that the college use in windows platform even the explanation in windows.

There are several solutions to this problem, including those which have been mentioned: dualbooting and emulating Windows. In order of my preference (of keeping my favourite environment open while I work, preferably working inside of it), I would:

  • Investigate non-Windows alternatives; for example, if you're learning about C# you might be able to do most of your work in Mono or (better yet) llvm/clangsharp.
  • Alternatively, you could run Windows inside of an emulator, which trades off a bit of performance for the ability to switch back and forth between OS X and Windows quickly without rebooting the computer...
  • If you're writing a game in Windows, you might need better performance to test it... and dualbooting might be your only option, in this case.

 

Quote

so I'm thinking of getting a build with GTX 1080 and sell the iMac to have the benefit of both Windows and Mac?

You could do that... but you have three other alternatives to try.

 

Quote

is it ok to switch sides when programming or should I stay with one platform to learn?

Once again, it depends. If you're doing game programming, you likely won't use any OS other than Windows. Otherwise, programming for OS X is just... great! Better than programming for Windows. It's POSIX compliant, it's got llvm/clang (well, errrm, the Apple version of it, which is expected since Apple pioneered llvm). Windows wants llvm/clang, but isn't quite there yet.

I'm a C programmer, I used to use Windows every day and it's got the worst C API. I now use Linux, I've used OS X's terminal and I'd rather have OS X than Windows. In fact, I'd rather have OS X than Linux. It reminds me of FreeBSD, which is my favourite. I do kinda miss my games, though...

Nonetheless, learn the languages first, then each platform for the languages will be easy to grasp just by reading manuals. Learn everything that seems to have long-term prospects! Seriously, it's your education, and you don't want to short-change yourself, right?

Link to comment
Share on other sites

Link to post
Share on other sites

On 26.9.2017 at 11:13 PM, Gachr said:

Programming on Windows is terrible, period.

Programming itself is terrible, "period". I, for one, made good experiences with programming on Windows and I will continue to do so, involving other OSs as well but sticking to Windows as my main development environment.

 

The only major issue I noticed is Visual Studio's horrible C support. Good thing there's Clang on Windows.

Write in C.

Link to comment
Share on other sites

Link to post
Share on other sites

On 10/2/2017 at 10:58 AM, Dat Guy said:

Programming itself is terrible, "period".

Maybe it's because you program in C?

Long live Stalin, he loves you; sing these words, or you know what he’ll do!

Link to comment
Share on other sites

Link to post
Share on other sites

On 9/26/2017 at 2:13 PM, Gachr said:
  • No built-in package manager, support for version managers (afaik), you just have chocolatey which isn't too comfortable to use

The no package manager thing I'll bite, but at the same time, development frameworks for Windows should come with everything they need. However, macOS doesn't have a package manager anymore and so you'll have to rely on something like brew to get that functionality.

 

If you're saying version managers like SVN or Git, there are Windows versions for those clients.

Quote
  • PowerShell and cmd commands are different from macOS/Linux ones, the shells aren't easy nor comfortable to use.

I'll agree that PowerShell's native command set is overly verbose, but PowerShell by default aliases a bunch of those commands to common command line commands anyway, including aliasing to shell commands (you can use "ls" on PowerShell, it'll just call whatever the commandlet for directory listing is)

 

But I don't see how cmd commands being different than shell commands makes it worse. You may as well tell me American English is worse than British English because they spell things differently (-or vs -our or using s vs z) or because they have a different word for the same thing (cookie vs biscuit)

Quote
  • If you're not using a proper editor, unix line endings could get replaced with Windows line endings and screw up your code.

This is only a problem on languages that care about whitespace, like Python. If you're working in C, the compiler won't care.

 

On the Windows side this is only a problem if you're using Notepad, because most of the alternative text editors on Windows handles newlines appropriately. In which case you deserve to be taken back and beaten with a wiffleball bat.

Quote
  • Many niche languages and libraries simply don't support Windows.

Why are you using a niche language in the first place?

Quote
  • It's more difficult to get build tools, compilers etc., and their installation is way more time consuming than on macOS/Linux

That depends on the language and the framework. For example, when I was setting up a Node.JS environment a few years ago, it was more annoying to get it set up on a *nix environment. On Windows it was "download the installer and run it"

 

Ultimately though it also depends on what you're targeting. The first few years in my software development career I almost never touched a POSIX style OS for actual development work because everything we did was on embedded systems which came with their own IDE. And when I was working at Qualcomm for a few months, I did my test builds on a Windows machine.

 

Where I currently work is the first time I have to use Linux as the development environment, if only because Linux is the target environment. Though some of our stuff can be built on Windows. And at one point, one of the things we build had to be built on Windows.

Link to comment
Share on other sites

Link to post
Share on other sites

I found that Notepad perfectly eats \n though (under certain circumstances).

Write in C.

Link to comment
Share on other sites

Link to post
Share on other sites

Linux.

Running Arch with i3-gaps on a Thinkpad X1 Extreme
Data Science Postgrad

 

Link to comment
Share on other sites

Link to post
Share on other sites

All comes down to a) personal preferences or b) specific applications running on a specific OS. 

You can develop web apps on any system, there are more than enough tools to choose from. If it's hardware accelerated graphics stuff, you're mostly better off with Windows. You're looking at Server stuff? You're most likely better off with Linux.

macOS is very very very similar under the hood to Linux. If it works on Linux it will most of the time work pretty well on macOS (unless you're going for programms and services with GUI stuff, that's more tricky). GUI stuff in general is often platform proprietary (even though there are options). Running Virtualbox (free) with a Linux VM is not very power hungry so you can run such a VM on a Macbook or any Windows device (with more than 2 cores and let's say at least 4GB of RAM, more is better). Running Win10 in a VM is way more power hungry and sluggish. Virtualbox struggles like hell on my Macbook with a Win10 VM, a Debian VM with a proper Server Stack works like a charm though.

At the end: choose according to your needs and application.

Use the quote function when answering! Mark people directly if you want an answer from them!

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

×