Live data from Hacker News

Linus Torvalds on Why ARM Won't Win the Server Space

realworldtech.com

211–220 of 545 posts

Re: Linus Torvalds on Why ARM Won't Win the Server Space

#211
post #118

Earlier quoted context omitted.

Smartphones are a good argument for both views IMHO. Native development (as in native machine code executables) on Android is still a terrible experience even though they had a decade to fix it. It's much better on Apple platforms, maybe because they actually cared about developer-experience and native code is a "first class citizen" there. It goes beyond the different instruction set of course and most of the time t…

I bet Apple's experience moving from PowerPC to X86 gave them a leg up as well, and in both cases (PowerPC/X86, MacOS/iOS) they had the power to force developers to cross-develop to maintain access to their platform. Nobody is in a position to force server-side developers to switch to ARM.

From the other perspective too, Google clearly seemed to want the flexibility to change the details of Android architecture on a "whim", seeming to settle on the Linux kernel at the last minute and expecting to support both ARM and x86 and whatever else they felt they wanted. Google's focus on the JVM/Dalvik and making Native hard in Android seems quite intentional, forcing developers to cross-develop in a different way by obfuscating as much code as possible into a virtual machine that they could 100% control abstracted from underlying architecture and even kernel.

Re: Linus Torvalds on Why ARM Won't Win the Server Space

#212

Linus has been wrong before, but here he is clearly and unambiguously wrong. You don't - you NEVER - develop to the details of an architecture. The only exception is when you're doing OS development. Since things that people want to run in the "cloud" are exceedingly rarely OS development, the idea that you'd care about the architecture is quite silly. We have vendors ardently trying to get us to commit to their spec…

> You don't - you NEVER - develop to the details of an architecture.

You don't try to develop to the details of an architecture. You even try not to. Then you try to run it on a different architecture, and you find (some of) the places you developed to your specific architecture even though you didn't mean to.

And that's why Linus is right. It's easy to be architecture-specific by accident. It's really hard to not. And it's going to take time and effort to go to a different architecture. In the real world, few people want to waste their time doing that.

Re: Linus Torvalds on Why ARM Won't Win the Server Space

#213
> That's bullshit. 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).

I know lots of developers who work on macOS, and deploy to Linux. Back when Mac was PowerPC, I knew lots of developers who worked on PowerPC, and deployed to x86. Or worked on 32-bit, and deployed to 64-bit. Or worked on single-core, and deployed to multi-core. Or green threads to kernel threads. Or big RAM to small RAM. Or the opposite of all of these.

This disaster he anticipates just doesn't seem to be a problem in practice. It's nice when your server is exactly the same as your workstation, but it's never been required. Even today, I have x86-64 on my desk and x86-64 on my server, but they're not the same CPUs, and they don't have the same features (or core count, or RAM, or OS, or ...).

> Which in turn means that cloud providers will end up making more money from their x86 side, which means that they'll prioritize it, and any ARM offerings will be secondary and probably relegated to the mindless dregs (maybe front-end, maybe just static html, that kind of stuff).

Are databases also "mindless dregs"? There's a lot of Postgres/MySQL/Mongo/... instances out there, and even if you're worried about the costs of porting, you only need to port those once (which AFAICT is already done for all of the major ones).

If my database service told me they could cut my price by moving my Postgres instance to ARM, I'd click that button in a heartbeat. I have zero fear that anything would be fishy due to it being a different architecture than my workstation.

> Do you really not understand? This isn't rocket science. This isn't some made up story. This is literally what happened, and what killed all the RISC vendors, and made x86 be the undisputed king of the hill of servers, to the point where everybody else is just a rounding error.

I've worked with many companies, and in every case, going with x86 was 100% because of price. We didn't avoid SPARC or POWER or Itanium servers because of endianness or any other technical reason. It was just a lot more expensive.

Likewise, we switched the servers to 64-bit when it was cost effective, not at the same time that our workstations switched.

Re: Linus Torvalds on Why ARM Won't Win the Server Space

#214
post #204

Earlier quoted context omitted.

Android and Windows support mices on tablets.

Doesn't really matter. Mice are not first class peripherals for those mobile applications. Desktop and mobile OSes should remain separate. You don't go around hauling fully loaded semi trailers with a car.

Touch friendly is mouse friendly.

We've known about Fitz's Law since the dawn of the GUI and have decades of study on it. It's not any more efficient to need to "headshot" everything you need in an application 100% of the time, and in fact it is often rather the opposite that it gets in the way of actual efficiency.

Mousing through most "mobile" applications is great, whether "first class" or not.

Desktop and mobile OSes don't need to remain separate, and it's really past time that a lot of super-cramped "desktop apps" got the death they deserved for their decades old RSI problems, accessibility issues, and garbage UX.

Re: Linus Torvalds on Why ARM Won't Win the Server Space

#215
post #16
post #8

Earlier quoted context omitted.

But if there is nothing to develop for... Chicken and egg problem. However, I think that Windows on ARM will soon become a real thing, this could bring the developers, it will also help the ARM devices spread among Linux users. Regarding what Linus wrote, I do not buy it. There is so much stuff can run without cross-compilation: js and other scripts, java, c#. Also look at things like Android and iOS, you are already…

> However, I think that Windows on ARM will soon become a real thing, this could bring the developers, it will also help the ARM devices spread among Linux users. Windows an ARM has been a real thing for years, and it is horrible. Nobody in his right mind would use this for development.

Windows 10 on ARM has come a long way in recent builds. The SKUs have many fewer differences from x86/x64 Windows 10.

On top of that, x86 emulation on it is now stable, including full Win32 emulation, and reports are coming in of even doing things like running Steam and old PC games on ARM devices.

Re: Linus Torvalds on Why ARM Won't Win the Server Space

#216
post #33

It's of course impossible not to respect Linus' opinion and first hand experience in this space, but doesn't this whole post completely ignore the 100 ton blue whale in the room? Namely smartphones . That's an entire enormous segment of the industry and it's nearly 100% (or entirely 100%?) literally develop-on-x86-deploy-on-ARM. Smartphones also fit > "This isn't rocket science. This isn't some made up story. This is…

> but doesn't this whole post completely ignore the 100 ton blue whale in the room? Namely smartphones. This is patently false. Mobile developers do test their apps on smartphones, eventhough google and apple offer VMs. You'd be hard pressed to find a mobile app software house that doesn't have a dozen or so smartphones available to their developers to test and deploy on the real thing.

So you're saying there are already plenty of ARM devices out there to do testing on?

Re: Linus Torvalds on Why ARM Won't Win the Server Space

#217

It's extremely hard to agree with Linus on that. One problem in his argument is that he believes that everybody has a kernel hacker mindset: most today's developers don't care about environment reproducibility at architecture level. The second problem is that he believes that every kind of development is as platform sensitive as kernel hacking, and he even makes the example of Perl scripts. The reality is that one ye…

I think it ultimately depends on how much ARM/RISC-V's price/performance ends up being better than x86.

If it's not much better then people will not switch due to these small annoyances, and there doesn't seem to be any fundamental reason for it being much better (Intel and AMD are perfectly capable of producing top-performing x86 CPUs, and the architecture should not matter much).

Re: Linus Torvalds on Why ARM Won't Win the Server Space

#218
post #156

Earlier quoted context omitted.

Yeah, right, just like the PS3 was intentionally hard to develop for to keep away the rubble. That worked out really great (at least Sony did a complete 180 and made the PS4 SDK a great development environment). https://www.tomshardware.co.uk/sony-playstation-ps3-develope... As long as Android allows running native code via JNI, the security concerns are void anyway. If they are really concerned about security, they…

I guess you haven't been paying attention to the clamping down of the NDK I was talking about. https://android-developers.googleblog.com/2016/06/improving-... https://android-developers.googleblog.com/2017/04/fortify-in... https://android-developers.googleblog.com/2017/08/hardening-... https://android-developers.googleblog.com/2018/10/control-fl... Also Google is working with ARM to adopt the new memory tagging archi…

One article is about enforcing the exvlusive use of public APIs. The rest is about hardening the C/C++ code of AOSP. I dobnot see any "clamping down" here. What am I missing?

Re: Linus Torvalds on Why ARM Won't Win the Server Space

#219

It's extremely hard to agree with Linus on that. One problem in his argument is that he believes that everybody has a kernel hacker mindset: most today's developers don't care about environment reproducibility at architecture level. The second problem is that he believes that every kind of development is as platform sensitive as kernel hacking, and he even makes the example of Perl scripts. The reality is that one ye…

I don't think you are not really disagreeing with Linus - he's not saying ARM is not viable - he is saying it will not win . With your current setup (cross-compiling), are your ARM executables more performant than x86? Or do they have any other advantage at all over x86? Without an advantage, ARM can't possibly win. Having a cheap, viable ARM-native development platform drastically increases the chances of ARM-only k…

He's not saying it won't win, either. He's just saying that for it to win, it needs a viable dev platform. Which, if you reverse cause and effect is blatantly obvious.

If ARM comes anywhere close to viable enough to be "winning", there will be a good market for dev platforms, and somebody will step in and fill the need. Heck, some are even arguing here that the Pine64 already meets that need.

Re: Linus Torvalds on Why ARM Won't Win the Server Space

#220
post #178

It's extremely hard to agree with Linus on that. One problem in his argument is that he believes that everybody has a kernel hacker mindset: most today's developers don't care about environment reproducibility at architecture level. The second problem is that he believes that every kind of development is as platform sensitive as kernel hacking, and he even makes the example of Perl scripts. The reality is that one ye…

It seems likely that, simply, times have changed. There was a time when being on the same platform as the deployment environment was super important, but nowadays the tooling has gotten so much better that it matters a lot less. The proportion of people still writing C code on a day to day basis has dropped... well to pretty much a rounding error. The bigger issue is really that ARM servers aren't that much cheaper t…

It's still the case that environments should be as close as possible. It's easier to achieve now because the number of environments have shrunk significantly.

Nowadays you will be running on a CentOS/Debian server or a Windows desktop, on an AMD64 compatible CPU. Not so long ago, there were tens of Unix and Linux variants with significant differences. It was impossible to support half of them.

Post reply on HN