Hi there.... I just want to know which operating system do you prefer for coding ??
Is it Mac, Windows or Linux?
I end up using all operating systems at some point, and at one point have used each of these as my primary OS for working.
Windows has a lot of software available for it which is good, but the quality of that software isn't always the best. Compared to almost every other OS out there, Windows feels 'backward', like it was designed to be opposite everything else. If you're a windows-only user you won't notice it since it's 'normal' to you, but if you use many OSes, Windows feels like wearing a pair of tight-fitting handcuffs.
Mac OS used to feel like Unix done Right™. It was a pretty desktop environment with some nice software libraries that let a lot of people make nice-looking apps. It used to be very configurable, but for every feature and every default setting, you knew somebody at Apple had thought about it and carefully set up very usable, nice defaults. Lately I feel like as they try to merge the UI of Mac OS and iOS they are improving iOS and ruining Mac OS a bit. The desktop environment that used to be a really nice computer desktop is slowly evolving into something more like a mobile device, which gets in the way of productivity.
Linux by contrast, is a little chaotic. It's infinitely configurable, so you CAN make it look prettier than anything else, but at times it also looks uglier than everything else too :P When I use Linux I feel like I'm in the middle of a hectic, messy kitchen. Great work can be done in that environment, and the whole setup is conducive to work, but sometimes it feels like work just to get things set up how you like them as well. When I use Linux as my primary OS I find myself spending a lot of time tweaking and fiddling with the setup to get it to that same 'nice' feeling I get using Mac OS without any messing around. But it is nice to have the power and freedom to change anything you want to in Linux as well.
Out of these three, Linux is by far the most conducive to coding, installing packages and dependencies, automating routine tasks with shell scripts, and just generally having a powerful command-line where you can manipulate files at an entirely different level than you can clicking and pointing to files and folders in something like Finder or Windows Explorer.
My usual setup now is using Mac OS as my primary OS for running software, but for my development work I'll often SSH into a Linux web server and do all of my work with my head in Mac OS, but my hands in Linux.
I fall in love of Centos.
I voted Linux, but my actual favourite is OpenBSD.
Iʼm amused by BSDs in general. Iʼd really like to switch (and I probably will). OpenBSD is especially good in my eyes for some reason.
Yet, I use Linux, specifically Fedora and CentOS.
On my desktop I use Fedora, with GNOME as my desktop environment. I use the fish shell, and a lot of fancy stuff. I even have a bunch of games installed that I use pretty irregularly.
On my servers I run CentOS (although we plan moving to CoreOS on some of them). Itʼs more stable, and has everything we need, most importantly security patches).
I voted Windows, but let me explain.
My favorite is actually BeOS, but sadly even with the relaunch that is Haiku it's still not practical for day to day use... but it really is what an OS SHOULD BE from a development perspective. If you've ever watched it on a proper BeBox or even P3 era hardware, the performance and behavior of it -- hell just watching it boot -- is truly jaw-dropping. There's a reason I still have it on a 1ghz P3 Laptop as the primary OS as at that level of 'tech it runs circles around Win9x or Linux.
But I'm an OS Whore... when it comes to OS my workstation is the town bicycle; every OS has had a ride.
My primary use OS still remains Winblows; whilst yes, it has problems -- unreliable updates forcing endless pointless reboots, pointless UI changes from version to version, Microshaft's continued attempts to drive themselves out of the market they have dominance of in flat out desperation at trying to break into the mobile market -- the advantages of the wider software base, better quality font rendering, multiple-display support that "just works", makes it my go-to for a workstation or media center. That said I would NEVER trust it as a server OS.
Most of my servers run Linsux, with the exceptions being freeBSD; and honestly on the next "refresh" I'm moving those to Debian. When it comes to doing anything from the shell that requires low entry cost and high reliability, Linux wins hands down. That said it is USELESS as a desktop OS to me for the lack of proper video support, lack of proper audio support, lack of a decent sound API, and the dead albatross hung about its neck that is the X11 legacy. For anything GUI related it remains a half-assed poorly implemented tinkertoy that in many ways is STILL playing catch-up to Windows 3.1 -- regardless of which window manager you install. My biggest complaint though for using it as a "daily driver" is the font quality -- or more specifically THE UTTER AND COMPLETE LACK OF IT! Freetype is annoyingly useless until you get up past 150dpi on your displays for the simple fact that it kerns text like a sweetly retarded rhesus monkey hopped up on meth. It cannot even manage to render the same word in the same font at the same size the same way twice on the same page -- see the 'dancing i' scenario. Add in the lack of visual queues about things like "hey there's a program loading" that can result in ending up opening five or six copies of the same app because you go "did it acknowledge that I clicked?" and dearth of what I would consider useful desktop applications, and it just isn't my first choice for desktop OS, nor does it EVER look like it will be... and yes I've tried enough different distro's to say that with confidence; your magical 'flavor of the week' isn't going to change that opinion.
Which is another problem with Linux, the endless forks and different distro choices while one of its strengths, is also a weakness since you go from a Debian based to a Red Hat based, it's like going "I should be ok in China, I know Japanese."
Multiple display support being Linsux's real shortcoming; I still remember *nix-heads actually bragging like 8 or 9 years ago how with twinview or compiz "Yeah, using Linux I can run two displays at once, try that with Windows" to which I typically responded "you ignorant twaddle, I've been running THREE displays or MORE under Windows since 1996! OFTEN with mis-matched display adapter brands. Lands sake I've been running two displays since 1983!" -- and Linux is STILL utterly incompetent at doing it where you STILL end up 90%+ of the time having to screw around with your .conf file regardless of what "easy front end" they CLAIM to give you.
OSuX on the other hand I have few kind words for since it is utterly unsuited for most tasks any grander than "I cans haz teh intarwebs?" I have ALWAYS found Macs to be counterintuitive and painfully obtuse in "design". They reek of "false simplicity" where they are often so dumbed down, you can no longer even accomplish any task you have set off to do on the platform. The Dock is crap compared to Windows' taskbar. Expose is useless garbage since when you have five editor sessions open how the *** are you supposed to tell their thumbnails apart?!? The uselessly blurry "everything has to be bold" fonts are even worse than Linsux on the legibility scale, and in general if there's a more difficult way of doing things, Apple seems determined to do it that way -- and then have the balls to charge you two to ten times as much for the 'experience'.
There are only TWO nice things I can say about OSuX and Mac's in general.
First is that they are one of the few OS to get software installation and de-installation RIGHT. The app goes in a glorified tarball. To install it you just copy that file... to de-install you delete it. DONE.
Second is that they ALL have working ASIO audio "out of the box" meaning that for professional audio they are the best choice IF you can find professional grade hardware that's supported. If you work with audio (recording, midi softsynths, and so forth) low latency audio is a must-have and Microsoft has been telling us on the software front to go f*** ourselves ever since Vista dropped on that. Even when ASIO is 'supported' on Winblows using cards from Creative or Asus, it takes several seconds to configure and often disables all other system audio in the process; at which point you might as well use a cheap card and ASIO4ALL.
But that's the rub; all the good internal hardware is Windows only on driver support, and crApple has gone from putting professional quality audio hardware in their devices to using the same cheap-ass crap everyone else does. This means more often than not your only real choice is external USB (or firewire if you can find it) devices resulting in not just cable-hell, but also introducing higher latency.
... and if working with audio in realtime, latency is the enemy. There's a reason folks working in professional audio are now snatching up the old G5 and early Core 2 towers and telling modern iMacs and the Mac Pro trashcan to sod off; the same way crApple is telling such professionals to do the same. Shades of the musicians who held onto their Atari ST's for three decades.
In general I've always disliked Apple. Their hardware quality has ALWAYS been garbage -- no matter how many mouth-breathing halfwits praise them on that front -- making even Packard Hell's look good; they have duplicitous and deceitful business practices that if ANY other company tried you'd have heard it cried from the rooftops, the fans of their products are outright cultish, and worst of all their rewriting of computer history and their ALLEGED importance in it -- particularly with the crApple II -- is outright criminal. That last part is painfully apparent if you were ACTUALLY using microcomputers in the late '70's and early '80's. You want influential designs that actual people actually had, the Apple II wasn't it. Normal people -- even die hard geeks -- didn't own or even have access to Apple's! For all intents and purposes from sales, influence on the industry, and hands-on actually using one the Apple was an also-ran LAST FREAKING PLACE compared to the TRS-80's, Atari's, Sinclairs, and Commodore's. In the first DECADE of them milking the Apple II design with ZERO legitimate improvements for every last penny they barely reached sales figures equal to what the TRS-80 Model 1 did in its first two years... but by cozying up to institutionalized education and throwing propaganda bullshit at EVERYONE, they've over-inflated their reputation and rewritten popular history.
Simply put, Apple are sleazy disingenuous scam artist snake-oil peddlers with a cult-like following. When people talk about their quality, ease of use, or any other praise they put on said products, I genuinely have ZERO HUFFING CLUE WHAT THE ***** PEOPLE ARE TALKING ABOUT!
... and I even worked as a Apple Certified Technician in the G3 and early G4 era. They are GARBAGE. Rinky cheaply made proprietary designs built entirely for vendor lock-in.
In any case when it comes to OS the bottom line? They all suck in different ways, and they all have their own strengths. I've never found any single OS that was suited for every job or even capable of it, and trying to choose any one for that job is a fools errand.
All three equally well. I can script things for automation easier on Linux and Mac. But I can program in just about any language I know in any of them. For me, it comes down to navigating quickly. I'd have to rate it this way:
Programming: Any
Scripting for automation: Linux or Mac
Navigating: Windows (why Ctrl-C and Ctrl-V don't work on Linux is beyond me, and I get mixed up with Mac's keyboard since I'm so used to a PC keyboard).
My primary computer is Windows. My second computer is Kali Linux. My Mac Mini circa 2009 is up in a box in my closet and I only pull it out when I get the desire to do a little iOS coding. Upgraded it last year to 8GB memory, but it can't get any OS updates anymore. It's obsolete, though it works fine. Macs are too expensive to replace often.
The only reason I have windows on my other laptop is coz I play games at times... That is the only thing it is good for...
I don't know if I love Windows so much as I love the Microsoft Surface line of computers. The touchscreen, pen, and portability are amazing.
Whatever runs bash will work for me. I pick OSX only for maximum compatibility with other people I work with (eg. designers who use Sketch).
Admittedly I've never run Linux as my primary machine, only ever used it as an environment.
So the funny thing is, I end up saying Windows because for my job as a Windows malware analyst, I've had to learn Windows internals more than most other programmers out there ever have to so at this point, it's like "why the hell not?" I'm not a MS fanboy, but rather, I just know it so well and I am very comfortable doing everything in it, and I know its weaknesses, its strengths, etc... It's a deeper thing than just "what do I prefer?" On top of that, I've actually used Windows the most in my past too.
I used to think Linux was more versatile and could "do more" but frankly, it's not really true. I could come up with anything anyone could do in Linux on Windows in some way, shape, or form, at least application-wise. I think Linux is a fantastic operating system and I love the manpages and the connection with C programming that it has as well... But it has its annoyances and problems just as any other OS and I don't believe on placing it on a pedestal above the rest like some devs do.
That said, What I DO like about Linux is that it's open-source so you can see exactly what the OS is doing if you desire.... But counter-argument, that's not a concern for a reverse engineer like me whether or not the source-code is available ;)
I have to do with all 3. Especially for coding I use primarily Linux (Windows only if I have to) and at Home on Mac.
Todd
Software Security TechLead
Ricardo Arvizu
UGH ITS CLOSED I WAS GONNA VOTE WINDOWS