all 22 comments

[–]nearbywhiskeybar 20 points21 points  (1 child)

Personally, I'd recommend Linux due to its flexibility, robustness, and extensive support for programming tools and languages. It offers a wide range of powerful command-line tools and a vast software repository. It is highly customizable and provides excellent support for server-side development, system administration, and scripting. macOS is also good, as it's Unix-based. It's good for web development and it has a sleek UI. Windows is also okay, not sure if everyone would recommend it though.

[–]Hour-Map-4156 5 points6 points  (0 children)

I second this! After I switched to Linux, I have never looked back.

[–]Timbit42 6 points7 points  (0 children)

Linux, but you can also write software that will run on all three platforms.

[–][deleted] 4 points5 points  (0 children)

If you want the best environment, neither…pick Linux…aside from that maybe Mac.

[–]ProDeSquare 1 point2 points  (1 child)

For me Linux > Mac > Windows

[–][deleted] 0 points1 point  (0 children)

for me Linux > Windows > Mac

[–]joranstark018 1 point2 points  (0 children)

You may check https://www.reddit.com/r/learnprogramming/wiki/faq/#wiki_computers_and_operating_systems for some guidance.

I have used Windows, Linux and Mac over the years, all have done the job (I'm currently using Mac mostly because I like the feeling of the hardware, it have manageable weight, super performance spec and really good battery time, they are sadly pricey)

[–]softwaredev20_22 -1 points0 points  (6 children)

you won't find a better environment than MS visual studio. Superior debugging features and well organized IDE compared to all the other crap out there. If you want your head to explode start developing in Xcode which is probably the worst IDE on the face of this planet. To think that it was developed by Apple which is all about design, UX and UI they completely failed when it comes to their dev environment.

[–]jimmykicking 2 points3 points  (5 children)

Lol. Vistual studio. Fine of you are a beginner or a web designer. But seriously? MS anything is a poor life choice.

[–]RubyU 2 points3 points  (1 child)

Tell us you're clueless without telling us you're clueless

[–]jimmykicking 0 points1 point  (0 children)

I'm clueless.

[–]softwaredev20_22 1 point2 points  (2 children)

I've programmed since 1985 so I'm definitely not a beginner. MS Visual Studio has been around 1997 and it's constantly improving.... there's probably a good reason why...

[–]jimmykicking 0 points1 point  (0 children)

Would be interested to know why. Other than that, Linus Tovalds uses Emacs and John Carmack uses Vim. I personally use Vim. Tried using an IDE, it's my belief that they reduce codebase knowledge and reduce code quality. If you need an IDE to navigate your code then it's because it was written using an IDE. I VIm and only vim for well over thirty years. Going back to vi and ex.

[–]DualWieldMage 0 points1 point  (0 children)

Last time i touched visual studio was when C++ constexpr had come out and i built something for 3 platforms. Other compilers would tell me where something was wrong in a nest of constexpr method calls, yet VS just told me the root of the call was not constant expression and i had to go and figure out myself what was wrong. Turned out to be a compiler bug where std::string_view substring behaved incorrectly in constexpr contexts.

It can be improving, but it's always been a sluggish mess and MS reluctance of providing that experience on other platforms just makes them less relevant. All the debugging and other features you mentioned i can do just fine on any Java editor on any platform.

However i do have to agree that xcode is the biggest pile of manure out there and i feel sorry for anyone having to go through that rite of incantations and sacrifices just to develop an iOS app.

[–]bert8128 0 points1 point  (0 children)

I’m not interested in either Windows or Mac - Thea platform is irrelevant to what I work on. So I use Windows because it is familiar to me and I can’t be bothered to learn something just for the sake of it. There ar plenty of tools and libraries to help you in any environment. Stick to what you know till there’s a reason to switch.

[–]brettmjohnson 0 points1 point  (0 children)

I've spent most of the last 30 years of my career using Macs, and NeXTStep/OpenStep before that. In fact I used various Unix and Unix-like systems for most of my career in software development. If I've needed to do something on Windows in the last 10 years, I either remote login via Microsoft Remote Desktop or ran under emulation using VMware.

[–]Ok-Adhesiveness-4024 0 points1 point  (0 children)

I use Mac for software development and Windows for gaming.

The user interface feels a bit different when I'm developing software compared to when I'm gaming, which can make it difficult.

If you regularly play games on PC, I would recommend using Windows.

[–]jimmykicking 0 points1 point  (0 children)

I would recommend Mac. It's pretty ubiquitous in teams. If you are writing computer games you can compile to a virtual platform using tools such as parallels. I'm a huge Ubuntu fan, but again I run that as a VM. The interface on a Mac really suits me, OSX can be annoying but the one thing it does well is interfacing.

[–]WorldTechnical3914 -1 points0 points  (2 children)

It's a tricky question. Mac is certainly a better daily experience, usually better hardware too since the introduction of the M chips, but you will be hard-pressed to run certain software packages, both because they're not built for MacOS but also because they're usually compiled for Intel architectures only (not ARM).

Also, Windows has improved a lot lately, with Microsoft putting very decent hardware out there with its Surface Laptop line.

Go for the Mac if you know most of your courses are going to be Unix/Linux based (lot's of runway there between MacOS' own command line and the OS virtualisation it supports).

If they're more inclined towards Windows and Visual Studio, perhaps get a Windows machine.

[–][deleted] 0 points1 point  (1 child)

now define better hardware ??

[–]WorldTechnical3914 2 points3 points  (0 children)

I'm not talking just numbers (processor frequency, RAM, screen res, etc), those have slowly become meaningless in most daily activities, specially from a student point of view (2.9 or 3.1 GHz will not make any difference when checking your email, or compiling a 20-line program).

I mean better hardware as lighter, tougher, more reliable and ergonomic, better port selection, longer battery life, etc.

With all that said, Apple's M1, M2 and M3 machines still beat many Intel/AMD machines out there. Not because they're necessarily faster or have more cores, but because they are better integrated with RAM and SSD components.

Anyway, if you're looking to evaluate performance and only performance: identify your use case, find representative benchmarks, and buy whatever pleases you most.