I've used OS X at work for the past 2 years and I completely disagree that OS X is nice for developers. I've had a lot of issues that I wouldn't have had if I was using a GNU/Linux distro like Debian. Major issues with GCC after certain updates, outdated GNU software like bash, brew is barely acceptable as a package manager (can't hold a candle to dpkg/apt), and I have to go to websites to get the installers for most big programs (Emacs, Firefox, others) like I'm using Windows anyway. I don't like like the desktop environment, either. The window manager is subpar and the virtual desktops are lacking compared to what you get with most GNU/Linux DEs.
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).
This. Tweakability isn't the issue. Simply catering to pro users is the issue. I moved from Linux to OS X in 2004 and am now on the fence about moving back.
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.
> 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.
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.
As someone who's been using OSX full-time for the past two years, and using it in conjuction with a Linux-based desktop computer for the previous ~5.
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.
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.
I am also a friend of a self-configured shell. But projects like oh-my-zsh and Prezto are great to get some inspiration. I learned alot by browsing through their code.
> 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.
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]!)
> Pray god that I never have to wipe my hard drive though.
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.
Oh-my-zsh was pretty wasteful on resources (theming and plugins). The stock config in archlinux is pretty decent (good completion) but avoid OMZ pitfalls.
How do you figure? I spend pretty much all of my time in vim, the terminal, of the browser. And having been at this since the early days of the web, I'm pretty sure I've got the wrong and right of it figured out. I'm primarily a bash user, but it's merely a matter of preference.
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?
Surely it's a myth that macbook hardware is of superhero "unrivalled" quality. I haven't seen links to comparative data backing up the claim. Failure rates, service rates, lifespan, side by side images of components at a microscopic level, data showing resistance to heat, cold, dust, impacts etc.
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 is so interesting! Your parent said "unrivaled hardware" and went on to give some examples of the types of things meant by that: frequent component updates, nice high-res displays, battery life, support, and form factor. (Left out the trackpad, which really is a huge differentiator.) You replied by questioning things like failure rates, lifespan, side by side component images, and resistance to heat, cold, dust, and impacts. There is a big difference between your lists, his are things users care about day to day, and yours are things engineers or IT managers care about. Well, I'm a user, and while I have very little affection for Apple, as far as I can tell they're the only ones making very nice user-focused laptop hardware at reasonable prices ($1000-$1200 vs. more like $2000 for a similarly nice (but, irrelevantly, more powerful!) non-Mac in my experience).
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.
> 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
Whoops, I did actually mean 13". But also: I did buy last year's 15" model new-in-box for $1200 - there seems to be a pretty fast price drop-off, perhaps because Mac buyers really do have an above average focus on latest-and-greatest.
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.
Did you really get a Late 2013 15" rMBP, new, for $1200? Where'd you get it?
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 it's possible I got a really good deal! I got a late 2011-model from ebay around this time last year (so May 2013), which turned out to be new in the box (but I wouldn't have minded a refurb), for $1199 plus tax.
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 friend of mine own a Yoga 2 Pro. He's using Chakra Linux, and he had to go through a great deal of difficulty to adapt KDE to the HiDPI screen. He somehow managed to do it partially (like by setting font sizes to insane numbers, etc). Even still, there UI elements scattered around that still appear as though you're looking at them from space.
> 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.
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.)
I run GNU/Linux on a CF-53 [1], and the experience has been nothing short of perfection. I say this having owned a 2011 iMac, 2013 Macbook Air which I still own, and the usual Dells and Lenovos: I would never willingly use any other laptop to get work done.
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.
It looks like an excellent laptop for what it's for, but at 2.7kg its just far too heavy and overall large for me. I have a bag with me at all times of every day with my MacBook Pro retina in it, and at 1.5kg and 13" screen plus a LOT of power under the hood (at least, more than enough for the VMs I'm running on it, I have the 8GB + 256GB SDD model) it's just perfect for my usage.
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. :)
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.
It's fallen from about 4 feet flat onto a hardwood surface once before without any discernible side effects. That was one of those times I realized if it was any other laptop I'd have a major malfunction on my hands. It's also fallen off the bed numerous times before. It just keeps going like nothing happened.
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.
That's why I have manufacturer logo on the back of my laptop covered by a innocent "no free advertising" sticker all the time, not only when presenting.
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.
It's not like I'm going out of my way to prevent advertising. Of course I don't cover a logo of my car, but I also don't drive cars on races or other events where I am publicly presenting something. If I were a famous car driver or even running mechanic shop, I would make sure not to show any, eg. tire manufacturer poster unless I have clear financial interest to do so.
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.
I wouldn't buy one of those 4WD's with the big TOYOTA lettering on the back. This is comparable to the Apple logo because its going out of its way to be noticed, "look at me, look at me".
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.
Actually it's exactly Apple's strategy to have their glowing logo shown around everywhere when people are using them. If you have a Mac and use it in this way you are basically acting as a promoter for the brand whether you like it or not.
Here's the one piece of hardware that really matters to me: the keyboard. This is totally in the realm of champagne problems, I realize, but my muscle memory is so tuned to the apple layout, down to the key size, that using something at else this time is a constant reminder that my fingers aren't quite home.
I don't really like the trends of laptop hardware these days, so my preference and yours differ greatly. I use hardware that's a few years old and is known to work well with fully free GNU/Linux operating systems. Shiny new tech (which usually requires proprietary firmware/drivers to function) doesn't appeal to me. There's this push to make laptops so unreasonably thin that they have to solder everything to the board and remove all user servicability to do it. I use a Thinkpad X220 currently and I am happy with it.
I spent years with Linux desktops and laptops. Switched to Mac about 10 years ago. Of all my developer friends I know, not only have I had the least amount of problems with my Mac laptops, but - sorry for the cliche - things just work. The latest and greatest is nice and while I'm not obsessed with having the newest, I like using what's new.
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.
> 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.
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.
If you cherry pick laptops these days, you can even surpass Mac OS or Windows. My MacBook Air from 2012 has longer battery life and stays cooler using a stock Linux kernel than with it's Mac counterpart.
The trick is that it has very well supported Intel components. As a matter of fact, Linus used this laptop for some time.
I run a MacBook Pro (Retina), and love OS X... but I completely agree. At some points, running Ubuntu/Debian on various machines I've used worked better OOTB with Linux that Windows itself did, with far less "find a random driver binary around the web somewhere, on a companies unmaintained FTP server, that probably no longer works with the latest changes in Windows" faffing around.
I hear this a lot, somewhat-technical people inserting 'macs are for dum people that don't know computers'. Truth is, a lot of mac users do know computers (obviously), and it's not that we can't mess with drivers and tweaking, it's that WE DONT WANT TO.
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.
Video drivers are still unacceptably bad on Linux. Docking, sleep etc fail for no reason understandable to even experienced users. I use Linux at work because it's still better than Windows but dream I would have a Mac.
- Are you claiming that this machine will run Linux well? If so, you're missing links to back that claim.
- 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?
> Are you claiming that this machine will run Linux well?
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.
FWIW, my brother uses* (and I have used, briefly) a non-thinkpad Yoga daily, and it's a very nice machine. He's had it since ~August 2013. Like any device I could come up with complaints about it, but nothing really springs to mind. It seemed to be responsive, light, mechanically well-designed, and sports one of Lenovo's awesome warranrties.
*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.
I don't think there is anything wrong with the non-ThinkPad Lenovo's. I've been on an ideapad u260 for years. It has outlasted my Macbook Air which was used half as often and cost twice as much. I run both windows and ubuntu on it without issue.
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.
Absolutely. I spent 3 years on MacBook Airs + OSX, and about a month ago, I just had finally had enough of the 'not-quite-right' development environment. Installed Ubuntu (on the MBA, it actually worked perfectly), and haven't looked back.
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've hit the nail on the head. I have been in a very similar situation, using OS X for development on a Macbook Pro for 3 years also.
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.
Totally agree. I've got a Macbook Air (OSX Mavericks) and a (Lenovo)Thinkpad (Arch Linux). I'd add to your points that it's not only a software issue, but also a hardware issue. Recently I've found myself tweaking the trackpoint settings and have gone so far as modifying the driver and the syndaemon utility just to be able to get a better user experience.
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.
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.
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.
Yeah, putting IBM/Lenovo aside, even the average Compaq or Dell laptop from back in the day had a significantly superior nub compared to my X210. I was really disappointed when I got it, because I remembered nubs being lot more comfortable to use than this thing that "sticks" frequently and has almost painful resistance.
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.
Mine is an X230, really disappointed with the nub. I'm getting sentimental here, remembering my old IBM Thinkpad. I just wish a manufacturer realizes there's a market for trackpoints and releases a well-built trackpoint only model. I'm not gonna hold my breath though. I heard the X240 is even worse, which is a pity because I almost got it since it came with an SSD... but I'm not a big fan of soft-key buttons.
Leaving the trackpoint in the middle / deadzone and then monitoring it's data input values, I always got a (-3,-1) gravity (not sure if that was the term), which is quite bad to be honest. I couldn't get around tweaking the dead zone well enough to avoid the issue. I would take an IBM over this anyday.
The track-pad on the Macbook Air I have is crap. No buttons.
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.
For a third button you can get BetterTouchTool[1] and set up an event for the Tackpad under "Global". I have tapping the top right of the track pad (about a 1cm square) trigger the third mouse button. Perhaps it's not as great as a real middle mouse button (can't middle drag, real pain for GIS and CAD software) but it does handle opening links in new tabs and closing tabs via middle click.
So if that trackpoint issue happens sometimes (every couple of minutes or so, not on every movement), then that's AFAIK inherent to the technology. It recalibrates itself if you let go of it for a second or two.
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?
I agree that the desktop manager is subpar. I don't like the way it groups the windows via application (command-~ to switch between windows of the same app is nice, but I don't like how command-tabbing to an app or clicking it from the bar brings all that apps windows to the foreground).
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.
I completely agree on the package manager issue. I switched to OS X about 6 years ago. Before that I mainly used Arch Linux with wmii. My switch from Arch to OS X took about 6 months in which I slowly migrated. At first, it was pretty great but when I wanted to upgrade software or install some new one it was horrible. Back then I used macports and I can't remember all the problems. It was a downgrade from pacman (and apt). I gave up coding a bit because it wasn't so much fun anymore.
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.
If you are caring about things like specific bash versions, then you probably don't fall into the category of people who don't want to micromanage every aspect of their system.
There is a big difference between caring about 'specific bash versions', and wanting a version of bash released after 2007. How many other applications on your computer are 7 years out of date?
Apple refuses to update bash (and other GNU software) because they use the GPLv3, so all OS X users receive GNU software that is horribly out-of-date. Apple ships Emacs, but it's version 22.1 from 2007, and the current stable release is 24.3.
- 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.
Yes. And they're cheap. Well, last year I was looking for a laptop with
- >=16G RAM
- IPS hi-res screen
- okay battery
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.
I tend to agree. I use Mac OS only because it natively supports Photoshop and MS Office and I may need to install these at some point. It also has first class support for the kind of dev I do (e.g. most other devs in my field also use a Mac) making troubleshooting slightly easier.
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 don't consider OS X to be a development environment for serious development.
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'? ]
Funnily, I have never been able to take developers who use Windows seriously. Must be a remnant from may teenage "Down with M$!!!!!!!11111oneoenoenone" years when I was a diehard opensource fanatic.
I don't know a single person that uses windows for development other than people writing windows specific(.net) software, judging by the overall vibe on HN and /r/programming I'd assume this is a general trend.
I would guess that for every hacker, there are 10 JEE developers that just use their Windows machine for developing applications that never see the outside of the corporation they work at.
HN and /r/programming are great resources, but they're not by any means representative of developers or the programming world in general. Indeed, I think it's quite safe to say the vast majority of developers have never heard of HN (or even Github) and while they might know of Reddit most of them probably don't visit. This might be a lamentable thing, depending on your views, but it is what it is.
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.
I really dislike Windows, and use OS X and Linux entirely (and have for the past... hell, nearly 8 years now!) -- but Visual Studio is an amazing IDE. Like, really really good. VS.Php[0], Resharper... tonnes of amazing plugins so even other languages other than .Net are amazing in it.
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!
Something I've noticed in some large cross-platform (Windows, Linux) C++ projects I've been involved in is that the developers, given the choice, will just as often choose to work in Windows. Visual Studio is an incredibly powerful IDE.
This is something I'd agree on, Visual Studio is amazing, but not good enough for me to switch to windows over. IMO all of the stuff jetbrains makes is almost as good as VS anyway.
I only used Linux for a short while and that was when Ubuntu Unity was a very new thing, so I assume it got better now, but then it couldn't possibly compare to OSX virtual desktops; it was usable, but very annoying.
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).
One of the nice things about Linux desktops is that you're not tied to the default window manager like you are in Windows and OSX. While Linux distros might have a default window manager (like your Unity example for Ubuntu) it is still easy to switch.
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.
He prefers a tiling windows manager at the application level rather than within tmux.
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).
roughly the same here. I've always been a fan of XFCE, but preferred KDE until KDE4. And I just re-installed KDE 3 days ago, still don't like it.
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.
Unity is not most people's Linux experience, and it's easy to swap in something better if it doesn't fit your needs (which, so far as I'm aware, is very much not the case on Mac). Given that the parent mentioned Debian, I don't think they were raving about Unity.
IMHO, Unity is not the strongest contender for a full, desktop environment on Linux. Both Gnome and KDE provide an environment that I find more comparable to Windows and OSX.
Many are baffled that OS X is so popular among developers. Likewise, many OS X users don't understand why someone would deal with Linux on a laptop. Those who do this are committing the typical mind fallacy[1]. Not everyone has the same preferences. One might as well be confused that some people like vanilla more than chocolate.
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.
Many are baffled that OS X is so popular among developers. . . I think many commenters in this thread could benefit from taking a step back and remembering just how unimportant this arguing is.
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.
Thanks for saying that. It's remarkable that so many writers will declare a subjective preference as if it were an objective fact ("$SOME_UI is so ugly!").
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.
Never thought about having they keyboard and trackpad switch places, but it surely sounds great in theory. (Well, only for those of us keyboard-centric users, anyway.)
I mentioned this somewhere else in this thread, but before touchpads, most laptops had either a nub (like the kind that Thinkpads still have today) or no mouse at all, and the keyboard was almost always on the lower edge. It really was great for typing.
I think a lot of it isn't actually genuine bewilderment. I've met developers who don't understand the point of a GUI when command line is "so much faster."
when I was a kid I couldn't understand how people liked chocolate ice-cream. I was always amazed by my sister's tendency for chocolate. To me the taste was awful, while vanilla was awesome.
I like OSX on a laptop because it's the only portable machine I've ever used where everything works correctly when I am constantly opening and closing the lid of the machine. At work I will leave my desk several times per day for meetings in conference rooms, then I take the machine home and I may open and close it a dozen more times in the evening.
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 :)
Am I the only person out there who hasn't got a clue what the point in suspend / hibernate are for. Whenever I use them, it seems to take longer to boot than a complete restart, and half of the times it doesn't boot, and if it does, there is a good chance something is not working.
Suspend should take less than a second to resume. If not, something's gone wrong. Apple pushed in a big way to get it to a point of waking up from suspend being quick enough that by the time you've opened the screen fully, it's ready.
Hibernate will often take longer than a clean boot — because it has to read all allocated memory from storage into RAM.
No, there are probably other Linux / Windows users who are similarly confused. :-p
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.
If the Mac laptop starts running out of power while asleep it will in fact hibernate; when it comes back it will display a progress bar as it reloads the contents of memory from disk. (Being able to explicitly tell the system "I know I won't be using you for the rest of the day, please just hibernate so you have tons of battery when I turn you back on next" is something I miss from Windows.)
HP Zbook 15 with Ubuntu here.
Boot to an empty desktop: 15 seconds, typing the password included. I timed that days ago out of curiosity.
Resume from suspend to RAM: maybe 2 seconds to the password prompt, plus all my programs are open and in the state I left them before suspending.
I never tried hybernating to disk but I bet moving 16 GB of RAM back and forth to disk wouldn't be as fast, even to SSD (I got a dual disk system SSD+HD).
Ubuntu 13.10 on a ThinkPad X230 works flawlessly in this way as well.
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.
Yeah the reliable open close the lid thing's cool. Also going from a Win7 Thinkpad to a Macbook Air I'm struck by how almost everything works pretty much instantly. On the Thinkpad if you just right click a file it would often take 30s just for the right click menu to appear.
Missing a killer feature here, at least for me: High-DPI support. No environment on Linux deals with high-DPI adequately yet. Between that and the other big one mentioned in the article, multitouch trackpad support, there is simply no way I can compromise. There isn't really anything else tying me down to OS X, but those two are huge. They're the only major changes I've seen in my workflow and desktop experience in the past ten years aside from general performance.
What are you using multitouch for? I've spent the last 6 months with OSX as my main machine (not my first foray into OSX), and I use multitouch for scrolling and sometimes desktop-flipping, but only because OSX is designed that way. I could just as easily scroll with TrackPoint (I love me some TrackPoint) and use keyboard shortcuts to switch desktops (as I have on Linux in the past).
I use gestures for going forward / back in Chrome and for activating Exposé, but there are two main things that differentiate it:
* 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.
> * 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.
Gnome 3 is pretty close for HiDPI. So all of the default applications look great. It's still a bit of an issue that Chrome and Firefox are almost unusable so I've been using Epiphany and liking that.
Chrome has a ways to go before it fully supports HiDPI in linux, but in Firefox, all I did was set layout.css.devPixelsPerPx to 1.5 or 2.0 in about:config and everything scaled perfectly, UI and all.
In Chrome you can set the default zoom for pages, but you will have tiny tabs.
OSX doesn't have HighDPI support. They just scale everything and present a lower resolution. Go ahead and actually try to user a high resolution on your Macbook. I know I did and then I tried to set things to autoscale ( like gnome 3 will do right out of the box ) since most of the time I only want a few applications with lots of screen real estate and I want the others to have larger font. I gave up and just run OSX at the lower resolution and save the high pixel count for when I am in Linux.
> OSX doesn't have HighDPI support. They just scale everything and present a lower resolution.
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.
I guess it depends on what you are doing. I rarely use the trackpad at all. In fact, I'd say that 85-90% of the time I have my trackpad disabled. Whether I'm working or not I tend to get by with just the keyboard (tiling wm).
I guess those would be important points to me if I did any work with graphics or UI.
I think there are additional reasons MacBooks are more popular.
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.
It's all about trajectory. In the 00's you were cool when you had an Apple while the acceleration of popularity was positive. The acceleration is negative now, even though popularity is still rising, but it's no longer cool because you aren't on the edge.
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.
Outside of vitriolic tech sites, I know of no one in the real world who associates Apple products with herd mentality or even anything particularly negative. They're just computers. People really don't care that much.
It's interesting to see the disparity between the comments here and on the post. Nearly everyone below the line on the post is a Linux refugee that's pitched up on a Mac. Here, not so much.
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. :-) )
> (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 mean: I try to get into the BIOS, and I'm asked to enter a password, which I've not been given. Never had this problem with any other computer company.
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.
If there were a Linux laptop with the same physical characteristics as my rMBP, I'd swap in a heartbeat.
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.
I really did look around at OEM laptops when I was deciding what to buy. I wanted a laptop which would run Unix, but besides of Dell I could not find any. I was afraid that Chromebook would not have provided the hardware I wanted and I did not to pay extra for Windows license, which I'd never use anyway. After that, I think there were still Lenovo Yoga 2, Samsung Series 9 and rMBP on my list. However, after reading articles about the laptops, I found that Lenovo had bad battery life and buying Series 9 or rMBP would basically pay me the same. At this point Apple's aesthetic product won my choice, given that Series 9 could have problems with Linux drivers and it still had the unused Windows license shipped with it.
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.
When I was shopping for a new labtop I initially settled on the Series 9, but when the 2013 rMBP's came out they really trumped the Series 9 in the hardware department so I returned the Series 9 and got a rMBP. The good thing is that the Series 9 was just as good build quality, and had excellent battery life. Also it was priced well and I think its part of the reason the 2013 crop of Macbooks had to come down in price the way they did.
I think shortly we will see the monopoly that Apple has on high end well designed laptops will come to an end.
I was in a similar situation a year ago and decided to go with the Series 9 with Full HD screen instead of a MBPr.
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.
I'm not sure what to think of this blog post. Do anyone really recognize himself or herself in the described developers?
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.
My usage is very simiilar to yours and it feels very natural and "right" to me.
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.
my current work laptop is a first-generation lenovo x1 carbon (seriously, best laptop i've ever used, though i hear the new version is a step backwards), running ubuntu and xfce4 with xmonad as the window manager. i'm happy and productive with it. as you say, 99% of the time all i'm using is web browsers and terminals anyway, and the ability to tile and move them around desktops with a few keystrokes is wonderful.
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.
I think its true in some circles. Go to dev conferences for javascript/rails or other fancy web tech/startups and >90% use macs. If you don't you kind of look like someone who is an apple hater or too cheap to buy a mac. I believe some people would even look down on you if you were using windows for example.
What is that 'minimal windows manager' and what is the benefit of it over Unity (which to me is a few icons down the left and a few icons + notifications in the top right)?
I cannot speak for gp but I use tiling window managers when I use Linux. Usually they do not work so well with desktop environments, or it to much effort to get them to work properly.
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.
"Another advantage is that they are usually keyboard driven so that it is possible to launch, close and arrange windows without using the mouse."
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.
xmonad works flawlessly with xfce. it's what keeps me from switching to any of the other tiling wms, though some of wmii's features do look pretty attractive.
For me it is Openbox, for other people I know it is generally i3wm, dwm, or xmonad.
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.
I don't know about the parent, but I use ratpoison. I still have notifications pop up (with notifications-daemon) but I don't have any screen space taken up with icons. I kind of find icons silly... don't sit around telling me what I can do, I configured my keymap, I know what's there and if I forget I can trivially ask! Speaking of keymaps, the way that ratpoison keys are set up is a huge win - no application can ever be expecting a key combo that I can't deliver, while I still have a deep tree of commands available with very few keystrokes.
I just don't get how OSX is so popular with a developers. It is essentially a "user's" OS. Not a developer one. Its geared towards, and hides a lot from, the common user. Setting up OSX with all the dev stack is usually a painful experience requiring a few workarounds (I see this with colleagues of mine who wanted a Mac over a Thinkpad with Linux). The keyboard as well is anythign but developer friendly. Where are those damn Page Up/Down keys?
Yes the hardware itself looks nice, albeit a bit outdated to my liking, and you pay a silly premium for it. It breaks more often than it should, and those shiny screens just don't fit code (to my matte liking eyes anyway). But hey, its trendy and hip so why not.
I just don't get how OSX is so popular with a developers. It is essentially a "user's" OS.
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.
| (2) I don't want to update my whole operating system to update applications;
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).
I don't understand what you mean by "updating the operating system to update applications". In Ubuntu, for example, my apps are updates as soon as new versions are out. If I want a major version upgrade, in some cases, I can also add particular repos that track those apps... I have not compiled anything in Linux for so long I don't even remember what/when was the last time.
I think it's pretty specifically popular with developers in the start-up space.
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.
Macbook laptops were insanely popular 6-8 years ago. They had the best hardware, well integrated software, and access to the bash shell and all the favorite unix utilities. OSX had support for Internet Explorer and Linux didn't really.
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.
I never said the hardware was bad, not detracted from any developer's preference to use a mac. I just expressed my opinion. Yes, its true that the apple hardware is very nice, but at the same time, it was much nicer 10 years ago. Today its just stuff I'd expect from any laptop. There is on groundbreaking changes any more. And good marketing - you bet! The best marketing there is. Its herd mentality taken to the extreme. Have you seen an apple store on launch day?
Because I have a data center full of nodes for when I need horsepower and a big fancy desktop with multiple monitors and a desk and a chair and a keyboard for when I need do serious development. What I want out of a laptop is a great form factor, solid battery life, a good keyboard, a large trackpad, a web browser and a real terminal. I own a 13-inch MacBook Air, it cost $1000 brand new, so no I didn't pay any premium for what I got. If you disagree please link equivalent specced hardware with a fully aluminum unibody case, high quality backlit keyboard, large trackpad with multitouch that has equivalent weight, screen size, and battery life. It does not break more often than it should, in fact it has never broken at all. The screen is not overly shiny and it fits my code just fine. But hey, you're already convinced otherwise so why bother.
unless you need a halfway decent GPU for you work, then you are bound to the top of the line $2600 rMBP. Thats the main problem with apple, very limited choices.
I was all in for Ubuntu on my home machines (Windows at work, of course), but OSX was a revelation. For core development stuff, Ubuntu is great-- I'm still a fan of Unity, apt-get, build-essential-- but as soon as I want/need to dabble in human-level tooling (basically anything with graphics), Linux falls down. The apps just aren't there, and if they are, they're not well maintained. Even the most actively developed Free apps just aren't as aesthetically pleasing in either the UI or in performance.
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 :).
Weight has a lot to do with it. The first Macbooks, and the the Macbook Air, were far, far lighter than equivalently provisioned x86 systems. The disparity's gotten better, but you still have HP and Dell putting out boat anchors compared with Apple.
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.
The Dell XPS 15 [1] weighs around 4.5 pounds, has a higher-resolution display than a Retina MacBook Pro, a comparable i7 quad-core, 16 gb ram, etc. It also has excellent Linux support (source: I have one that I installed Fedora 20 on and everything worked without any tinkering).
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.
I'll grant that I may be dissing Dell and HP in part on the basis of their more downmarket and/or "desktop replacement" laptops which tend toward the boat-anchor characteristics.
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.
I heard many people complain about coil whine in these models. Also does this support GPU switching under Linux and does sleep/hibernate etc work without issues ?
I've haven't experienced the whine myself, but I've seen those complaints too.
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.
I just see it often at the hands of devs. At my work we got everyone a Thinkpad running Ubuntu, but some wanted Macs and they got them. At the end of the day, this is a theological discussion influenced mostly by emotion. Pretty much a zero sum game - these are all tools best used at the hands of those who use them.
Most devs I've seen on macs use vim, which not to get into a flamewar, seems obsessed with turning into emacs in about 10 years or so. It seems to be completely bandwagon to me.
> But even if we fixed all those things, why would somebody migrate?
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.
I have been using Ubuntu as my sole desktop for the past 5 years (except when I play games on Windows), and have just landed a job that requires I use a Mac. It has been incredibly painful trying to do what is normally trivial in Linux.
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.
I'm in a similar situation. My new job is an all-mac shop, which is funny because we are mostly writing software for Linux boxes out in the Internet. I didn't mind though, because they bought me about $5,200 worth of mac equipment to keep. I've been using BSD and then later Linux since 1999, and that was about the last time I used a mac, OS 7. I was expecting to somewhat dislike it, but they do Clojure and I wanted to go that way. I really have enjoyed the change though, and even bought an iPhone.
I had been using Linux for years before finally buying a rMBP -- and it took another four months to install Windows 8.1 on it. Any OS has it's problems, and the question is how easy it is to overcome them. Windows does not have a nice console interface, but everything else is fast and frictionless, there are practically no driver problems, etc. I can more ore less work around the lack of proper console (learning PowerShell helped a lot). On Linux, I had the fantastic, tweakable, console-centric world but I cannot make the GPU drivers to have better power management or implement proper audio-over-HDMI. Also, I cannot make my own Google Drive or OneDrive client.
As a Windows user that needs to hack around every now and then, I can't recommend enough having something like cmder (or just Conemu) plus Vagrant (and a Ubuntu VM, for example) or a playground on a cheap VPS like DigitalOcean. You get to use Windows and Linux at the same time without any major cons.
I also use Windows + Linux VM. Virtually all development happens in the VM.
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).
I have to use a windows machine at work and I've settled on cygwin, console2, sublimetext, and vagrant. Ubuntu at home, but I love the VM workflow so much that I've switched over; it has an obscene number of benefits for a low amount of upfront work. Every morning I pull changes if I need to, cd /to/the/project, vagrant up && vagrant ssh, and I'm in a perfectly configured dev machine. Work on ~2007 Dells and its smooth as silk.
I expect he means "can't" as in, "I do not have the technical knowledge or time to devote to doing this, so I'd rather run something with first-party support". That's what I mean when I say "I can't make my own _____".
Similarly, I can't make my own rifle, or design my own airplane.
Sometimes, the choice of OS comes down to the availability of tools to do your work. I work in an embedded environment with esoteric compilers and debuggers. Trying to get the vendors to support them in an OS other than Windows in impossible. So I am living in Windows land for my daily work. I use OSX at home, and I cannot really say if my productivity level would go up if the embedded tools were available under OSX.
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!
At the beginning of the article, the author is too quick to dismiss the aesthetic and functional merits of a modern Linux installation. My < $300 chromebook can currently run two variations of Linux, both with aesthetically pleasing desktops and a comfortable trackpad with great multitouch support. This also didn't require much (if any) messing around with settings to achieve.
I don't agree that the later KDE and Gnome releases where steps backwards, in fact I think they've made solid progress towards matching OSX and Windows in terms of ease-of-use. On the other hand, this could be exactly the problem. It does seem that the more the Linux environments pursue the same goals as OSX and Windows, the stronger the backlash.
Windows 8 was a huge step backwards in usability. I had to use it for a couple of weeks before I figured out how to get Linux on a new laptop secure boot. I am using XFCE these days, because it behaves the way I am used to. No need to learn a whole new set of gestures or click combinations to do what I already know.
Windows 8 is a huge step forward in my opinion. It's faster and more stable than 7, the touch drivers work great (I use desktop apps all the time on my Surface Pro and Dell Venue Pro 8) and it's paved the way for running Windows on non-Intel chips as well as for converging the desktop and mobile which is something that I want.
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.
There is still plenty of software missing from Linux that you would want for the average web developer workflow.
For example whilst there are graphical Git clients available, there's nothing as polished as SourceTree or Tower available.
Same thing with database GUIs.
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.
I can't imagine wanting a "gui" for either git or "database". I'm happy with the git command line, where I know what I'm doing and the details of which you must know anyway, as many learn the hard way. Similarly I'm in SQL Developer and SQL Developer DM all day most days, not sure what sort of "gui" is missing?
For me, Macbook (1) is light, (2) has a trackpad more useful than a mouse, (3) lasts for hours, and (4) is reasonably performant (retina display, quad-core, 8GB ram, SSD). I use a terminal, a packet manager, and a browser, so the only thing I demand from an OS is (5) multiple desktops, (6) multitouch, and (7) getting out of my way (no need to tweak settings, compatible with USB/WiFi).
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.
It's really hard to find laptops of similar quality to the MacBook (Pro/Air). Of cause you could install an alternative OS on the hardware, but you'd get worse performance.
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).
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.
Kind of on the same riff as the article, it seems like tighter integration between virtual machines and the desktop environment could be another place where the Linux desktop could enjoy an advantage. This is an area that we're unlikely to see Microsoft or Apple touch, as it's so developer-centric.
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).
> If the desktop had built-in awareness of the issue tracker
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.
I'm on Windows 7 and use a Linux VM, where I actually do all the development. I love the command line, but still haven't found a Linux GUI I'm as comfortable in as Windows. Ubuntu was getting close there for a while, but then they went to Unity, which I tried to like, but ended up pretty much loathing.
Cinnamon is a nice mix of pretty, and practical, and not needing to relearn everything. but it has a habit of chewing up lots of CPU for no apparent reason and more recently my work machine would half freeze (the mouse would move, but nothing else would work). Moved to XFCE, and it is great. Not as pretty, but works in a traditional way (windows 98 XP sort of style). Its fast and stable.
In my opinion it shows that most "innovation" in desktops over the last few years have actually been a step backwards.
The macbook is almost dismissed as an ersatz of linux desktop. I don't think it's a fair assessment. I had a linux desktop, I worked a lot on windows as well, I was glad to be able to switch to OSX because it's the best balance between a very polished OS with strong applications (MS Office, Photoshop etc.) and a decent command line and unix compatibility.
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.
I've used Mac for 8 years (since the 1st gen Intel MacBook) but now I really want to run away. My current Mac is a server-level 2013 i7 Mac Mini with 8G RAM. It's not uncommon for me to run Mail, SubLime Text, IntelliJ IDEA and one or two VirtualBox guests on it, and then CPU goes high, the whole machine slows down, and fan produces loud noises. On the other hand, my ThinkPad running Windows 8.1 with a similar hardware spec can handle them smoothly. I agree Mac is more developer friendly than Windows, but doing daily developing work with cygwin/SubLime Text/IntelliJ IDEA is almost identical on both platforms. I admit I'll try installing Linux if I make the decision to switch to the ThinkPad as my main desktop.
It could be that something within your OSX is not quite right.
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.
Linux desktop is great, most devs probably want the option to do iOS and Windows work if needed. I think OSX is ok but a Mac is the only option if you want to cover it all. The track pad is nice as far as track pads go but all track pads become painful after extended use.
Ever since I moved away from C++ into JVM/.NET land, my work laptops have always been Windows based, regardless of the server environment.
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.
Plenty of people moved from Linux and BSD to OSX for a wide variety of reasons, especially for laptops. I'd consider a non-mac workstation for serious desktop use, and OSX for servers is essentially insane (I actually have one mini in colo though, in addition to linux and freebsd servers). I've been using Unix OSes since ~1990, and a laptop since mid 1990s running Linux and FreeBSD.
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.
I too yearn for the 32-64GB Mac laptop. Usually I'm in front of an iMac, spinning up AWS instances for parallelizable and time insensitive tasks. What kind of setup do you typically use?
I just use a 16GB Mac laptop and have a 48GB non-mac workstation at home, and bigger RAM stuff in colo. What I really want is an office with 10GE on nLayer to the colo or something.
Just as an aside after reading this I went to debug an android app. Instructions for connecting your phone:
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" '
Two big reasons I think Mac OSX is so popular with devs:
1.) There are better graphical tools/apps available for OSX then any other OS. Kaldeoscope, Tower, SourceTree(also for windows), Atom(coming soon to other platforms), iTunes, many more games available for down time, evernote client, tweetbot, sequel pro, pattern, and imessage are just some of the better apps that are aren't available or have poor alternates on other OSes.
2.) A rMBP is the best machine available if you want to develop mobile apps. It's one machine that allows you to build an app for any mobile device out there.
I really think that this is the answer. There is no other way to create iOS apps today. You must own an Apple branded computer to do so and for that reason there are always going to be a high percentage of people with a MacBook of some sort just to do the compile.
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.
>what's easily the best trackpad hardware/driver combination on the market.
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.
>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.
It's not just the developer. It's most people who end up using Linux. It's not as good of a UX or UI. The hardware you can even get it on out of the box isn't amazing.
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.
There are benefits in the develop and test on one platform (test again and) deploy on another. That way you naturally create portable software.
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.
I use OS X since 2 years but only for Skype, Spotify, Browser etc because apps looks much nicer on OS X than Linux. My whole dev environment is on linux based virtual machine. This way I have nice looking laptop but my dev environment is really close to production environment.
I have pretty much the same opinion as the OP. Linux is in dire need of a DE that is at least on par with its internals. What strikes me is that what's good about linux structure essentially pre-dates it. I wonder if the open-source community is up to the task of making a breakthrough in this space. I'd love to see a large scale DE project take shape around, maybe, a metaphor or a concept that puts linux in reach for casual users while still pleasing developers alike. I'm pretty sure high profiles in the UX and dev communities would happily embark on the project and give off some of their time.
"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?
Programming requires maintaining focus for long stretches of time and the easiest way to get that focus is to enjoy the activity. As a result, virtually every developer I've met enjoys coding regardless of whether they like their current job or not. That doesn't translate into programming in your free time for everybody but it does for a lot of us.
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.
Everyone where I work is issued a pretty decent laptop. Mine's a Dell Latitude E6430. I'm allowed to do whatever I like with it; I'm a Java developer so I moved it to Linux and I run Windows in a VM for the things that might really need Windows.
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.
Good computers for development are relatively expensive but once you're used to one you don't want to go home and use a crappy computer. You probably don't want to buy 2 either.
I specifically like to use crappy computers at home. I don't like thinking about computers, and that way, if something goes wrong (which admittedly isn't often) I can go to the computer store and solve all my problems for minimal concern and cost.
> A desktop environment that made it easier to perform generic development would be a unique selling point.
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.
I've been involved with Linux since 1993 and it is a great server os but I am skeptical of the linux desktop since over time there has not beeen a trajectory of improvement but rather things have gotten worse.
Same here. I was even a strong Linux advocate at my University and did subscribe to Linux Format for around 10 years.
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.
I see a lot of people like me in this thread: We like Apple and Mac but certain aspects are less than ideal in our setting.
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.)
I think the answer is the total guileification of the (extended) GNU operating system. We need to facilitate cross-talk between bits of the operating system, and there would be no more natural way to do this in GNU than to make all commands understand literal Scheme lists of arguments, and give back literal Scheme lists of data (including the response to '(help), which would make the entire system introspective!), so that inter-operation between sub-systems becomes natural.
As a Guile hacker, I also think that more programs should be extensibile via Guile. However, I don't think programs need to "understand" sexps in the way you're describing. Programs can continue to work as they have, taking in textual input and outputting textual output. What you get with Guile is the ability to use the program's API via the REPL so you can interact with and extend that program, much like Emacs.
Adobe are in the position to do for Linux what Apple did for BSD/Darwin.
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.
In what way would Adobe profit from creating such a Linux distribution of their own? They probably can't even rationalize porting creative suite to the Linux desktop, let alone develop a partial OS around it. They're making a crapload of money on operating systems they don't own and their customers have no incentive in switching from.
I have to use a Mac for work and the fact that it cannot do focus-follow-mouse makes it extremely painful for me. Add to that the lack of track-point (although that can be solved by adding a keyboard, but not so convenient when travelling) and that makes it, as far as I am concerned, the most useless laptop ever produced.
Even MS Windows let's you switch to focus-follow-mouse and use a piece of hardware with a track point.
As a newbie/student developer I found the main benefit of switching to mac is that it is what everyone else uses so you follow the tutorial / instructions and it just works. I had dual boot Unbuntu / win 7 previously which seldom just worked. Also I wanted to upload my Phonegap app for iOS and Apple won't let you without using a mac pretty much, darn them.
I strongly believe a lot of the mac trend came from Rails, Textmate and 37signals promoting that dev platform with their work. Add the iOS goldrush to that and you have your reason for OSX as a dominant dev platform. Especially in the startup space, a lot of people changed back then but with tools like vagrant and vms in general, the choice isn't as clear today imo.
I use a macbook air at home for some development. I hate OS X for development (C++) its, a real pain. Ubuntu is a lot more friendly I feel.
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.
I used linux for many years but changed to OSX when I start to go to Rails conferences. It was the de-facto standard OS and every good tool as developed "mac-first". Textmate is a good example.
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).
Can't say I like iTunes at all, but my main reasons for liking Apple laptops are that it's Unix-based, light, and has good battery life. If Windows laptops were comparable and tossing Linux on them was painless, I'd consider it, but I haven't seen a laptop vendor come close.
Is the author suggesting using Macs is a new trend? Or is the main point that a new desktop focused on using cloud hosted services would become popular?
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.
I enjoy doing web development on my MBP it has everything I need Microsoft wise for work email and Lync. Terminal is great to work in and connecting to a remote server is a much better experience than in windows. Plus you have most of the unix commands you a already familiar with. I can easily create a new vm of whatever I need anytime I need to.
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.
My desktop has been Linux since I installed Slackware off of downloaded 3.5 inch disks in the early/mid 1990s.
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.
my best source is the sixth (according to Alexa) most popular site on the Internet
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.
I am also the odd one out, also with a System76 laptop. :-)
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.
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).
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).