16 ms·
To quote Linus Torvalds: "Some people think that "the cloud" means that the instruction set doesn't matter. Develop at home, deploy in the cloud. That's bull*
by Torkel 6y ago
To quote Linus Torvalds:
"Some people think that "the cloud" means that the instruction set doesn't matter. Develop at home, deploy in the cloud.
That's bull*t. If you develop on x86, then you're going to want to deploy on x86, because you'll be able to run what you test "at home" (and by "at home" I don't mean literally in your home, but in your work environment)."
So I would argue there is a strong connection.
- bubblethink 6y agoBut that's the other way round. If you have an x86 PC, you can develop x86 cloud software easily. You don't develop cloud software on a mac anyway (i.e., that's not apple's focus). You develop mac software on macs for other macs. If you have to develop cloud software, you'll do so on linux (or wsl or whatever). What is the grand plan here ? You'll run an arm linux vm on your mac to develop general cloud software which will be deployed on graviton ?
- bigiain 6y ago> You don't develop cloud software on a mac anyway I've got anecdata that says different. My backend/cloud team has been pretty evenly split between Mac and Windows (with only one Linux on the desktop user). This is at a Java shop (with legacy Grails codebases to maintain but not do any new development on).
- skinkestek 6y ago> If you have to develop cloud software, you'll do so on linux (or wsl or whatever). I think you are vastly underestimating how many people use Mac (or use Windows without using WSL) to develop for the cloud.
- wolfgke 6y ago> I think you are vastly underestimating how many people use Mac (or use Windows without using WSL) to develop for the cloud. The dominance of Macs for software development is a very US-centric thing. In Germany, there is no such Mac dominance in this domain.
- unicornfinder 6y agoTo be fair in the UK Macs are absolutely dominant in this field.
- physicsguy 6y agoDepends very much what you're doing; certainly not in my area (simulation software) at least, not for other than use as dumb terminals.
- ahartmetz 6y agoYes, in Germany it's mostly Linux and Lenovo / Dell / HP desktops and business-type laptops. Some Macs, too.
- evgen 6y agoGiven the fact that the US has an overwhelming dominance in software development (including for the cloud) I think that the claim this is only a US phenomenon is somewhat moot. As a simple counter-point, the choice of development workstation in the UK seems to mirror my previous experience in the US (i.e. Macs at 50% or more.)
- nostrebored 6y agoSame in South Africa (50% mac, 30% windows, 20% ubuntu) and Australia.
- ChuckNorris89 6y agoMy experience in Germany and Austria mirrors GPs experience with windows/linux laptops being the majority and Mac being present in well funded hip startups.
- wheels 6y agoI have no idea where in Germany you're based, or what industry you work in, but in the Berlin startup scene, there's absolutely a critical mass of development that has coalesced around macOS. It's a little bit less that way than in the US, but not much.
- foobarian 6y agoI can say our company standardized on Macs for developers back when Macs were much better relative to other laptops. But now most of the devs are doing it begrudgingly. The BSD userland thing is a constant source of incompatibility, and the package systems are a disaster. The main reason people are not actively asking for alternatives is that most use the Macs as dumb terminals to shell into their Linux dev servers, which takes the pressure off the poor dev environment. The things the Mac is good at: 1) It powers my 4k monitor very well at 60Hz 2) It switches between open lid and closed lid, and monitor unplugged / plugged in states consistently well. 3) It sleeps/wakes up well. 4) The built in camera and audio work well, which is useful for meetings, especially these days. None of these things really require either x86 or Arm. So if a x86 based non-Mac laptop appeared that handled points 1-4 and could run Linux closer to our production environment I'd be all over it.
- unicornfinder 6y agoI think you've hit the nail on the head, but you've also summarised why I think Apple should genuinely be concerned about losing marketshare amongst developers now that WSL2 is seriously picking up traction. I started using my home Windows machine for development as a result of the lockdown and in all honesty I have fewer issues with it than I did with my work MacBook. Something is seriously wrong here.
- ChuckNorris89 6y agoI think Apple stopped caring about devs marketshare a long time ago and instead is focusing on the more lucrative hip and young Average Joe consumer. Most of the teens to early 20 somethings I know are either buying or hoping to buy the latest Macs, iPads, iPhones and AirPods while most of the devs I know are on Linux or WSL but devs are a minority compared to the Average Joes who don't code but are willing to pay for nice hardware and join the ecosystem.
- tuatoru 6y agoLooking at the arch slide of Apple's announcement about shifting Macs to ARM, they want to people to use them as dev platforms for better iPhone software. Think Siri on chip, Siri with eyes and short term context memory. And as a byproduct perhaps they will work better for hip young consumers too. Or anyone else who is easily distracted by bright colours and simple pictures, which is nearly all of us.
- leadingthenet 6y agoMac is actually way better for cloud dev than Windows is, since it's all Unix (actual Unix, not just Unix-like). And let's be honest, you'll probably be using docker anyway.
- jchw 6y agoIf the cloud is mostly UNIX-like and not actual UNIX, why would using “real UNIX” be better than using, well, what’s in the cloud?
- Koshkin 6y agoAgree, although I think this is kind of nitpicking, because "UNIX-like" is pretty much the UNIX we have today on any significant scale.
- TickleSteve 6y agoArguably now, with WSL, Windows is closer to the cloud environment than macOS. Its a true Linux kernel running in WSL, no longer a shim over Windows APIs.
- socialdemocrat 6y agoThat is just utter pain though. I’ve tried it and I am like NO THANKS! Windows software operates too poorly with Unix software due to different file paths (separators, mounting) and different line endings in text files. With Mac all your regular Mac software integrates well with the Unix world. XCode is not going to screw up my line endings. I don’t have to keep track of whether I am checking out a file from a Unix or Windows environment.
- mmm_grayons 6y agoYour line-ending issue is very easy to fix in git: `git config --global core.autocrlf true` That will configure git to checkout files with CRLF endings and change them to plain LF when you commit files.
- flohofwoe 6y agoI develop on Mac, but not mainly for other Macs (or iOS devices), but instead my code is mostly platform-agnostic. Macs also seem to be quite popular in the web-frontend-dev crowd. The Mac just happens to be (or at least used to be) a hassle-free UNIX-oid with a nice UI. That quality is quickly deteriorating though, so I don't know if my next machine will actually be a Mac.
- bubblethink 6y agoTrue, but then the web-fronted dev stuff is several layers away from the ISA, isn't it ? As for the unix-like experience, from reading other people's accounts, it seemed like that was not really Apple's priority. So there are ancient versions of utilities due to GPL aversion and stuff. I suppose docker, xcode and things like that make it a bit better, but my general point was that didn't seem like Apple's main market.
- Siira 6y agoIt works great though, thanks to Homebrew. I have had very few problems treating my macOS as a Linux machine.
- cat199 6y ago> So there are ancient versions of utilities due to GPL aversion and stuff. They're not ancient, but are mostly ports of recent FreeBSD (or occasionally some other BSD) utilities. Some of these have a lineage dating back to AT&T/BSD Unix, but are still the (roughly) current versions of those tools found on those platforms, perhaps with some apple-specific tweaks.
- chrisseaton 6y ago> You don't develop cloud software on a mac anyway You must be living in a different universe. What do you think the tens of thousands of developers at Google, Facebook, Amazon, etc etc etc are doing on their Macintoshes?
- deleted 6y ago[deleted]
- Kye 6y agoThey individually have a lot of developers, but the long tail is people pushing to AWS/Google Cloud/Azure from boring corporate offices that run a lot of Windows and develop in C#/Java. edit: https://insights.stackoverflow.com/survey/2020#technology-programming-scripting-and-markup-languages-professional-developers https://insights.stackoverflow.com/survey/2020#technology-pr...
- danans 6y ago> What do you think the tens of thousands of developers at Google ... are doing on their Macintoshes? I can only speak of my experience at Google, but the Macs used by engineers here are glorified terminals, since the cloud based software is built using tools running on Google's internal Linux workstations and compute clusters. Downloading code directly to a laptop is a security violation (With an exception for those working on iOS, Mac, or Windows software) If we need Linux on a laptop, there is either the laptop version of the internal Linux distro or Chromebooks with Crostini.
- bubblethink 6y ago>What do you think the tens of thousands of developers at Google, Facebook, Amazon, etc etc etc are doing on their Macintoshes? SSH to a linux machine ? I get that cloud software is a broad term that includes pretty much everything under the sun. My definition of cloud dev was a little lower level.
- bigiain 6y agoThis is the same Linus who's recently switched his "at home" environment to AMD... https://www.theregister.com/2020/05/24/linus_torvalds_adopts_amd_threadripper/ https://www.theregister.com/2020/05/24/linus_torvalds_adopts...
- MaxBarraclough 6y ago> If you develop on x86, then you're going to want to deploy on x86 I can see this making sense to Torvalds, being a low-level guy, but is it true for, say, Java web server code? Amazon are betting big on Graviton in EC2. It's no longer just used in their 'A1' instance-types, it's also powering their M6g, C6g, and R6g instance-types. https://aws.amazon.com/about-aws/whats-new/2019/12/announcing-new-amazon-ec2-m6g-c6g-and-r6g-instances-powered-by-next-generation-arm-based-aws-graviton2-processors/ https://aws.amazon.com/about-aws/whats-new/2019/12/announcin...
- vbezhenar 6y agoI agree about Java. I'm using Windows to write Java but deploy on Linux and it works. I used to deploy on Itanium and also on some IBM Power with little-endian and I never had any issues with Java. It's very cross-platform. Another example is android apps development. Most developers use x86_64 CPU and run emulator using intel android image. While I don't have vast experience, I did write few apps and never had any issue because of arch mismatch. High level languages mostly solved that issue. Also note that there are some ARM laptops in the wild already. You can either use Windows or Linux. But I don't see that every cloud or android developer hunting for that laptop.
- ravedave5 6y agoIt works until it doesn't. We had issues where classes were loaded in a different order on linux causing issues that we could not repro on windows.
- MaxBarraclough 6y agoInteresting, but in that case you changed OS rather than changing CPU ISA, so not quite the same thing.
- mark-r 6y agoNo, it's exactly the same thing. The more variables you change, the harder it will be to debug a problem.
- ben-schaaf 6y agoIf you're on a low enough level where the instruction set matters (ie. not Java/JavaScript), then the OS is bound to be just as important. Of course you can circumvent this by using a VM, though the same can be said for the instruction set using an emulator.