What Unix Cost Us (2020) [video]
youtube.com
youtube.com
The middle section comparing UNIX culture to colonialism was okay but kind of a long bow to draw and bordering on off topic.
And the ending about meritocracy and blaming straight white men just came out of nowhere and didn't fit at all. It seemed like a kind of bait-and-switch; I came for the tech talk about UNIX, and ended up sitting through the last five minutes out of politeness.
In answer to the question about "who should be excellent to whom?", the simple answer is "all of us". But to bring it back to the title of the talk, UNIX doesn't come into it. Cultural problems don't come from UNIX. UNIX is not costing us anything there.
The sad part is, it terms of learning skills, this is literally the most equality laden industry.
You can used a decade old computer, a used raspberry pi, an old discarded laptop and learn, code, read, play. There's no wall, no secret knowledge, and OSS software has code, and man pages, and information everywhere.
There are endless websites and communities, forums, mailing lists, and no one cares who 'webname45' is, or what their skin colour is, or orientation.
This field is about intellect, not about going to a entitled school, or even school at all! You can be a high school drop out, and easily succeed here! So many people are self taught, and it has nothing to do with privilege, or cost, or access, none... none of that is a barrier to learn in this field.
Complaining about "this is complex" is asinine, and conflates "learning stuff" with privilege.
"Learning stuff" is not exclusionary, when there is no bar, no restrictions on doing so. When anyone can do so.
People growing up in third world nations, malnourished, hungry, poor or no schooling, with english as a second language, easily pick this stuff up.
Because all it takes is intellect, raw intellect. Not learning, not background, no help needed, no money needed, but just intellect and reading.
And if you're going to call intellect or "knowing stuff you can understand for free" barriers, it's you that's the problem.
Why?
Because in the 1980s, when Dundee was the heroin death and teenage pregnancy capital of Europe and unemployment was at something like 45%, one of the employers that *was* there was Timex, where they made the Sinclair ZX Spectrum, and so everyone had a ZX Spectrum because everyone's dad "knew a man down the pub who could get them". Everyone owned one, so everyone who had a modicum of talent could write games for them, and if your games were any good then within a day or two everyone in your high school had a copy of it.
Loads of folk in the tech industry who grew up in Scotland in the 1980s owe their livelihood to some guy in the Planet Bar in Lochee who could get knocked Spectrums for 100 quid...
The author mentions that the C CPU and memory model is based on a single-core, linear-memory background that belies the complex internals of modern CPUs. Then he mentions Rust as an example of a departure from that model. How is Rust better able to utilize modern CPU features (multi-core, pipelined, out-of-order...) and GPU?
I don't use Rust very much, so someone correct me if I'm wrong, but the ownership and borrowing system makes the compiler fail if you transfer data to child threads and then use it in the main one. It's just safer to parallelize code, and you'll do it! (unlike in C, where it may be better not to risk it)
Well, it is a systems implementation language, so it cannot, and should not, impose too many guardrails.
And yes, sometimes systems implementations need to do things that even all the checks built into Rust would scream loudly about. Rust, which is also meant to implement system code with, acknowledges this duality, that's why the `unsafe` keyword exists.
And while the complexity of avoiding race conditions does exist, we have good solutions for it. One such solution is CSP. Passing state and synchronizing via messages is an incredibly natural and logical way to think about the structure of concurrent codebases.
> Rust, which is also meant to implement system code with
This has become a popular meme, but it just ain't so.
Assembly language has this model, and the complex internals of modern CPUs are largely hidden from it as well.
As for presence, unless something has radically changed, most researchers at CERN used a mix of Windows and OS X, when I was there 20 years ago.
Even though everything else used UNIX (Solaris)/Linux.
Back in those days, I was the only one on my team that even bothered to test the recently made available, Scientific Linux.
What about Unix/Linux being easier to automate, what about them having better performance on some important axes (like file systems)?
What about it being easier to open up and tweak? To reach inside the kernel?
Windows is just as easy to automate, don't pretend it is a UNIX.
Windows source code is available for a fee.
https://www.microsoft.com/en-us/sharedsource/
As for Windows HPC in general, https://azure.microsoft.com/en-us/solutions/high-performance...
So when one needs to open the pockets, other options are taken.
It is not different from picking UNIX source tapes instead of paying for VAX/VMS licenses.
I doubt that Windows licensing costs are that significant compared to HPC hardware. If there are good technical reasons to run on Windows, licensing shouldn't be an issue.
Windows source code only being available through a tedious process might be a big problem. The free beer part is only a small aspect, and being accessible might be more important (as I said).
You haven't reacted to Windows filesystems seeming slower (can only judge from my work PC), and slow filesystem are pretty sure a bad thing for many HPC workloads.
I don't know much about Windows administration, but from all I've witnessed it's a lot of manual clicking around and fixing configurations that get periodically overridden. Scripting tools, like Powershell, and package managers for sure exist, but Windows never had an equally pronounced administration culture like Unix had. Heck, look at cmd, it's a bad joke (and I still begrudgingly use it because Powershell never seemed inviting to me to learn, and doesn't seem nice for interactive use).
It might even have become better with Powershell and everything, but things don't change overnight.
For kicks I asked ChatGPT about it and it basically told me the same thing.
PS: not a fanboy, I'm writing this from my Windows dev machine.
Kind of ChromeOS and Android kind of have been doing, depending on the Linux kernel and little else.
And then userspace IO which it seems will never work.
Or perf cache-misses / tiptop IPC for that matter.
And it has some puzzling examples. For example if you want to kill a process according to the presenter you need "ps auxwww | grep process_name | grep -v grep | awk '{print $2}' | xargs kill -9". He compares that to GUI Mac OS process manager and how the Unix way is exclusionary for anybody other than straight white men.
Well, how about "pkill process_name"? How can you put the GUI way into a script? Should we replace all code with GUIs, even the presenter's Rust and Python? Why does he pretend that Linux graphical desktop environments like Gnome or KDE don't exist? Can we answer any of these questions without whitestraightmansplaining? Press the flag story button to find out.
Because only White people speak either English and/or Romances. Sure.
*edit:* as trabant00 pointed out, this is actually brought up by the speaker towards the end of the video, I didn't catch this the first time. I apologise for jumping to conclusions here.
Then read my comment again. I am opposing bringing race and gender politics into Unix discussion.
That's not what the talk is about, that's one of the examples of brokenness he's talking about, as is the kill example, and yes they are deliberately troll-y examples.
The talk is about the very last statement "sometimes you have to drop your tools and make new ones" whether that's "everything is a file", "do one thing and do it well" (the ps example), or the way communities are structured. You don't have to agree with him on any of them but to dismiss them as "whitestraightmansplaining" is to duck as the point flies over your head.
Go ahead and make them. I see no army of white straight men with unix swastikas stopping everybody else from making their kernel/OS exactly the way they want it.
The talk is not about building new stuff. The talk is about attacking some people based on their race, gender and sexual orientation. The talk is about gaining power over a tool and a community, ousting the ones who built it because "it's wrong and we'll fix it". The talk is political with a thin veneer of tech.
The talk is what it is, the points are the one he makes, there's no emperor's clothes that only you can see but fly over my stupid old head. If the talk would be about building there would be a presentation of some code skeleton or at least some design schemas.