5 ms·
I vastly prefer Linux. I actually work on a Windows 8 machine for most of my day, but all my actual development happens on a Fedora machine on my LAN, which I
by cheald 13y ago
I vastly prefer Linux.
I actually work on a Windows 8 machine for most of my day, but all my actual development happens on a Fedora machine on my LAN, which I work with via Samba and SSH. The advantage of this setup is that it means that I can also work from my Chromebooks trivially - just SSH into my dev machine and hack via vim. I have a Macbook that I work on sometimes, but I frequently just end up doing the same thing there - connect to my dev machine via Samba and SSH, do my work, don't worry about the Apple tools tripping me up and getting in my way.
OS X is probably the nicest (prettiest?) shell available, but the OS as a whole is a pain in the ass from a development standpoint compared to the Linux alternatives. The shell also has its own little quirks - you end up using the mouse a lot more on an OS X machine than you do on a Windows or Linux machine, which slows me down.
I think that $YOUR_FAVORITE_DESKTOP_ENVIRONMENT works just fine as long as you are running all your actual code on a Linux machine or VM somewhere.
- ekianjo 13y agoCan you explain further what makes OSX a pain in the ass vs a Linux distro (besides the shell quirks)? Any advantage you see by using OSX even though you prefer Linux ?
- cheald 13y agoWell, for one, getting sane build tools is difficult. Apple doesn't ship anything GPLv3, which means that among other things, GCC and bash have stagnated. You end up relying on homebrew to provide modern versions of "basic" tools, which may or may not work properly depending on your use case. It generally involves a lot of trial and error and things mysteriously breaking until you find a StackOverflow question where someone has figured out the answer through exhaustive experimentation, and one of the sixteen prescribed fixes will actually work for your environment. OS X is better than Cygwin, but it's the same kind of mess - to get a functioning, cohesive GNU environment, you end up doing a lot of hacking around to balance things just so. Since you end up relying on a third-party package system, and the OS itself makes no guarantees about the availability or compatibility of the development tools you need, upgrades become dangerous and unpredictable. As for advantages...I dunno. Netflix, Photoshop (sorry, GIMP fans, Photoshop is still unmatched) and battery life? Linux power management is pretty horrid compared to OS X. However, basically the only time I care about that is when I'm on an airplane and won't be able to get to a plug for 4 hours, which is like...a half dozen times per year.
- eropple 13y agoI find what you're saying interesting, because it doesn't really match my experience. I came from Linux to OS X not too long ago (three years maybe?) and while the first thing I do is install GNU coreutils and findutils, I don't find myself having to do much else to make the command-line environment feel very friendly. Most "Linux-only" scripts that I run across are really just "GNU-only" scripts, and work fine. Obvious exceptions are ones that do specifically touch Linux-specific constructs, but I find that most are just not tested with the default BSD tools and suffer for it. My only other beef is that there's no rc.d system and OS X's startup stuff is messy, but I do that so rarely that it doesn't usually come up. The other major advantage for me is Xcode. I did not get-it until Xcode 4, but these days I really miss when I'm not using it. (I do mobile and web development on the JVM, but I write games on the side.) I've yet to find a C++ IDE that's as nice as Xcode, and that's including MSVC with Visual Assist X. Also, I haven't found serious issues with upgrades since moving to Homebrew from MacPorts. Your mileage may certainly vary, but I've upgraded the same Mac from 10.6 to 10.9 without any issues. I can't say the same for my Ubuntu system, but that may have been my fault. =)
- cheald 13y agoIt may just be quirks of the toolchain - I'm primarily a Ruby developer, and I dabble in Java (mostly for Android) and Scala. Setting up a CRuby environment that can compile native extensions under OS X is a minefield. It's not hard once you know what to do, but you can expect to spend several hours working around esoteric issues the first time or two you do it. The lack of an rc.d system is another sore point for me - I can't ever remember the correct invocation to restart this or that service. Having to look it up each time is annoying. I haven't used XCode significantly (I tend to stick to Sublime and IDEA's Java/Ruby IDEs), but I've heard great things about it from iOS developers.
- eropple 13y agoGotcha. Never got into Ruby beyond the basics, so I can't speak to that. It's funny that you mention IDEA, though, because I find it way, way better on OS X (day job is Android development, I'm also a part-time Scala cheerleader). It's just so amazingly fugly on every Linux machine I've ever used--it's a Swing problem, I've never been able to figure out how to fix that. Heck, IDEA looking and feeling great on OS X was the reason I originally bought a Mac.
- kozikow 13y agoYou can use Emacs shell or Conque/Vimshell to not use mouse while using terminal on OS X. I hate using mouse as well, I made post some time ago about removing mouse from your daily routine: https://kozikow.wordpress.com/2013/10/31/going-mouseless-on-mac/ https://kozikow.wordpress.com/2013/10/31/going-mouseless-on-... .
- tmikaeld 13y agoOr you could use http://fishshell.com http://fishshell.com on OS X. There is also the EXCELLENT http://brew.sh http://brew.sh package manager for OS X.
- semerda 13y agoHaving moved from Windows to Linux to OS X for desktop I've found that nothing beats OS X for stability and uptime. Linux esp the Kubuntu was never stable. Windows same. OS X is bloody amazing esp when under load. I guess it all depends on what type of development and torture one puts the OS through.
- cheald 13y agoThat's opposite of my experience - my Windows machine (seriously, who'd have thought it) is more stable than my OS X machine these days. My Linux machine is currently running at 344 days of uptime, though, so there's that.
- swah 13y agoI haven't used Samba since university - don't you suffer from "Windows doesn't have proper file permissions" thing with it? How do you work with Git? Can you commit both on the host and Linux?