18 ms·
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
by davexunit 12y ago
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).
- Swizec 12y agoAs 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.
- eyko 12y ago> 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]!) 0: https://github.com/sorin-ionescu/prezto https://github.com/sorin-ionescu/prezto
- Swizec 12y agoIt's more about superstition. My laptop works right now ... mostly ... I don't want to poke at it unless I have a very good reason. Because something always breaks and then you are in a world of pain as in this XKCD about setting up dual-booting with BSD http://xkcd.com/349/ http://xkcd.com/349/
- sitkack 12y agoI am actually the opposite. I have had brittle setups in the past and I found myself trying less and less because the past was becoming more precious. Now I destroy and recreate as often as feasible. Never go more than a 9 months w/o a rebuild.
- panzerboy 12y agoI do the same but with Ansible.
- davexunit 12y ago>Oh-My-Zsh 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.
- coolsunglasses 12y agoIndeed. oh-my-zsh is a good way to end up with a shell you don't understand and is slow as hell.
- petepete 12y agoPrezto is lighter, faster and simpler than omz, I'm a huge fan https://github.com/sorin-ionescu/prezto https://github.com/sorin-ionescu/prezto
- ushi 12y agoI 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.
- agumonkey 12y agoOh-my-zsh was pretty wasteful on resources (theming and plugins). The stock config in archlinux is pretty decent (good completion) but avoid OMZ pitfalls.
- ulisesrmzroche 12y agoI actually like the fact it has so many themes and plugins. Calling it 'wasteful' is over-board though. We're talking mbs at most here, if that.
- agumonkey 12y agoNot space, CPU. OMZ theming abstraction consumes a lot (last time I checked it was full of redundancy) bringing latency.
- bsder 12y agoNo. If I'm doing excessive amounts of stuff in the shell, I'm doing something wrong.
- karmajunkie 12y agoHow 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.
- gbog 12y ago> 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.
- misnome 12y agoIf 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.
- tomp 12y agoSometimes you just care about having up-to-date bug-fixed software.
- CJefferson 12y agoThere 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?
- TheZenPsycho 12y agobrew install bash … really.
- davexunit 12y agoApple 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.
- tomp 12y agoI 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).
- dllthomas 12y agoUnity 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.
- cmiles74 12y agoIMHO, 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.
- aerique 12y agoOne 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.
- collyw 12y agoTotally agree. 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.
- lvillani 12y ago> I have to go to websites to get the installers for most big programs There's "brew cask" for that! (http://caskroom.io/ http://caskroom.io/)
- girvo 12y agoHoly heck that's awesome! I didn't know about that, just sent it around the office and everyone is stoked. Thanks so much for linking it!
- cs02rm0 12y agoI use a macbook, but agree with you. 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?
- Touche 12y agohttp://shop.lenovo.com/us/en/laptops/lenovo/yoga-laptop-series/yoga-laptop-2-pro/ http://shop.lenovo.com/us/en/laptops/lenovo/yoga-laptop-seri...
- pyre 12y ago- 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?
- kyzyl 12y agoFWIW, 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.
- tst 12y agoI 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.
- CmonDev 12y ago"I see developers with macbooks all the time" - some people buy them just for the quality hardware and install Windows straight away.
- sz4kerto 12y agoYes. 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.
- pjmlp 12y agoYou can see this a lot at GDC. There are lots of people carrying Macs, but since the games industry is strongly Windows focused, those Macs are actually running Windows on them.
- silverbax88 12y agoI've used Linux, Windows and OS X. I don't consider OS X to be a development environment for serious development. I do consider Linux and Windows to be real dev tools.
- Swizec 12y agoFunnily, 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.
- pyre 12y ago> 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'? ]
- Igglyboo 12y agoI 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.
- glogla 12y agoI 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.
- sourkremlin 12y agoSomething 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.
- eyko 12y agoTotally 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.
- collyw 12y agoThe 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.
- xemoka 12y agoFor 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. [1]: http://www.boastr.net/ http://www.boastr.net/
- blumentopf 12y agoThis. 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.
- sneak 12y ago> 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.
- deleted 12y ago
- hrktb 12y agoPerhaps you should explain a bit your workflow: - 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.
- imsofuture 12y agoAbsolutely. 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.
- Hoolean 12y agoYou'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.
- dredmorbius 12y agoApple is really good at delivering a "sane defaults" desktop. It is not, by definition, an "optimal for task" desktop. I've used OS X off and on for much of the past decade. It's not a serious productivity platform.
- pjmlp 12y ago> It's not a serious productivity platform. To whom? If your customers are Mac users, it sure is.
- dredmorbius 12y agoFor me, though I thought that was clear.
- barbs 12y agoI 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.
- marrs 12y agoI 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.