4 ms·
I read the headline, thought to myself "that can't be right, Linus is too smart for that" — then read the article. And the headline is wrong. So are most of the
by jwr 12y ago
I read the headline, thought to myself "that can't be right, Linus is too smart for that" — then read the article. And the headline is wrong. So are most of the comments.
He explicitly says "Parallel code makes sense in the few cases I mentioned, where we already largely have it covered, because in the server space, people have been parallel for a long time" — so most of that rant is about desktop and mobile computers, often called "client-side". Where indeed four cores seem to be more than enough for most needs.
On the "server" side, though (I hate the outdated name), the story is quite different. I can easily make use of many cores, especially with tools like Clojure, that make writing correct concurrent programs much easier.
- pavlov 12y agoWhy do you feel the distinction between client and server is outdated? It seems pretty clear-cut to me... A "client" computer is one that's designed around single-user interaction sessions. It has human interface devices (display, input) on fast interfaces with prioritized OS-level support (interrupts, graphics acceleration, etc). A "server" computer is one where interaction happens over a network connection, and multiple sessions are typically taking place simultaneously.
- ghshephard 12y agoThe difference between client and server can be a bit grey, but I agree, the distinctions are important. A client is about mobility (small size), low power use (low heat, small battery), and very low latency, focus on human-computer interaction experience. A server has fewer power concerns, and is all about throughput. Heat, size, are not as relevant (but not irrelevant). iPhone and iPad are obviously clients. A Mac Pro is a Server. A macbook air is probably a client (though, ironically, it is far more powerful than the $10K servers I had in 1999). A MacBook Pro falls somewhat in the middle, but leans towards client. An iMac is also in the middle, but leans towards server. I think the angst (which I have to some degree as well) about the distinction between Client vs Server, is because it's not completely clear how to position the Mac Pro and iMac. In some benchmarks, the iMac meets, or exceeds the MacPro. But, in terms of sheer throughput for bulk tasks (Video Rendering), you can get a higher top-line performance from the MacPro. And, for day-day interaction, the 5K Display of the iMac (human-computer interaction), beats out the MacPro. [edit: 99.99% of the time, downvotes are immaterial to me, but I'm genuinely intrigued in what the contrary opinion is here - I expect to learn something, please share!]
- acron0 12y ago"Client" and "Server" has nothing to do with the form factor of the device. It's a designation of roles. Typically, servers 'provide' and clients 'consume'.
- laumars 12y agoBingo. The terms are self descriptive: Servers serve, clients request. So I don't understand why anyone would bring form factors into the equation. Particularly when it's well documented that you can turn anything into a server (old laptops / desktops, developer boards such as the Raspberry Pi, etc), and equally a server can act as a client (eg server-to-server API calls)
- rythie 12y agoBeing a server is not about power, a $5 Digital Ocean VPS is a server and it has way less power than Macbook Air you mention as a client. The only thing about a server is that it serves to non local user(s) - it could be could be low powered ARM based RPi or a multi-core Intel thing, it really just depends on it's workload. The Mac Pro is designed as client and same for all current Macs (they don't sell a server anymore), which is how they are typically used.
- quonn 12y agoA server usually offers some kind of service to other computers over a network and runs an OS optimized for that (different scheduler, for example). Neither Mac Pros nor Macbooks are designed for that, so they are clearly not servers.
- pavlov 12y agoI certainly didn't downvote you, but I don't understand why you'd consider the iMac or Mac Pro as servers. Very few people use them in that fashion. The iMac has a 5K display. The Mac Pro has two high-power GPUs. These are not server features because they're designed to provide explosive graphics power for a single user at a time. Using '80s terminology, both those Apple computers would qualify as workstations, IMO... I think an interesting analogy could be made with physical training. Some athletes train for endurance, e.g. running a marathon. Others train for muscle strength, e.g. powerlifting. A server is an "endurance-oriented computer" -- its power needs to be distributed evenly over multiple active sessions. One remote client can't be allowed to hobble the server. In contrast, a client is a "strength-oriented computer". For much of the time, it's sitting idle because the human in front of it is so slow. But when the human makes a decision, the computer needs to do its best to fulfill the task immediately (compositing windows, rendering a web page or 4K video effects, etc.)
- jksmith 12y agoTo your comment, (I haven't read the article) every endpoint should have server functionality. Even if it's a phone. That's how the internet should work, IMO.
- venomsnake 12y agoTotally agree with you on principle. As a person that has always been ultra full stack, jack of all trades developer (lots of browsers, hundreds of tabs, IDEs, servers and the occasional WoW window). The huge benefit of multi core was jump from 1 to 2 (mostly to fix the annoying 100% cpu usage with no way to kill). The benefits from 2 to 4 were marginal at best. So we just don't have to climb much more from there. And for really parallelizable loads we have the GPU.