Live data from Hacker News

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

realworldtech.com

441–450 of 545 posts

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

#441

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…

Good work on Redis. Ruby, however, strikes me as pretty fragile. They can't get it running on Windows, officially, and the third-party Windows installer is hit or miss. Ruby also seems to depend on a specific compiler, gcc. I wouldn't be surprised if it has trouble on ARM.

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

#442
post #436

Earlier quoted context omitted.

Likewise... most of my code runs on Lambda JVMs now. If AWS switches to running JVMs on ARM, and passes the cost savings onto me, I'd be in no position to argue.

JOKE OF THE DAY. And passes the savings onto me. Oh man that’s a good one.

Well, if ARM servers are cheaper for Amazon to run, they're going to want to incentivize customers to switch to ARM. Either by passing on some of the cost savings (even if it's only 5%), or by making the x86 option more expensive.

In the second case, Amazon is still "passing on the cost savings" in a sense, it's just that now they take a higher profit regardless.

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

#443
post #425
post #409

Earlier quoted context omitted.

Maybe it would be interesting to look at the past. Was the PowerBook as heavily used as a developer laptop as the MacBook is today? (or Power Mac vs desktop PC as desktops were more common at the time). I was not in the industry at the time (2000 - 2006) so I don't know the answer.

While the Intel switched helped, at least I thought it was great, the big deal was that OS X was a tremendously usable Unix on amazing laptop hardware. I'm not sure the architecture mattered as much as that did.

Agreed. I switched when there were still G4 PPC laptops just because OS X was a usable Unix with good hardware. The switch to Intel was good, but it wasn’t because I struggled with the architecture. It was for the more powerful CPUs and battery life.

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

#444
Correct me if I am wrong, but isn't this whole dev-prod hardware parity argument contradict with the rise of Docker? I don't know much about ARM or CPU architectures in general, but I have never heard companies testing their Dockerized applications with Docker on different CPU architectures just to make sure that the application works as expected; it can be because everything is on x86 already, but at this point Docker is assumed to be a cross-platform dependency that will be the same between different hosts / OS / architectures. What prevents an abstraction layer like this to be used when it comes to ARM, hence making the whole "If you develop on x86, then you're going to want to deploy on x86" argument incorrect?

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

#445

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'm with Linus on this one. I had the pleasure (?) of working on a C/C++ codebase that compiled on Windows and ten different flavors of Unix. It was all "portable", but all over the place there was stuff like #if defined AIX || defined OSF1 short var; #else int var; #endif And to get it right, you had to compile it on all the platforms and fix all the errors (and preferably all the warnings). Yeah, cross platform is…

Yes, cross-platform development is more work, but that example you gave is the wrong way to do it. It's better to abstract the differences using typedefs, functions, macros, etc., and keep the platform switches in a few isolated places in the code.

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

#446
post #388

I build Go, Rust, C/C++ code for ARM/ARM64 (and MIPS) and it's completely transparent. 99.9% of the code just works, occasionally I need to worry about some details, but just once in a while. Go definitely is the easiest, it's built in: GOOS=linux GOARCH=arm go build Rust is almost as easy to cross build (as long as you have the right GCC toolchains installed!): cargo build --target aarch64-unknown-linux-musl Sooner…

That's all fine and dandy for the software you build, but then if it happens that the easiest way to get some job done is to extend an existing docker image or using an existing docker image in a multistage build, you might trip over the fact that the authors of those other images didn't care enough about your arch of choice to cross compile their stuff.

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

#447

Earlier quoted context omitted.

All of this will be useless, if there is no customers that are interested in new platform. There is a big difference between making existing used platform more efficient and offering new efficient platform for which only few customers are interested.

"Run your code on our boxes" is a very, very small subset of cloud services. Does anyone other than Facebook care what instruction set they're using to ingest images? Does anyone other than Amazon care what instruction set they're using to serve S3 requests? Does anyone other than Google care what architecture they're using to crawl the web or serve ads or do something creepy with neural nets?

I don't know about the standard offerings on cloud platforms, but people who do some sort of scientific computing care a great deal about the architecture and performance. As a C++ programmer, I'm constantly profiling my code to find out bottlenecks and optimize the code. Sometimes I even care if the CPU supports say AVX or some specific instructions.

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

#448

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…

Node and Ruby applications do fail on ARM though, when it comes to native libraries and extensions. And now your whole distro is different than your development machine, which adds complexity. Do I really want to be debugging why node-gyp fails to compile scrypt on the ARM distro on the new Amazon A1 ARM instance (which it did in my case)? And if I solve that, what about the other 2451 dependencies? Let's pessimistic…

I think it will be interesting to see how this plays out in different ecosystems. I’d hazard a guess that ecosystems like Go, JVM and .NET will fare much better in an arm world, compared to languages that more commonly pull in native binaries.

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

#449
post #436

Earlier quoted context omitted.

Likewise... most of my code runs on Lambda JVMs now. If AWS switches to running JVMs on ARM, and passes the cost savings onto me, I'd be in no position to argue.

JOKE OF THE DAY. And passes the savings onto me. Oh man that’s a good one.

As the spot history charts depict, AWS pricing continues to drop.

To break through any floor requires a disruptive change in architecture (CPU or otherwise).

https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-sp...

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

#450

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'm with Linus on this one. I had the pleasure (?) of working on a C/C++ codebase that compiled on Windows and ten different flavors of Unix. It was all "portable", but all over the place there was stuff like #if defined AIX || defined OSF1 short var; #else int var; #endif And to get it right, you had to compile it on all the platforms and fix all the errors (and preferably all the warnings). Yeah, cross platform is…

How many years ago was that? POSIX compliance has come a long way and most of the proprietary vendors (the ones with all the corner cases) are gone. These days not only do platforms like AIX and Solaris have much fewer corner cases, they're even adopting Linux and GNU extensions wholesale. Anyhow, most people can ignore these altogether. Portability between Linux and the BSDs is much easier. macOS is the biggest outlier in terms of corner cases yet in many ways the best supported thanks to the popularity of Homebrew.

C++ is a different matter, but C++ portability is a headache even if you stay on Linux. Likewise, trying to maintain OS-level portability of monolithic codebases between Windows and Unix is a fools errand, which is why Windows Subsystem for Linux (WSL) is likely to only get better.

Post reply on HN