The desktop and the developer
mjg59.dreamwidth.org
mjg59.dreamwidth.org
I know that a lot of people disagree with me because I see developers with macbooks all the time, but imo OS X is not a good environment for hackers on a purely technical level (ignoring the issues of proprietary software).
Yes.
Linux is insanely better for development. But OSX is just passable enough that the form-factor of an Apple laptop wins out and I can work. I don't want to go back to using two computers and OSX is _much_ better at everyday non-developer stuff than any Linux I've ever used so I make do with bad package managers and random compilation issues.
Pray god that I never have to wipe my hard drive though. Getting all the random libraries and whatnot that I've accumulated over the years would be a pain in the arse. (I've been dragging the same backups forward ever since I got my first mac)
PS: do start using Oh-My-Zsh. Your life will be better.
Something there doesn't sound right (and brings up questions about how do you even manage so many random libraries and whatnot).
Dependency and package management isn't that difficult and when I wipe my hdd/ssd it usually takes me some 30 minutes to get my generic environment bootstrapped and up to date (with a mixture of shell scripts and brew install `my-package-list.txt`). After that, each project takes few minutes to download all deps/libs with some dependency management tool.
Just the same way I would imagine that you've got your oh-my-zsh config version controlled (speaking of oh-my-zsh, I'd like to also mention prezto[0]!)
Because something always breaks and then you are in a world of pain as in this XKCD about setting up dual-booting with BSD http://xkcd.com/349/
Now I destroy and recreate as often as feasible. Never go more than a 9 months w/o a rebuild.
No, I like bash (or fish sometimes) with my own personal configuration that I fully understand. If I were to switch to zsh, I would just use zsh, and not a giant bundle of stuff that someone else thinks I need.
If I'm doing excessive amounts of stuff in the shell, I'm doing something wrong.
You will have to, and sooner than you think. Hard drives do not last forever.
That's why instead of hoping to never reinstall an OS again, i decided to embrace OS installation and do it often, from scratch. This means:
- Reducing tweaks to the only necessary ones. - Keeping a "how to install" text file in bitbucket. - Having my home folder under git.
To be honest, everytime I install a new Ubuntu a cry a little, because they are going the wrong way. But I still reinstall regularly (every 6 months) and keep my "how to install" file up to date, so I only have to copy paste some commands and follow some step mechanically.
… really.
Having said that, I need a terminal (iTerm2), a browser, and a packet manager (homebrew), and I'm happy. I assume build issues would happen on Linux too, and they would probably be harder to resolve (more versions of the OS).
This allows developers to experiment with different paradigms with regards to the GUI, see for example the popularity of tiling WMs on Linux. (i3 has my preference, others swear by xmonad).
I know it is possible to change window managers for Windows and OSX as well but the experience is just not the same.
I used to love KDE, then they messed it up with KDE 4. Moved to Ubuntu / Gnome. Then Ubuntu screwed it up when they made it all Unity based. Screw that, I was happy working the way I was without to much shiny. Now using XFCE, and its refreshingly simple.
People make a big deal out of tmux's split screens, but my workflow is much more flexible with xmonad and GNU screen (with the caveat that it requires more upfront).
I switched over to XFCE for a while, until finally settling on i3. I'm perfectly happy with i3, and even if KDE pulled their heads out of their butts, I doubt I would go back.
That's a fairly large assumption to make based on your admitted lack of experience.
There's "brew cask" for that! (http://caskroom.io/)
Unfortunately as a piece of hardware it seems to me virtually unrivalled, the latest internal components are available to new machines promptly, they have great displays with loads of real estate, long battery life, very good manufacturer support and the 13" is a superb, thin form factor for travelling with.
I run a cluster of Linux VMs on it using vagrant so it's just my browser, IDE and compiler to worry about (which being a Java dev isn't the big deal I'm sure GCC is). But I sorely long for a Debian based Linux desktop and package manager on the host. Every new macbook I get I try and install Linux and every time it's unfathomably painful, even when it works the experience is so poor I'm forced to abandon it.
But what other mobile kit is out there, built to the same standards?
- Are you claiming that the specs match a 13" MacBook? If so, you must realize that it's possible to have a poor experience even with the same technical specs.
- I haven't heard good things about Lenovo's non-ThinkPad laptops. Has this changed recently? Do you have something (a review perhaps) to backup the idea that anyone should seriously entertain this laptop as a legitimate choice?
*based on the context of this thread, I should mention that while he is a technical person, he runs Windows and does not attempt to run linux or anything else natively.
Yes, I use it daily. There are a few issues but overall it's awesome:
1) The wifi driver is fairly new and hasn't been ported to BSD yet so you must use Linux (most want to anyways).
2) HiDPI support is not great among the various DEs, but Gnome 3 and Unity are both pretty good. Some applications are not so great though, Chrome in particular.
3) This computer has a touchscreen and that works at least in Gnome 3 but there's nothing like the Windows 8 metro interface on linux. So you kind of lose that really nice feature.
> Are you claiming that the specs match a 13" MacBook?
Perhaps not the brand new Macbooks but the ones that were its peer, yes.
> I haven't heard good things about Lenovo's non-ThinkPad laptops. Has this changed recently? Do you have something (a review perhaps) to backup the idea that anyone should seriously entertain this laptop as a legitimate choice?
Lenovo is a big company, they release everything from cheapy laptops to high-end Thinkpads. This is their Ultrabook (Thinkpads are not ultrabooks) and those are generally high quality, this one is as well.
It was the first lenovo I owned, as it nears 4 years of usage, I'm only now starting to look at replacements, and I think I could definitely get away with using this for another few years.
I spent a lot of time fighting the proprietary thing. It's a noble effort, but I realized after years of sub-standard drivers, laptops that don't turn on when you open them, cpu fans buzzing out of control, etc, etc, I'd rather spend my time doing things instead of screwing with things.
Linux is great, I love it on the server and pretty much use it exclusively there. But I haven't seen any laptop manufacturer come close to building any laptop that's close to a Mac laptop. When you start off building based on cost vs. based on function & product, then you're always building something sub-standard. It may seem like indulgence, but no one makes unibody laptops but Apple. No one can.
I spend my days working on a beautiful machine that functions how I expect. I fiddle with very little, don't have to worry about upgrading or tearing anything apart and just focus on getting the things done. You can do this on Linux too for sure, but I feel like for me, the Linux desktop on crappy hardware is not fun or satisfying.
I have a Retina MBPro with 16GB of ram (soldered) and I couldn't be happier. In a few years when I want a laptop with 32gb ram, I'll give this one to a friend or family member and buy another one.
You left in '04, this nonsense ended in '06, '07. Partly because no one is really changing the hardware much, partly because we have first class support from Intel now.
The trick is that it has very well supported Intel components. As a matter of fact, Linus used this laptop for some time.
I moved away from Windows/Linux 6 years ago, not sure how things have changed, but I have no intention on going back to that.
What you will find is a lot of people repeating the claim about Apple hardware and the OS. A belief based it seems on one fact - they are happy with their Mac and haven't used anything else for ages, so how can other computers possibly be as good.
We know also that the glowing Apple logo proudly displayed by too many DJs, speakers at conferences, and certain movies and TV shows, is an effective marketing campaign. Ever-present, hitching a free ride on whatever is taking place on stage. This matters, it's not like a Marshall logo on speaker stacks, it's more prominent, center stage, often the only light source in frame.
I wish more presenters and performers opted out of the glowing marketing campaigns of the equipment they use. The brand of your equipment is not the reason why you're up there presenting.
This. It looks like everyone is happy to promote the Apple brand on top of themselves. For free.
Even for the clothes, the only logo I occasionally have printed on my clothes is the logo of my employer on a clothes provided by them for free. That much advertising is acceptable for me.
Actually, same goes for macs. I always find it funny that in TV shows the logo is covered up even though everyone can clearly see they're using a mac.
But, if I'm presenting something computer related to an audience interesting in computer related stuff, it's perfectly reasonable not to show any unpaid advertising related to computers. I don't want that anyone in the audience get an impression that I recommend any specific laptop brand.
Covering up a car's logo with a sticker is obviously not an option, so personally I would avoid those big TOYOTA cars.
Regular car logos aren't so greedy for attention. They don't glow at night, or cover the entire rear panel of the car.
I'm quite surprised that so many people in this industry, and DJs at gigs are happy for the logo to sit there glowing all night on stage. I don't get it, Apple isn't sponsoring your talk or performance.
I guess I'm too optimistic about people caring about keeping a good distance between marketing, capitalism and the expression of ideas and art. To me, those things should remain completely separate.
I find the logo and "sameness" rather embarrassing, but it seems to be the only game in town. Please do link me to a $1200 non-Mac laptop with a high-res 15" screen, thin form factor, and nice trackpad.
The cheapest high-res/HiDPI/Retina 15" MacBook costs $1999, not $1200. The baseline 13" rMBP costs $1199 after the education discount though[1].
[1] By the by, if you order from the Apple Online Store in the US, you can get the student discount no matter what. There's no verification of any kind (like to possession of a .edu address and what not): http://store.apple.com/us-hed
Edit to add: My point is really not about the price but that taking away the "brand status" as a factor or even making it a confounding factor, Mac laptops completely own the "nice-for-user hardware" space.
I'd like to (perhaps) get the Dell UP2414Q monitor, which is Retina-esque monitor (3840x2160 -- double of 1920x1080), and the Late 2013 15" rMBP is the only Apple laptop that can use the monitor in Retina mode at 60Hz.
Also, I've heard quite the opposite with regard to MacBook prices -- they stay up, while the prices of all other laptops drop significantly. For example, a high-end Late 2008 MBP still sells for nearly a thousand dollars on eBay, whereas a ThinkPad X200 will cost you only around $100 . As a side, you can squeeze 7-8 hours of battery life out of the ThinkPad X200 (running Arch).
I guess you're right that PCs retain their value even worse, but even $2000 to $1300 in a bit more than a year seems like a good deal.
A bar graph comparing failure rates among manufacturers appears on page 6. Asus and Toshiba represent the top tier, but Apple's better than average and not far behind them.
That said, I think much of the "unrivaled quality" that many perceive in Macs has less to do with failure rates and more to do with the details - MagSafe power adapters, fantastic trackpads, the general lack of crapware; all these details come together to give an overall impression of a more put-together piece of electronics. This is coming from someone whose first act upon firing up a brand-new Mac is to stick a copy of Windows on it. (Nuking the price advantage I'd otherwise be getting from going with Macs in the process.)
The CF-53 features a hardware on/off wireless switch, magnesium alloy casing that you can jump on, port protectors that fight dust and debris, and a keyboard that is to die for. The tactile feedback on the keyboard is absolutely incredible. It is the best laptop keyboard man has ever devised.
I hear it all the time, that Macs are the highest quality money can buy, but compared to what? Compared to cheap, plasticky crap run of the mill consumer Windows laptops from HP? Yea of course, get a Macbook there's no doubt.
But compared to a Panasonic? No way Jose, Panasonic makes better quality hardware that lasts longer and will take any abuse, which is why you'll read reviews by armed forces deployed in the ME use who recommend Toughbooks over competing ruggedized machines, including machines made by military contractors like General Dynamics.
You can spill water all over the 53, and drop it to the ground from three feet. Order one with built-in GOBI wireless card or GPS to make up for the bulk. Buying on ebay is commonly done to obtain toughbooks on the cheap. They last forever anyway, and they are often dumped on the market en masse once off of corporate and government leases. I would take my whatever-priced CF-53 with 10,450 operating hours over a brand new $1200 Macbook or brand new $1800 plasticky feeling consumer Windows PC without hesitation.
The only other laptop I'd consider buying for a mobile workstation is a CF-52, and only because it offers a higher resolution display and a higher performance GPU.
1: https://github.com/atweiden/pacstrapit
2: http://forum.notebookreview.com/panasonic/462491-robs-rant-r...
The only major gripe I have is with the apparently decreased battery life.
There are ways of extending battery life [1], but I'm usually plugged in when I work so I haven't played with it.
I also haven't tested Linux support for:
- GOBI
- GPS
- touchscreen
- multiple monitors
- printers, scanners, fax machines
as I don't use those things or they did not come with my particular CF-53 model.
Otherwise, the keyboard fn-buttons to adjust brightness, volume, etc work straight out of the box without any need for configuration. Wireless works better for me straight out of the box on Arch than on Windows, even taking into consideration the host of proprietary Panasonic wireless drivers [2]. Overall it's a very clean experience.
1: https://wiki.archlinux.org/index.php/TLP
2: http://www.panasonic.com/business/toughbook/computer-support...
Have you ever tested its solidity ? (i.e. made it fall?). Does the weight (2.7 kg) bother you in any way ?
The bulk definitely takes some getting used to, but the machine has become so indispensable to me that I'm willing to have it weigh me down. I really do consider it the Lamborghini of mobile workstations, very excessive in many ways, but once you've used it there's nothing anyone can say to you to shake your belief that it is the very best workstation computing experience in the world.
What the 53 compromises in form factor it more than makes up for in productivity, enjoyment and peace of mind. It's a clear level up from Macbooks and Thinkpads galore, form factor aside. And it runs Linux real g00t.
And that's the thing. When someone says "It's the highest quality|best|perfect laptop" I add a "...for me" to the end of the sentence mentally. :)
That seems a generation behind my rMBP; i7, 16GB 1600Mhz, 1TB, 3360x2100, 802.11ac. 0.95" height, 4.5lbs. Similar claimed battery life.
I haven't tried dropping mine from three feet or throwing water over it yet though...!
Lately, I started using a linux vps as my development environment and it's so much better. It's worth switching just for a good package management system.
Dell Precision, HP mobile workstations and rMBP -- the Mac is the cheapest. Now I regret it a bit as the cooling of rMBP is quite bad compared to the other two, but at least it's slim.
There are lots of people carrying Macs, but since the games industry is strongly Windows focused, those Macs are actually running Windows on them.
I don't consider OS X to be a development environment for serious development. I do consider Linux and Windows to be real dev tools.
You are indirectly saying that people doing development on OSX are not 'serious developers' or at least are not doing 'serious development.'
[ What is the difference between 'serious development' and regular development anyways? I'm pretty sure that Apple employees aren't developing iOS and OSX on Windows or Linux. Do you not consider systems-level (building an operating system) development to be 'serious'? ]
Where I work, it's a 50/40/10% split between Windows, OS X and Linux as our DE's, though most of us run a Linux VM for the development server to run on. Makes life easier that way, and with Vagrant we're all running the exact same environment, despite differing opinions on how to do things!
If we had to target UNIX systems, the development was done via XWindows or telnet/ssh to common build servers.
It's really easy to get caught up in the SV culture, but it's by no means the rule. There's millions of developers out there whose code is never made public, writing Java, .NET, C, C++, Ada, Fortran, and other languages that HN would regard as obscure, niche, or dead. They're consulting or working for small businesses, medium size businesses, enterprises, local, state, federal governments.
I don't know if most of them use Windows, but it's definitely a hugely substantial fraction. It's not a small minority.
When it comes to Apple's hardware/software combination, I'm sometimes surprised by how Linux compares really poorly in my experience. Weight and form factor aside, the trackpad on my Thinkpad is awful. Really god damned awful. And I wouldn't usually complain much about that, but the other fact is that the TrackPoint nipple is probably equally as bad in build quality and when you move the pointer a bit, it seems to get stuck and continues to move your pointer until you rub that nipple left or right. The sensitivity of the TrackPad however, is a disgrace, and the minimum jump seems to be something like 10 pixels, on a 12.5" screen. That's very choppy.
So: when I'm on my Macbook, I miss the trackpoint. When I'm on my Lenovo, I miss the Mac's multitouch trackpad, and a better trackpoint.
Software will improve the experience, but better hardware has to come with that, in general. When it comes down to it, the best quality you'll get out of your money will probably come from a Macbook (throwing in the form factor if it's to your taste, which adds points), so developers end up going for the better hardware, the better user experience, and hey, it happens to come with OSX, which without much effort has this really usable development environment, unix utilities, etc. Good enough, I'd say, given what the alternative usually is. And I still develop on Linux most of the time.
You can click, or emulate a double click with two fingers. No third button emulation that I have worked out (and no, using your other hand on the keyboard does not count). As far as I am concerned that is a big disadvantage not having the paste buffer functionality available for the track-pad.
Back in the day, IBM made some good hardware. The Trackpoint was one of the things they made that were cited as examples of good engineering. Specifically, it was designed not to do what you just described.
The other benefit of nubs was that not having a huge touch pad at the bottom of the laptop let them bring the keyboard much closer to the edge, where (like a regular keyboard) it is much more comfortable to type on. Since modern Thinkpads include the touchpad anyway, you have no choice but to hurt your wrists constantly for the sake of a device that (if you're like me) you completely disabled in the BIOS because it just got in the way.
BTW, having only ever used thinkpads with disabled trackpads (I agree they suck on thinkpads), how do people not touch these with their palms all the time by accident?
When OS X came out, Steve Jobs promised an OS that would cater to pro users as well as amateurs. He literally said so in one of his keynotes. But around 2006, Apple started focusing on the upcoming iPhone and downprioritized OS X development. Nowadays it's all about making OS X more and more like iOS. They no longer care about pro users.
Case in point: If you're doing pentesting you need a machine that stays silent when connected to a network. With OS X you always have mDNSResponder blaring out. Prior to 10.6 you'd just solve this with a simple "launchctl unload" and be done with it. From 10.6 however, unicast DNS resolution was moved into mDNSResponder, so you need to keep it running or you lose the ability to resolve anything in the DNS. Of course it's possible to filter the multicast DNS announcements with pf, but it turns out that mDNSResponder will occasionally resolve various apple.com and Akamai addresses and that can't be disabled.
Same with IPv6 link-local addressing, it used to be possible to disable it completely, now that's no longer possible because they've dumbed down the UI. And when you use WiFi, OS X will regularly send 802.1X EAPOL messages out. That can't be disabled even with pf because pf doesn't filter on layer 2. Under these circumstances I find OS X to be unusable for pentesting.
And don't get me started on the laughable HFS filesystem and the non-existence of a package manager.
This is a very compelling narrative, but the set-up simply does not support the conclusion.
Making OSX more like iOS (sandboxing, for instance) is an incredibly welcome feature for pro users and newbs alike.
The other changes you point out are not related to the iOS-ification of the OS, and are not specifically "this isn't for pro users" sorts of changes as much as they are rearchitectures of the subsystems... it doesn't seem related to some "ignore the pro users" push.
I suggest you buy a usb network interface and pass the device through to a VM (Vagrant+VirtualBox is great for this) for your pentesting - then you get the best of both worlds.
networksetup -setv6off 'Ethernet'
networksetup -setv6off 'Wi-Fi'- do you work on graphic files ? will you use Photoshop ?
- how do you communicate with your clients/peers ? (would you just refuse a MSWord or Excel doc for instance, if it didn't render properly ?)
- do you have to deal with specific hardware ? (for instance, Blackberry phones)
- do you have to debug websites or other apps on iOS devices, anything mac related ?
All of the above seem non trivial, while potentially critical depending on what you do. I think it would be interesting to know where you are on the spectrum.
All the things I'd learned to work-around, suddenly became non-issues, and all of a sudden I had a real window manager again.
You are absolutely correct when you say that everything is 'not-quite-right': package managers are absent by default; Linux tools are sometimes hackily modified to work on Mac; additional tools have to be manually downloaded.
It's possible and the interface is generally fairly slick but everything feels like a hacky solution to a problem that is just not there with Linux.
It is not, by definition, an "optimal for task" desktop.
I've used OS X off and on for much of the past decade. It's not a serious productivity platform.
To whom? If your customers are Mac users, it sure is.
I also don't like the way closing all the windows of an app doesn't necessarily quit the program. To close a program completely, you often have to press command-Q, or right click the app and quit it that way. I've used a mac at work for years, so I'm used to it now, but it still seems unintuitive and awkward.
Not to mention the poorly featured Finder and Terminal applications. Yes, you can install 3rd-party replacements, but the defaults are pretty woeful.
As for the UI, until Mavericks I think it was behind the last stable Gnome 2 release. Now it is ahead in some areas but still behind in others.
Finally, Ubuntu continually screwing up things like audio support or ruining areas of the UI (ironically to make them more like OS X) also helped me make the switch.
I think many commenters in this thread could benefit from taking a step back and remembering just how unimportant this arguing is. Just use what you like and don't put-down others for using what they like.
1. http://lesswrong.com/lw/dr/generalizing_from_one_example/
Although I also agree with "remembering just how unimportant this arguing is", I'll illustrate by providing a counterexample to the Fine Article's idea that OSX is "an aesthetically pleasing OS". My idea of an esthetically pleasing UI is one with text labels instead of icons, relatively direct access to all information and controls, and a lot less of the shiny accents, animations, forced mousing, and other decorative, annoying or obstructive junk.
I'd also like a laptop with the keyboard in front and the trackpad behind, but apparently I'm a freak or something.
http://oldcomputers.net/pics/ibm-thinkpad-750c.jpg
I wonder how feasible it would be to gut one of these things and update its internals (big fat battery and a small ARM SBC, maybe).
Like the Acer Aspire R7?
http://www.theverge.com/2013/5/31/4380132/acer-aspire-r7-rev...
If you're someone who has taken an interest in making Linux a popular choice as a desktop OS, this subject is critically important. It's only natural to assume that one could learn a lot about what it takes to make a Unix-based operating system popular among desktop users by observing the example of the only Unix-based operating system to have become popular on the desktop market. Figuring out how it is that OS X is able to attract developers despite its (presumably) inferior developer experience is a closely related question.
Genes... :-)
I've probably had 50 laptops over the last 20 years, and the only one I've had that approached the number of successful suspend resume cycles with Windows or Linux were Thinkpads, although even with Windows, there's a whole world of pathological resume behavior. Sometimes they'll just sit there, sometimes they never wake up. Sometimes you close it and then reopen it a second time and then it magically wakes up. The worst cases are when the video comes back but the sound doesn't, and you're faced with living without the sound for a while or enduring a reboot. I feel like this is the fundamental thing that a laptop is supposed to do and it is disheartening to have used these machines this long and to still have endless problems with it.
That being said, all I use the MBP for is to ssh into my Linux desktop machine (Debian), where my tools are. Occasionally people suggest to me that the linux distros are pretty good on the MBP, but I've had such a bad history with Linux on laptops and I'm getting to be an old fart now and I lack the enthusiasm for fiddling around with the machine for several weeks to get everything working right, so OSX is a (albeit outrageously expensive, at the treat of my employer) compromise :)
Hibernate will often take longer than a clean boot — because it has to read all allocated memory from storage into RAM.
Among Mac users, your comment is hard to understand, though. We don't have "suspend" or "hibernate" so we don't think about that. Want to relocate? You close the lid, no thought about it. Get to the new place? Open the lid, and your mac is operational instantaneously - literally as soon as the lid is fully open. Of course, the laptop was in power-save mode while you were relocating, but you don't think of that.
When I first got this machine, I also ordered the docking station with it so I could plug my monitor, mouse, headphones, and phone charging cable into that instead of the laptop. I can drop my machine into the docking station, and either open the lid (out-of-the-box, no-config multi-monitor display) or not and everything just ... works. It's amazing.
I don't have a dog in this OS fight but just wanted to throw that out there.
In Chrome you can set the default zoom for pages, but you will have tiny tabs.
Until you connect a non-HiDPI external display, where everything will still be scaled up by a hilariously huge factor of 2.
This is exactly what I'm referring to as High DPI support. Maybe it's not the solution you'd prefer but it is a solution. By contrast, Linux still has a lot of fit-and-finish issues with high-DPI, even in Gnome 3. I would believe that they're going about it in a better way on the backend, but the fact is OS X is the only one really delivering at the moment.
* Natural, responsive scrolling. After two-finger scrolling on OS X where it's so responsive that it's exactly like sliding paper over a table, nothing can really compare. Linux can't get to that point for a long time since it's limited to sending scroll wheel events.
* Palm and thumb detection that work like black magic. I have never once had palming issues on OS X or issues with resting my thumb on the pad and using other fingers to point, click and drag. I've spent days on end trying to tweak the Linux Synaptics drivers to work the same way with no luck.
I don't have a proof, but this doesn't seem to be the case for GTK3 apps. Scrolling in Evince (GNOME's PDF viewer) and Web is very responsive.
YMMV. I have had such issues.
Certainly you can't ignore the bandwagon effect. All the cool kids have MacBooks. I'm not saying that's why everyone owns one, but you can't discount it as a reason.
Also, the hardware is really nice. I know I'm making Stallman cringe when I say it, but Apple makes products that are enjoyable to use. And if you're going to use the Apple hardware, OS X is the path of least resistance.
Lastly, and the author does touch on this, OS X is nice because it can be used "both ways" - it has a pretty GUI, and it has keyboard shortcuts, programmability, and "Unixness" built in. I haven't come across a Linux/BSD desktop environment that I can use in my hacker's way, and my wife can use in her point-and-click way.
I believe that the inflection point for the beginning of Apple being cool was when they announced OS X, and the other inflection point was maybe around the iPhone 3GS.
Unfortunately, what could you use besides a Mac? An X1? They aren't that great. I wish for just one PC laptop that gets trackpad right. Just one!
For my part, I have always had a deeply-rooted and entirely irrational hatred of Apple products. OK, the retina screens are nice. Trackpads are usable - but I hate trackpads anyway and always carry a proper mouse around, so no win there. (What happened to those little joystick-type thingies that used to stick out of laptop keyboards, anyway? I liked them.)
But I'm just about old enough to have mostly owned and used desktop PCs. And those desktop PCs have all been custom builds. I'm typing this on a slightly ramshackle Lenovo laptop, which is obviously not a custom build - but I can take the back off it and fool around if I so choose. I've never used particularly outre specialist components or anything; but in some fundamentally irrational way, having, in principle, an absolute say so on what's inside my computer is important to me. Apple's entire business model is antithetical to that. And while I see plenty of satisfied Apple customers among my friends and family, I also see them forking out endless money to Apple support for trivial fixes because of it.
(And I won't be buying Lenovo again, because I do not expect my BIOS to be password protected, and not be provided with the password. :-) )
Are you referring to UEFI? If so, what do you mean about not being provided the password? Doesn't it either provide an interface to put your own keys or at least switch to legacy mode?
I thought it might just be the dodgy vendor I got it from, but my girlfriend ordered a Twist from the official Lenovo site, and has the same issue. Which, because she's in the brave new Win8 SecureBoot era, stops her from installing an OS she hates less than Win8.
Unless either of us are prepared to spend hours on tech support being passed around, anyways.
Shame, as the machines are nice. You can't beat a good keyboard... I'm all for being secure, but I would like it if my computer didn't presumptively consider me to be an attack vector.
For me, its all about unibody. Screen quality. Trackpad touch and feel. Keyboard comfort. The rMBP fits the bill for all of these things - I'm NOT content with OSX as an operating system, however, this is just something I put up with (and since I run my Linux dev environment in a VM, big deal anyway). I'm certainly not a typical Mac user - I spend 99% of the time in the terminal.
I've looked at the Google Pixel series, and some of those look like they come pretty close - except I have no desire to use a Google operating system, of course .. and they're just not available locally, like the rMBP's are. But if there were a manufacturer who puts together a machine that has the physical characteristics of the rMBP, I'd happily abandon Apple hardware in an instant.
So now I have Windows/Ubuntu on dualboot on PC and a Mac laptop. I feel like the Mac is basically the Unix I wanted, without the crappy window manager of Ubuntu. However, the single thing I've loved so far has not been a hardware or aesthetic manner, but rather how Mac opens windows as it boots up from where I left. I never even knew that was possible, but I feel like it has increased my productivity a lot.
I think shortly we will see the monopoly that Apple has on high end well designed laptops will come to an end.
The weight advantage of the Series 9 and the screen are nice, but battery life, keyboard and trackpad are way behind Apple's quality. My next laptop will come from Apple and i don't see any competitor coming close any time soon. Samsung will drop out of the laptop market in 2015 alltogether btw.
It's not even about Mac OS X vs GNU/Linux, I'm not using any desktop environment on my computers (no Gnome, KDE, XFCE, …), my graphical environment is composed of a minimal windows manager and a small taskbar. I don't need anything else. I just checked and I don't even have a graphical file browser installed on my laptop which I've been using it for several years now. I spend my time in terminals, Emacs, and my web browser.
I know that this is not the case of every person who's working with computers, but I also know quite a few people in my surroundings who use the same kind of environment (and to my knowledge we're all pretty pleased with our hardware), so I'm convinced that I'm not an exception either.
I see people who are very productive on Mac OS or Windows, know all the shortcuts, etc. yet when I use my MacBook or a Windows machine I feel disoriented. It's all a matter of being familiar with your tools; nothing really magical here.
The big advantage of tiling vms is that you always use the whole screen area without having to only use maximized windows. You can easily split the screen into several areas where you can put windows. Another advantage is that they are usually keyboard driven so that it is possible to launch, close and arrange windows without using the mouse.
The one I like best is wmii, which has a brilliant column system combined with tags instead of workspaces(i. e. a window can have several tags instead of only one workspace). Nowadays I use i3 since it is a bit more modern but so far I find that the usability is not quite as good.
It's strictly possible to do this in most non-tiling window managers. The key difference is that arranging windows with the keyboard is not just possible but significantly more practical.
What is the benefit of Unity for someone like me?
Speaking for Openbox (since it is what I use) the benefits are numerous: less lost space on screen (UI is customizable to the pixel simply by editing an XML file); extensive and customizable keyboard controls (again, just by editing a simple XML file) for managing windows (resizing, positioning, etc.) but also for launching applications and managing multimedia keys for instance; more lightweight in term of resources (not that important, but always nice); and being compliant with ICCCM and EWMH standards which allows extensive external scripting using tools like wmctrl.
the bit that surprised me though was this comment:
> The thing is that you no longer have to apologize or feel guilty for using an Apple doing linux work. In fact, not using Apple makes you look like an unenlightened fool and a cheapo that is unwilling to pay for decent tools. There is nothing sexy in using a linux desktop and plenty of social pressure for buying a mac.
do people really think that way? i mean, i have no problems with people using macs, but my perception is just the opposite - that they picked a mac because it was there, it worked and it was a convenient, utilitarian option. there's nothing particularly "enlightened" about it.
One of my hobbies on GNU/Linux systems, since the early days (1994) was to get GUI tooling for my work.
Most of them taken from the more mature UNIX systems, back then.
For me the CLI is only for quick and dirty operations file operations, or calling build tools. 90% of my time I live on the GUI.
Maybe, just maybe, different developers enjoy coding in different ways.
I suspect the majority of developers (outside of this few percent in the startup space) continue to use Linux and/or Windows. They just don't go around writing blog posts that start out by presenting opinions about usability of other OS's as fact.
I have been a Linux user from 1994 to 2007 (mostly Slackware, some Debian and CentOS later), Mac from 2007. I switched to OS X, because: (1) I don't want to mess with hardware and drivers anymore; (2) I don't want to update my whole operating system to update applications; (3) in my work environment people do use Microsoft Office et al.,; (4) the hardware is nice; and (5) I have nothing against Windows, but it is not a UNIX, so not for me.
If some of the advantages go away, I'd be happy to switch back to Linux.
This is huge. IMO, this is the purpose of an operating system. I want to install applications, I do not want to waste time installing new versions of my operating system.
The main focus of Linux distributions should be to make as many applications as possible available to the user and make them easily available.
That being said, Docker has changed this a bit for me, but most Linux distributions still fall flat on their faces when it comes to installing non-packaged applications. Sometimes I find myself having to download applications from websites, manually configure them or even compile software myself.
Basically, the file system hierarchy should had been versioned from the start:
/
programs
vim
7.1
7.2
7.3
Instead, you have a single 'vim' binary that gets overwritten if you try to install another version of vim (unless someone renamed the binary for you).The FHS is a disaster that every distribution tries to implement differently: https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard
It's never really taken off.
There are some popular linux distros out there that have rolling updates so you never have to reinstall the os.
All of the Ruby on Rails web developers switched to Macbooks at that time.
The author sees all of these people using OS X and wonders why they would pick Mac now over Linux now, but that's the wrong question. The reason that everyone is using Macbooks is because everyone picked Apple six years ago.
Notice that this thread is full of people who switched to OS X laptops in 2007, but they no longer see the competitive advantage and they're switching back to Linux.
Lenovo's between the two. My T520i isn't flyweight, but it does OK (the power supply is a brick though). I've eyed the Carbon but have passed on it to date.
There don't seem to be any other options comparable to a MacBook Pro for hardware. In particular, very, very few laptops that aren't enormous and heavy have a quad-core processor.
GPU switching is the one thing I haven't really tried yet. I've stuck with the Intel chip. I've read that people have had success with Bumblebee. In fairness, I've also had a MacBook Pro with Fedora 19 on it, and GPU switching didn't work there either.
Suspend/resume work without issue, but I haven't installed the proprietary NVIDIA drivers yet, and those have a tendency to mess up resume (at least it did on my MBP w/ Fedora 19).
I _imagine_ NVIDIA drivers + suspend/resume works just fine with Ubuntu. Any "non-free" drivers in Fedora are pretty iffy in my experience. Usually after installing the NVIDIA drivers from RPM Fusion GDM won't even start, or you have to edit the GRUB menu item to blacklist nouveau, or any number of things the package should theoretically take care of for you. I've not had that problem with Ubuntu (just other problems, like a UEFI install on say a MBP, something Fedora does flawlessly).
These are the kinds of reasons people just use Windows or OS X I guess.
On a vaguely related note, one aspect of Dells I've found particularly annoying is their implementation of the Trackpoint. While available as an option on some laptops, I found that the rubber used on the nub was harder, and far more irritating to my index finger, than that used on Thinkpads. It's almost comical that user satisfaction could come down to an issue such as this, but over the several months I was using a company-issued Dell, I found that to be a constant annoyance. I tried sanding down the bumps on top, substituting a spare Thinkpad nub (the bases are sized differently, it didn't fit), and a few other tricks. Ended up with blisters on my finger.
The 13" MBA weighs 2.96lb, the 11" (too small for my blood) 2.38: https://www.apple.com/macbook-air/specs.html
Lenovo's Carbon X1 is 3.09lb: https://www.lenovo.com/shop/americas/content/pdf/system_data...
Though here it's claimed "starting at 2.8 lb": http://shop.lenovo.com/us/en/laptops/thinkpad/x-series/x1-ca...
The Lenovo also sports a 14" display, your Dell a 15".
OS X and iOS users also need software that someone has to write.
Those Intel GPUs are a no-go.
OSX makes me happy. The apps are considered and cared for by their makers, largely I believe, because they get paid for their time and ingenuity.
Libre works great for APIs, not so much for Ape-y eyes :).
I would. Desktop Linux has many great features, like actual tiling WM, SOTA filesystems, cheap virtualization for development, or that all software is managed the same way, instead of the mess that is OS X and Windows where some software is managed using brew, some using packages, some take care of updates by itself, some doesn't, etc.
But to be fair, I realize that I'm the hardcore Linux user who still goes out of his way tweak every little detail with Compiz and ensure that my keyboard shortcuts are all explicitly created. If others are given the choice between Mac, Windows, and Linux, Mac is the most consistent experience with both hardware and software, and I can regrettably understand their choice. I don't mean to go on a rant about Macs, I just want to mention that I've recently been forced to do subject the author's article.
So it's very sad, really. :(
Since I don't need to run anything other than a bunch of terminals in the VM, I can use a lightweight DE that is lightening-fast and very light on resources. A few more tweaks, and you can make LXTerminal feel almost like a native Windows program.
Add a few Windows gizmos to that, like Dexpot for multiple desktops and crazy keyboard shortcuts. Now you've got a top-notch DE that no FOSS offering can rival so far (at least in my opinion).
Could you elaborate on this please? "can't" as in "it's too much work" or "can't" as in "impossible for some technical reason".
Similarly, I can't make my own rifle, or design my own airplane.
Having said that, I have migrated to Win7 (on a Lenovo T430 with a SSD) towards the end of last year. For a office workhorse, this setup is one of most productive setup I have used in years!
KDE 1-3 and Gnome 1 were a good desktop environment. I don't get why some devs prefer to rewrite good things. KDE 4 and Gnome 3 hurt the Linux desktop and users are searching for alternatives (http://en.wikipedia.org/wiki/KDE_4#Reception , http://en.wikipedia.org/wiki/GNOME_2#GNOME_3 )
Indeed - people want an alternative, not just a replication with a different license.
Right now I don't care about the Metro interface at all - 99% of the time, I only see it when I use the Start screen, which is fantastic and works much, much better than the old Start menu despite the loss of recent-document jump lists per app. But, I can see a huge potential in Metro.
Also anybody who works with designers is probably going to have to interact with .PSD files at some point and GIMP isn't always an adequate tool.
What's wrong with GitX-dev (rowanj fork)?
If I knew I could get a similar hardware with an open-source OS, I would switch in an instant. Last time I looked into Google laptops, they had drives too small to be useful for development without internet connectivity.
I really like Mac OS X, it does what I need and looks okay. Pretty much all the tools I use are available cross platform. If I where to replace it, it would be with one of the BSDs. I don't like Linux as much as I once did, I think it has become rather messy.
Virtual machines are now more easy to use than ever. Your host OS matters less and less.
Furthermore, Linux flavored OSes don't support the "secondary" applications we require that Macintoshes do - Microsoft Word/Excel, Photoshop...and working sound card drivers.
True. So when you decide what your host OS is what ultimately matters is _drivers_. On my desktop PC I almost always have a few Linux VMs open, and I develop on them. However, Windows as a host OS makes my AMD GPU run cool, it can resume/suspend perfectly, and so on. So for development, Windows as host with Linux guests is close to perfect (and you can version/snapshot/backup your VMs so you can just continue if you change machines).
It's not hard to imagine what something like this might look like. QubesOS[0] is doing interesting things in this space, although their concentration is clearly on security and security researchers rather than developers (and definitely not the average end-user).
Has this really been an issue in recent times? The last time I had serious sound card driver issues was trying to run Linux on an old Powerbook G4 back ~2006.
And that's where this lost my vote. I don't want my desktop to have built in awareness of my issue tracker. My desktop should have no concept of what an issue tracker even is. Simple tools that compose well to offer complex functionality in the Unix philosophy. Not monolithic design which tries to anticipate and integrate with my development workflow, because it will inevitably get my workflow wrong. I like having these tools as standalone applications, because that means it is very easy to switch from Jira to Redmine, or from Git to Mercurial, or from vim to IntelliJ. I want my desktop to know about serving, resizing, and refreshing windows. I want my web browser to know about rendering html. I do not want my display manager to crash because we upgraded the bugzilla version on our server.
I do have problems with OSX, but they are primarily the result of not having any decent package management system, and is a discussion for another day.
In my opinion it shows that most "innovation" in desktops over the last few years have actually been a step backwards.
Customability is enough when it comes to the dev environment: the default installed tools are not optimal, but installing a second, third set of tools with brew for instance is a no brainer, and keeping an linux VM handy solves most other needs. Having an optimize windown manager doesn't feel so crucial when adding physical screens solves most of the switching issues.
I really think OSX is the best logical choice to develop for the web or iPhone/android.
Edit: I work from home so mobility is not really crucial.
My primary machine is a 2013 MBA, and I always switch between IntelliJ, couple vmboxes, spotify, 5-10 Chrome tabs, Pages/Numbers, and Skype. Often, I also run VMWare with Windows. My MBA never makes a squeak, and the only time I feel underpowered is when I have to open all of this at once.
Your hardware runs circles around mine, and should not struggles with such a basic workload - I would look into potential problems on the OS level or start afresh.
For .NET projects, Windows dependecy is a clear one.
For JVM projects, thanks to the JVM portability, the operating system only matters in terms of whole infrastructure, but not really for the application itself.
So we are able to use all our GUI based tools, take the build artifacts and deploy it anywhere.
Thanks to the new BYOD policy, some guys moved to Mac OS X. But no one has GNU/Linux on their desktops, except on Virtual Box and VMWare instances.
We are all old enough to remember the days when GNU/Linux did not exist and quite comfortable in UNIX environments, however we don't feel like tweaking stuff any longer.
90% of what I do is in terminal and in a web browser. Sublime Text gets a lot of the rest. But I still want Photoshop/Lightroom, Keynote, etc.
I generally use local VMs (I find VMware Fusion to be better than e.g. VirtualBox), but also use MacPorts. I wish I could get 32-64GB in a Mac laptop, though.
OSX: "If you're developing on Mac OS X, it just works. Skip this step."
Ubuntu: the instructions run on for 59 lines including things like 'Use this format to add each vendor to the file: SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", MODE="0666", GROUP="plugdev" '
I guess if you use an non Ubuntu linux you kind of figure it out on your own. I quite like the OSX way. (http://developer.android.com/tools/device.html)
I can spin up a VM of Linux on anything, but I can't legally do the same with OS X without having the hardware.
I've had a very positive experience with Synaptics on Linux. 99% of the more "advanced" features that people are likely to care about (two-finger scroll, two- and three-finger tap, vertical/horizontal scroll margins, corner hot buttons, etc.) are fully supported and easily configured with a simple file, and there is even a GUI to do it for you.
https://wiki.archlinux.org/index.php/Touchpad_Synaptics#Adva...
>Linux's poorer multitouch handling is enough on its own to disrupt their workflow.
I never do any serious work on a multitouch device, so I can't speak to this. It's something I would never even think to worry about because it wouldn't affect my workflow.
>A combination of improved desktop polish and spending effort on optimising developer workflows
I'm not sold on this. "Polish" is completely subjective, but I think modern Linux desktops are quite polished. Take Mint Cinnamon, Netrunner, and Elementary for example. We've certainly come a long way since the era Gnome 2 and KDE 3. I imagine that's what a lot of non-Linux techies think of when they hear "Linux desktop".
As far as "developer workflow", I really don't think the author made a strong case as to how Apple wins in this category. Seems about as subjective as polish.
What I'd like to know is which platform more developers would use if prestige and peer pressure were completely removed from the equation.
Most importantly, there is a weird anti-Ubuntu sentiment around their efforts to build a better user experience that is making even less likely that developers are going to rally around Linux anytime soon.
Also the difference between the developer's desktop and the deployment machine may be significant even if both are Linux there might be differences between the libraries and utilities so using a Mac doesn't necessarily make it harder.
Use what you are comfortable with. Having used a Linux desktop for a while I've switched to OS X for the moment, I spend less time setting it up and trying alternative DE's. I also develop for iOS so I need it for the moment. I am glad Linux is there if OS X development direction doesn't suit me in future and I have Linux on my home server which is what I would use if I wanted a current GCC.
That's less of an issue these days, but the thing that keeps me on OSX now is the hardware. The new Lenovo units do look lovely, though.
"They use an Apple because they don't want to use different hardware for work and pleasure."
I'm not a coder, and I don't find the idea of a single machine for work and pleasure particularly appealing. Is there something about software developers that means they like to blur the line between home and work?
Most of the developers I know enjoy coding, and have side projects that involve coding. So code is a skill they use both for work and pleasure.
Is this true for most developers? What other developer behaviours and choices come from that overlap between what they do for work, and what they enjoy doing?
The desire to use the same machine for work/pleasure isn't so much about the machine as it is about the setup on the machine. I don't particularly like to spend the half day or so getting my development environment set up on a new machine. Having a laptop means I don't have to set up/maintain/sync multiple development environments and I can work from wherever I like. I use a mac because MBP/MBAs have been quality machines for a decade, the shell environment is close enough, and everything works without my having to mess with it. I actually prefer linux desktop and tiled window managers but using them would mean I'd have to mess with things I don't care about.
My personal laptop pre-dates my current position and it's MacBook Pro that's starting to get older. When my family and I went on vacation last year, I brought both laptops and did most of my work on my personal machine. Still, dragging around two laptops seemed so silly and the Dell has more than enough hard drive space for everything.
Even though I liked the Mac (and OSX), I decided to consolidate everything on the Dell. For me Linux is "good enough" and the hassle of trying to remember what resource is on what machine is mental overhead I just don't need. I sometimes think about buying a new personal laptop, maybe a new Mac, but the cost just doesn't seem worth it.
The power of modern hardware and lightweight VM-centric workflows (vagrant) has made it so that we can enjoy the Mac hardware and interface while working in a lightweight, no-compromises Linux environment.
With my MBP I can spin up a cluster of machines for a project, edit locally (via shared folders) in vim, emacs or IntelliJ, deploy/test on the VMs and turn them off again when I'm done. No need to even mess with much in Homebrew - the tools are all installed on the VMs using Linux package managers.
Somehow, the GNU/Linux desktop seems to always miss something in these 20 years of GNU/Linux, whereas Mac OS X and Windows are closer to the whole Amiga experience to GUI focused guys like myself.
For me I have found elementary os (linux based) to be a good step closer to perfect for me. ("Normal" alt-tab, menus follows windows (if they exist at all), etc.) All while being fast on less than stellar hardware and pleasing to my eyes.
(For people who love Mac: Don't even try. I can almost assure you'll find some color nuance, alignment issue etc. I'm serious: You guys see stuff like this, I can't even see all the colors.)
Adobe OS. Take the Linux kernel, systemd and command line tools. Put a great gui on top. With Creative Suite and Open Office. Steam for games. Be prescriptive with the hardware re drivers. No crapware/bloatware (though Adobe have been guilty of this). Give developers the ability to make money with apps/content via purchase, subscription or ads.
Even MS Windows let's you switch to focus-follow-mouse and use a piece of hardware with a track point.
But who makes a high quality ubuntu laptop? Just dell, and they lost me as a customer years ago. In terms of hardware, there absolutely is no other option for me. Which sucks, I want a good quality laptop, and i'm willing to pay for it.
Time goes and when was needed to buy another computer, I couldn't find any good reason to buy another mac. And a great reason to not use: it's not free (as in speech).
Nine years ago Paul Graham wrote about hackers returning to the Mac (http://paulgraham.com/mac.html), where he concluded that his dad, who had not taken Paul's suggestion to buy Sun stock 10 years prior, should buy Apple stock (it turned out to be a good bet but for slightly different reasons).
A developer-targeted desktop environment that is better optimized for most developer's workflow, and that has native integration to Github and the like sounds nice, but considering the effort needed to coordinate an effort, wouldn't it be better to advocate a cloud-based IDE and use a Chromebook or iPad?
Separately, it's interesting how little argument there is about which OS is better in this thread. It could be the sort of people that comment here, or it's an indication about how much people care about and identify with an OS nowadays.
http://modern.ie actually has some VMs you can use to test IE 7,8,9 etc on OSX, or even linux and windows. That pretty much sealed the deal as far as windows dependencies. Although I am still stuck with a corporate VDI for some work items.
He is correct about the availability of the development environment - back then the home user had to use Linux (or BSD) to get a Unix-type environment. Since MacOS has a NeXTSTEP core, this is no longer necessary.
I go to a lot of Android meetings and presentations, sometimes hosted by Google. Most of the people are using Macs, I'm kind of the odd man out with my System76 laptop running Ubuntu. It may be a generational thing, I'm in my 40's, many of the people there are in their 20's.
What is the most popular Linux OS for desktops/laptops/netbooks? I don't trust self-reported statistics, so my best source is the sixth (according to Alexa) most popular site on the Internet( http://stats.wikimedia.org/wikimedia/squids/SquidReportOpera... ). It's logs show that Ubuntu is the #1 Linux desktop, and Fedora is the #2 Linux desktop. Fedora only has about a 17% advantage over Linux desktop #3, SUSE, but Ubuntu has a huge lead over Fedora and all the other Linux desktop distros combined. There are over 100 Ubuntu desktop installs for every Fedora install.
So on some level, you're stuck with Ubuntu if you want a user-friendly Linux distro. When Ubuntu came out, they were very innovative in some areas, especially ease of use. I don't know how many times in the past prior to Ubuntu that I've had to manually set my X-Windows configurations so as to get X working, this is now gone. Only seven years back, Red Hat wasn't even using package handlers like yum in an official sense. Ubuntu helped push things forward in an area that had been ignored for a long time.
On the other hand, as I said, you're kind of stuck with Ubuntu. Canonical is not that friendly with its upstreams, it makes forks which are probably unnecessary and then doesn't even really maintain them well. Ubuntu's bug reporting system has gone way downhill - reported bugs tend to just sit in the launchpad queue until some Canonical administrator closes it after a few months due to lack of interest - "upgrade to the new version". Ubuntu's latest version not only has the "close window" button on the top left (as opposed to the more common top right) of the screen, they now modified the code so as that you can not change it to the right. So in a way it's becoming more like MacOS with an inability to tweak the system.
Also - Ubuntu comes out with a new version every six months. I just upgraded to 14.04, the April 2014 release. The python library to deal with RDF in python is rdflib. On Ubuntu 14.04 the package is python-rdflib. They use rdflib version 2.4.2, which was released in May 2009. We're now up to rdflib 4.1.2, and Ubuntu is shipping with this version of the library which is five years old. This goes back to the theme of Ubuntu being disconnected from its upstreams. I have been doing spreadsheets in Gnumeric and those have broken in several places with my recent system upgrade, one bug of which I reported which is still sitting in the queue.
A few months ago I got fed up with Ubuntu and installed Debian on one of my disk partitions thinking I might switch over. Debian did not recognize my network card, nor did it recognize my wireless network card. This is the kind of problem I had with Linux 20 years ago - it is often why I would choose FreeBSD for a machine install over Linux back then.
I understand how this is open source and I can do work to fix my own problems in a variety of ways. I do this though, and have done this - from sending bug reports, to sending patches and updated packages based off those packages. When distros have good relationships with their upstreams, and a decent bug tracking system, this process works well. Nowadays, Ubuntu overwhelmingly dominates the Linux distro market but many of its processes are broken in terms of an open source ecosystem. They seem to be more focused on an integrated desktop/mobile user environment than anything else at the moment. Yet in many ways they're the only game in town since they seem to at least be able to recognize network and wifi cards without difficulty.
Probably not. For security reasons, hardly any distros put their names in browser user agent strings these days. Ubuntu might be the only one still doing it. For the other distros, what you're seeing in the stats is mostly old versions from before that shift (IIRC like 2-3 years ago?).
This is why the #1 Linux distro (twice as popular as Ubuntu) is "Linux Other". Ubuntu is definitely not 100x as popular as any other distro.
You might try Cinnamon for a DE. I've found that it's not the same if you install the Ubuntu packages, it's best when packaged with Mint. But I bet you'll like it a lot more than Unity. Window buttons on the right and everything.
• Keyboard: standard PC layout, remappable ctrl/capslock with the capslock indicator indicating capslock, not n%2 physical key operations, pageup/pagedown, home/end, arrow keys, delete and backspace.
• Trackpoint. I hate trackpads.
• Three-button mouse.
• Choice of window manager, for:
• Focus-follows mouse.
• Mappable window manager hotkeys. I've got a set of features I've programmed into my window manager over the past 17 years (ironically: based on Aqua's antecedant, WindowMaker). They fit my workflow. Among them: alt-shift-t pops up a terminal window, alt-shift maximizes a window vertically (what the keybindings are matters far less than that I can map these functions. Resizing windows on OS X is a goddamned fucking mouse-up-your-ass-but-only-the-lower-right-corner pain. Every. Fucking. Time.
• Pinnable window menus. For when I need to track down a specific window (xlsclients | wc -l => 118 -- no, Expose doesn't cut it).
• An integrated package system with an unparalleled set of packages: grep -h '^Package:' _Packages | sort -u | wc -l => 50493. Yes, 50,493 packages. OS X has fink, and darwinports, and a mash of other tools, but fails to deliver a single integrated package management system, and the offerings I've found are sparse and tend to be poorly supported.
• Customizeability, in general. Not tweaking for its own sake, but simply getting things to work how I want them to.
• /proc and /sys. Believe it or not, having filesystem-based access to system internals is seriously fucking amazing.
• No "undocumented" features. Which isn't to say that there are system features which lack documentation, but there are not features for which documentation is being intentionally withheld*, as is the case for Macs.
• My hardware won't age out while it's still remotely usable. I've got 22 year old systems I can still boot and update. They are barely useful (network infrastructure), but they work.
Mark Pilgrim had a great "switching to Ubuntu" piece that got pulled when he deleted his website(s). Cory Doctorow points to it and mentions some highlights here: http://boingboing.net/2006/06/29/mark-pilgrims-list-o.html
Where I've seen Mac used extensively, a few elements seem to dictate its choice:
• For user not highly versed in Linux configuration, Macs do tend to be an easier to get-up-and-running system. Though honestly for desktop rollouts of the past 5-10 years, it's a very close race.
• There's often a use of Mac-specific applications. OS lock-in through application space is OS lock-in. It worked for Microsoft for a quarter century.
• It's often good enough. Not perfect, but Apple does very well at delivering a "sane-by-default" system. Mind, Ubuntu and Debian are getting damned good at this as well, as is Google via Android.
But to say that Mac is a foregone conclusion is hardly the case (as many here note).