15 ms·
For many Mac is the only sensible option. There's one developer in our company that uses Linux and it's a lot of pain to setup. Mac has the best balance betwee
by vforvendettador 4y ago
For many Mac is the only sensible option. There's one developer in our company that uses Linux and it's a lot of pain to setup.
Mac has the best balance between coding, utility tools and "other work stuff".
Windows probably on par if not more for "work stuff" but falls badly in the coding & tooling department.
Linux is OK ish for coding and utility but falls behind for "other work stuff" and certainly a pain to just keep it updated.
So in our company, everyone in the development & support team uses Mac (except this one guy who insisted in Linux), most in the sales & marketing team use Windows.
- zamalek 4y ago> everyone in the development & support team uses Mac (except this one guy who insisted in Linux), > certainly a pain to just keep it updated. > Linux and it's a lot of pain to setup. If you're not using Linux, how are you justifying these claims? > certainly a pain to just keep it updated. Excluding the boot time for both, MacOS takes between 15 and 45min to update. Linux is a few seconds. I suspect that the only OS that has a more ridiculous update process than MacOS is Gentoo.
- KyeRussell 4y agoOne can be using something that isn’t Linux for development and still be familiar with it. Perhaps they did in the past? Perhaps working in the same team as someone exposes them to the alleged headaches? This is a thread on Hacker News, not an academic article. You aren’t owed a massive amount of “justification” for these “claims”.
- zamalek 4y ago> You aren’t owed a massive amount of “justification” for these “claims”. I was using Mac for development due to company policy (compliance). It is by far the worst development experience I have ever had. Brew is terrible. Updates are agonizing. The user interface is awful. Containers are a shitshow.
- howinteresting 4y agoYeah, I used a Mac for years and felt the same way. Linux has been the only half-reasonable OS for development for me.
- maria2 4y agoHow do I get my laptop to properly sleep when using Linux?
- paulv 4y agoI'm not sure I understand the question? I close the lid. How do you do it?
- zamalek 4y agoIt a jab at Linux/PC. Apple's completely vertical stack means that their machines never have issues sleeping. The huge variety of machines that Linux (and Windows) is expected to run on can cause problems entering S-states reliably. This issue is pretty uncommon (excluding the Windows modern sleep disaster), but that doesn't prevent comments like the GP throwaway.
- howinteresting 4y agoApple laptops definitely have issues sleeping. https://forums.macrumors.com/threads/macbook-air-m1-doesnt-sleep-when-display-is-closed.2307410/ https://forums.macrumors.com/threads/macbook-air-m1-doesnt-s... There's a litany of bugs in Apple's software. This often gets hidden because developers use workarounds of various sorts, but if you know, you know. It's honestly embarrassing how buggy Apple software is given the vertical integration you describe. The worst part is that almost all of it is closed source so it's harder to debug, and the bits that are open source (and have bugs in plain sight) you can't just submit a patch to. You have to file an rdar and hope it gets prioritized, which for one of the bugs I'm aware of hasn't been in many years. And so the workarounds keep getting written.
- josephg 4y ago> There's a litany of bugs in Apple's software. Personally, the only problems I've only ever had getting macos to sleep properly has been when I've been running VMs. (Hello docker!) When doing purely OS-local development (which is all I ever do these days, because I value my sanity) macos works great. (So long as you have a recent mac. New macos + old laptop is awful.) But as nice as macos is, XCode is an absolute mess. Earlier today I was trying to import a swift package into xcode. The package looked fine, but XCode for some reason was only importing it as a "Folder Reference". Stackoverflow suggested quitting xcode and running "xcodebuild -resolvePackageDependencies", then relaunching xcode. And that fixed it! Why was that necessary? Why couldn't xcode figure that out on its own? What did that even do?? I have no idea. And I hate it. These days developing in apple's ecosystem feels less like developing in a walled garden and more like developing in a swamp. They're truly lovely developer machines - just so long as you can stay away from xcode.
- mat_epice 4y agoMy read on it was that this person heard what their coworker has to go through, and has formed an opinion based on that. I understand that climbing Mt. Everest is fairly difficult, despite not having done it myself.
- zamalek 4y agoI find how specific coworker complains about Linux while simultaneously demanding to use it pretty contradictory. That's why I am interested in more details.
- andirk 4y agoI think it's fair to say that everyone in a company using very similar hardware and software makes maintenance much easier. But I also think any dev should be supported in at least _some_ Linux environment.
- dgan 4y ago> There's one developer in our company that uses Linux and it's a lot of pain to setup. There was one developer in our team using Mac. Everyone (>20 people) else were using Linux. Mac was a lot of pain to setup. Linux is the best balance between coding, utility tools and "other work stuff". Windows is not even considered for development, it falls badly in the coding & tooling department. So in our company almost every dev uses Linux (except this one hipster using Mac) & marketing team use Windows
- vips7L 4y ago> Windows probably on par if not more for "work stuff" but falls badly in the coding & tooling department. This is absolutely false. Windows is a perfectly fine development environment and has perfectly fine tooling. You just need to embrace powershell, windows tooling, and use cross platform tools. Too many devs put themselves in a corner by relying on posix shell or posix only tooling. If you do user space programming your host OS should never matter. In my 10 years of programming the only time the host OS mattered was when I was writing Linux drivers.
- jiggawatts 4y ago> but falls badly in the coding & tooling department. That's more perception than reality, often from people who simply don't know how to use Windows. Visual Studio, Visual Studio Code, and IntelliJ IDEA blow any Linux text editor out of the water for developer productivity. For Linux workloads there is the Windows Subsystem for Linux (WSL 2), which now even supports GUIs with GPU acceleration! Visual Studio Code can even operate in "remote" mode where it tunnels into a Docker container or Linux server and acts as-if the remote target was the local machine. On Windows, x86 and x64 Linux Docker containers run in process isolation at full speed, unlike on Macs where there is CPU emulation required.
- josephcsible 4y ago> Visual Studio Code, and IntelliJ IDEA blow any Linux text editor out of the water But those tools themselves work on Linux.
- survirtual 4y agoThis is just really false. As someone that used Windows as my daily driver & migrated to Linux many years ago, the tooling on Linux is vastly superior. Most codebases and extensions also work trivially easy in shell, and command line operations in general are much less a pain point. I’ve since migrated to Mac because I was spending too much time making linux work properly, but I do miss the control I had. I have Windows on parallels and I can’t believe how much of a disaster it’s become. I wouldn’t encourage anyone to it. For most people migrating off of Windows, I’d recommend Kubuntu. It is KDE Ubuntu, and it feels like Windows used to during its golden age. Also, it’s free. All major IDEs work on Linux so the shift is pretty painless. Really recommend migrating.
- pjmlp 4y agoSo how you do you single step GPU shaders on your superior tooling?
- KptMarchewa 4y agoThe same way you develop iOS applications on your Windows laptop.
- paulmd 4y agoMy previous 2 companies have both switched to OSX for everyone. There are some teething problems - OSX is not really meant for a domain environment and JAMF Connect is necessary glue to work properly with Active Directory sorts of stuff, and it's still not quite perfect. But overall it's actually worked out surprisingly well because there's something for everyone - developers get *Nix On The Desktop but with an actual support story, and the non-technical users get a happy bubble OS that holds their hand. Linux code churn and distro fragmentation makes it fundamentally unsupportable in the vast majority of workplaces (outside very controlled server environments/etc - talking desktop use here) and for the vast majority of users. The code churn makes the support story (polish and documentation) impossible and the distro fragmentation means that there's 50 different solutions to the same problem. The Bazaar and the Cathedral doesn't mean the bazaar is better in all situations, a random non-technical business analyst is never going to learn how to build Arch or install Gentoo and a really good streamlined, polished Cathedral Experience is much more suitable to the business environment. That's the fundamental lesson from Linux and Windows and OSX now takes its place in that too. You can keep the good things about Unix-y environments and opt out of the terrible parts of the Linux ecosystem. Unfortunately, like BSDs, that's not what Docker is built around. Docker assumes a Linux kernel, and Linux kernel ABI is not the same as Unix kernel ABI. That's the biggest problem. Same as FreeBSD Jails or Solaris Zones... they're a decade ahead of docker in terms of capability, security, performance, and polish, but Docker is where the mindshare is. I can't install a jail from a registry with a single command and that's not where the support/development time is going even for the people who have engineered those alternative docker-registry solutions for jails. The only "fast" option for non-linux kernels besides full virtualization is to thunk the calls to your own kernel to patch around the differences. Obviously that didn't work out with the Windows kernel, it's just too different, but FreeBSD/Solaris have implemented this functionality for a long time as part of "Branded Zones". But everyone is enthusiastically rebuilding the wheel around ubuntu (specifically - not even linux generally) so that's not going to happen. https://wiki.freebsd.org/LinuxJails https://wiki.freebsd.org/LinuxJails https://docs.freebsd.org/en/books/handbook/jails/ https://docs.freebsd.org/en/books/handbook/jails/ (the freebsd handbook is a great example of the kinds of documentation that rarely gets written for linux distros - other than commercial ones - because of the overwhelming code churn and the inevitable bit-rot that entails in the rest of the user experience. It's way more fun to write a new audio pipeline or init system than to document it fully, everyone knows it.) https://www.oracle.com/technical-resources/articles/it-infrastructure/admin-zones-containers-virtualization.html https://www.oracle.com/technical-resources/articles/it-infra... https://docs.oracle.com/cd/E19455-01/817-1592/gchhy/index.html https://docs.oracle.com/cd/E19455-01/817-1592/gchhy/index.ht... https://en.wikipedia.org/wiki/Solaris_Containers#Branded_zones https://en.wikipedia.org/wiki/Solaris_Containers#Branded_zon... (and note the Solaris stuff almost entirely applies to OpenSolaris/Illumos as well, you don't have to use commercial solaris to get Branded Zones.) Anyway, apropos of nothing, but with the newfound attention on OS X from developers and power-users, it'd be really nice if Apple released a M1/M2-based "toughbook". Completely against their design aesthetic but I think a lot of people don't really like the idea of wafer-thin apple laptops and would like something that can take some bumps without shattering. Power users are becoming a more core demographic for macbooks and it'd be nice to see them cater a little more.
- kevinhq 4y agovery true. i saw this as well when i was still working in the office ten years ago. in Linux, what you can do is mostly coding and browsing.
- 29athrowaway 4y agoAnd your production environment is Linux, so you will be using Linux anyways and all the testing you do on Mac has differences with production unless you do it in a VM where everything is slower. Linux is not a pain to setup.
- jeroenhd 4y agoEveryone in my company just uses Windows if they don't want to bother with Ubuntu. Excellent Linux tool chain support, excellent driver support, it just works. WSL 2 is a game changer because it makes all the Linux centric dev tools available to Windows without setting up virtual machines or other such nonsense, even running graphical applications these days. The only major pain point I've run into (that isn't "I prefer Linux") is the lack of IPv6 support within WSL 2. If you avoid buying Nvidia hardware, Linux generally "just works", unless you use Windows-only software (which macOS also suffers from) or choose to make your life harder by installing Arch or Gentoo. Ubuntu's snap is a pain for power users who want to hack on their Linux system but if all you want to do is develop or do work stuff, it just works out of the box.
- bmitc 4y agoI centralize all my work through Windows these days (used to be a "Mac person"), but I was pleasantly surprised by Linux Mint recently. I use Ubuntu all the time through WSL2, but I am liking Mint so far as a little Linux GUI / server machine.
- pjmlp 4y ago> Windows probably on par if not more for "work stuff" but falls badly in the coding & tooling department. Given the option, I rather spend my day on VS than XCode, and C#/F#/C++ than Swift/Objective-C, but to each their own I guess. And then there is the whole thing about where macOS Server end up.
- bmitc 4y ago> Mac has the best balance between coding, utility tools and "other work stuff". That maybe used to be true. But today, Windows is that OS. In one OS, I can freely develop in Windows, Docker, WSL2, including near seamless integration of apps, browsers, and even GUIs. And with VS Code, I basically have any OS except macOS (but who cares?) at my fingertips in a single interface. The dev experience is by far the lowest friction between Windows and macOS. And Windows has superior support for external hardware. macOS refuses to work well with anything that doesn't have Apple on the box.
- rvdginste 4y agoSeriously, of all the things you can say about linux, you need to mention that it's a pain to just keep it updated? I am a .net developer and run Debian linux on my work laptop since ages. Keeping the OS and most of the software up-to-date is just "apt-get update; apt-get dist-upgrade". Microsoft has Debian packages for teams, skype, powershell-core, .net (core), azure-cli. Google has Debian packages for chrome. I use a lot of JetBrains' tools and keep those up-to-date using the JetBrains ToolBox. Where I work, we use Google workspace and Slack and I use those through chrome. Just to be clear, most of my development is currently done on Linux using Rider, but I do have a Windows VM (on KVM) for older projects that run on .NET full. The issues I come across, are related to our customers. For example when I am on location and need to connect to external hardware. One example is to connect wirelessly to a WiFi Direct display: this does not work for me and I did not investigate if there are drivers available or not. Another example is DisplayLink to use an external display through a dock: this I checked and there are drivers available and I did have it working at some point, but it broke after a kernel upgrade and it's too much bother to fix it again. Also for some customers we can connect remotely to their systems over VPN, but not all VPN solutions are available (or work out of the box) on Linux. In any case, for my day-to-day work, I don't have any issues at all on Linux and I believe it's very very capable for coding, tooling and other work stuff. I definitely prefer it above Windows and Mac.