POSIX enough that tools and environments work pretty well without a mountain of hacks and workarounds (e.g. Cygwin).
Mac enough that the user experience is coherent and consistent across the overwhelming majority of applications. (e.g. drag n drop, key bindings, media interop, etc.)
Popular enough to have native MS Office in orgs where that's still a hard requirement.
I tried to force myself to go full Linux by swapping out my Macbook Air for an X1 Carbon Gen 3 running KDE Plasma 5. The environment was nice and customizable and I was able to get pretty comfortable with it, but the instant I wasn't using a qt5 & KDE 5 frameworks application, the user experience fell apart. Couldn't set my key bindings the way I like in GTK apps because the GTK/GNOME teams apparently gave up entirely on accels files and key-themes. Media interop was pretty much non-existent, and there were lots of annoying little bugs (e.g. resizing a window would drop its focus leaving in a context where there was no active window and I'd have to click back in it.)
I still use Kubuntu 15.10 on a 12-core Dell T5500 w/ 48GB RAM for running larger distributed systems simulations/tests, and it seems about a hundred times more usable than the Windows 7 machine my job originally provided, but when I want to move fluidly between development, making arch diagrams, writing docs, or creating conference decks I can't escape how much better the complete experience is on my Macbook.
Also, LibreOffice Impress somehow managed to make a UX more bewildering, broken, and obtuse than PowerPoint, which I'd previously thought to be impossible. Viva la Keynote!
Maybe something was wrong with me that I just didn't get it. I just didn't understand just how bad it was to use Windows as an engineer (and like it) and not have one iota of interest in becoming a vim guru (while still using it as needed) while rejecting graphical code editors and IDE's. So, yeah, even with over 30 years in computing and engineering I sometimes thought I was a little nuts for note getting it.
That's until this year, when a contract we won gave me the opportunity to spend a non-trivial amount of time (12 to 16 hour days) inside one of the most highly regarded technology companies in the world. What I see is thousands of engineers doing amazing work and, interestingly enough, every desk has a Windows machine on it. I see IDE's everywhere and not a hint of vim. I see Linux everywhere running on virtual machines and no problems at all. I also see all kinds of other applications and the amazing way the Windows ecosystem just absolutely hums when setup and managed professionally. Not a Mac in sight. Well, actually, just a handful, out of thousands of PC's (I'm guessing >30,000). What's also interesting is I have never heard a single engineer complain or worry about anything Windows or Linux. Ever. Far more important stuff to focus on.
I don't know what I can conclude from this experience other than, yeah, it works like a dream when setup correctly. In fact, some of what I've seen has caused me to rethink some of our internal setup. The other realization is that the OS largely becomes irrelevant in the context of an organization. What is important is how the web of computers, users and applications are setup and configured in order to create a larger tool-set with which to run a business. I've seen how a very large Windows deployment becomes largely transparent to an organization to the point where everyone can focus on the job at hand. It's awesome.
I think most of what you're seeing comes down to this: Windows works great if you have a healthy budget, a high-quality IT team and, critically, a strong sense of mission about making users productive.
Unfortunately, the average Windows user is lucky to have one of those three be true. The normal experience is indifference/incompetence, being forced to use enterprise software which has been in development for decades without once having a usability audit, arbitrary impediments being excused as security requirements, etc. In many cases, using a Mac or Linux box was popular because it was the de facto way to opt-out from the centralized muddle and, later, the rise of iOS meant that those IT departments were told to make their systems work with the CEO's new pride and joy rather than trying to customize it into uselessness.
any reason not to name the company? I'm trying to think of a technology company where Windows (and not Mac/Linux) dominate engineering workstations and failing.
There is no argument about the fact that OS X / Windows are much easier to use by people who start their jurney. However at some point cons are simply overtaking all the pros.
Although I disagree with some other commenters that Linux is hard to use on laptops (linux went through long way - "normal" people can enjoy it just like pros). I also do not agree comments about sharp look or battery life - I personally use Samsung Ativ 9 and find it way way more aesthetic than mac book. No problem setting up Arch on it. No waste of time to make things working.
And none of my devs is using OS X. They went through long way themselves and probably know better than me. My observation is that Macs are much more popular in US so since I'm based in London my view may be biased.
Adding to that, I find Arch to be so clean and minimalist and more importantly unsurprising. Because of its rolling release cycle, I never have to plan an upgrade which always stressed me out with Fedora and Ubuntu.
Regarding hardware support, I'm running Arch on a mid 2015 manufactured Lenovo X250 and everything works out of the box and I get a solid 8 hours battery life out of it.
P.S. Not to mention, running Emerge on Gentoo with -j9 lands me at a battery life of less than half an hour :P
While Linux Distros like Ubuntu make it really easy to set up a developer system (with localhost web, languages and database) it is even easier on OSX via MAMP: install MAMP, configure with a GUI, ready to roll.. Linux you might be tweaking some config files to get the optimal setup.
On Linux you are partially a dev-op not only working on your code but also learning and tweaking your OS, services, etc. for one reason or another.
Another factor is there are some shinier tools on Macs, (i.e. the Adobe lineup, and a easily installed Sublime Editor) And many that went to learning institutions will be comfortable more with Dreamweaver/Photoshop/Illustrator than Eclipse/GIMP/Inkscape.
I took the Linux route, even though I already owned a Mac, I felt on Linux I was closer to the metal where Mac OSX had too many safety rails (both for the user and many publisher's safety)
If there are parts of OS X that you don't like, fine, post about those, specifically.
Adobe products run fine on Windows, in fact Premiere runs better on Windows than Mac. But the parent was comparing Macs to Linux, and Adobe does not run on Linux at all.
The linux driver issues were much more severe when running linux on a laptop (power management, CPU C-states, etc). I need dependable wifi, sound, video and other driver updates... I got absolutely tired of wondering wondering if X, network, and/or sound was going to work after each and every minor update.
Apple was/is the only vendor shipping a "working" system in laptop form for a reasonable price.
Food for thought.
*I've seen poor reviews of System76s stuff.
- Trackpad and MagicMouse are generally well above the mainstream.
- Good iOS interoperability.
- Excellent screen, battery life, weight and finish.
- Most unix dev tools/apps run well. Homebrew.
- Aesthetics. Yes, it counts.
With Linux, there isn't a consensus laptop model that everyone will request. One ends up with a lot of one off business cases, vendors, service contracts, etc.
With Mac, you have a consistent upgrade cycle, one service contact, and no fragmentation of OS distribution usage, etc.
TLDR; It's easier to say "I want a macbook pro w/ cinema display..." and "we hired another developer, please re-order a mac dev setup", than any similar Linux setup.
My Mac devs make work around in our code (geared towards Debian servers) so it runs in MAMP. Linux all the way through is a win.
As far as having to edit config files to make things work: I think it's good to know what's under the hood.
We get recent CS grads who know very little about how computers work. Linux might force you to learn the fundamentals but, I argue that is a good thing.
And, my Gentoo desktop (primary dev box) has been happy for a decade - through upgrades to hardware and software. Cheap & stable. What's not to love?
And it's reasonably enough unix-y (and modern if you use macports to install current versions of core tools) to allow daily work on OS X instead of Linux.
Prior to Ubuntu, this was a no-brainer, setting up things like a wireless adapter could be a trial. I run Ubuntu on a System76 laptop and have been happy with it. I like being able to get the source for everything I use and be able to patch it.
So if you want to test on OS X (including Safari) then you need at least one Mac.
Sharing a single Mac for testing could be enough, but given a team of more than a few devs and it may become a bottleneck.
You can run Windows and Linux VMs on a Mac - without breaching any EULAs.
For web devs who care about Safari, Macs become almost mandatory.
Note, I do not own or develop on a Mac. I primarily work on a desktop simulation software written in Java. I found the Mac love professed by other devs I know somewhat bewildering for a long time. I was only when I dabbled in some web development with a Rails app that I realised how much pain came from browser differences across platforms. Now the strong preference for Macs made more sense.
Webcam drivers also broke when apple switched from a USB Webcam implementation to pci or something.
Power consumption on osx is probably a half or third of 14.04 LTS.
I founded a company and need MS Office (unfortuantely), Fusion 360 for CAD work (FreeCAD didn't quite cut it) and once things got rolling the number of Skype calls picked up.
I still dual boot and prefer Ubuntu, but now I am 90+% in osx.
Before this computer and startup, I had been using Ubuntu for 6 years and loved it. Looking forward to going back one day, but for a while, I'm going to be on osx.
I switched to Linux(redhat and then ubuntu) for the next 8 years and loved vim and programming tools that linux had to offer. The resource utilization was never a blocker. The frustrating part was wireless drivers and machine hanging up because of them.
I recently shifted to OSX and installed iTerm/vim and all that. There have been no issues with wireless hardware and resource utilization. However, setting up production-like environment, which runs on Linux is a huge pain. Running a dual-boot ubuntu is also not as seamless and there are quite a few display driver issues. My take:
- If you have just started programming, start with Linux (if you haven't fought enough to compile drivers for your machine, you are one bit less of a real programmer)
- If you are doing a lot on the server side which largely is Linux driven, then you better use Linux to understand systems and deployment.
- If you are using eclipse, then you better shift to OSX because no other hardware-os combo at that price can let you code in peace.
And damn, the hardware is just nice. If I could run Fedora on a MacBook Pro, that'd be my ideal setup. Or if OS X wasn't so terrible at customization -- the number of sketchy hacks I've had to install to get my setup how I like it is just depressing.
- least amount of hassle, 95% it works - very good piece of hardware - great number of OS-X only tools
expensive, but it's the tool of my craft so I'm willing to pay for it
Most dev things work exactly the same as on linux.
You can use photoshop