Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Glibc is not Linux, and they have different backwards compatibility policies, but everyone should still read Linus Torvalds' classic 2012 email about ABI compability: https://lkml.org/lkml/2012/12/23/75 Teaser: It begins with "Mauro, SHUT THE FUCK UP!"


man it's always a trip to see how much of a jerk torvalds could be, even if exasperation is warranted in this context (i have no idea), by god, this is not how you build consensus or a high functioning team


The context, from Mauro’s previous message:

> Only an application that handles video should be using those controls, and as far as I know, pulseaudio is not a such application. Or are it trying to do world domination? So, on a first glance, this doesn't sound like a regression, but, instead, it looks tha pulseaudio/tumbleweed has some serious bugs and/or regressions.

Style and culture are certainly open for debate (I wouldn’t be as harsh as Linus), but correcting a maintainer who was behaving this way towards a large number of affected users was warranted. The kernel broke the API contract, a user reported it, and Mauro blamed the user for it.


I'd like to mention that Mauro is a very nice person. I worked briefly with him when I submitted some patches to ZBar and it was the best experience I've had contributing to open source to this day. He gave me feedback and I got to learn new stuff such as D-Bus integration.


When this comes up in conversation it is worthwhile remembering that Linux was built on the team of volunteers centered around Torvalds who was famous for not acting like a jerk. Really. The perception of him among hackers of being a good guy, you could work with, who acknowledged when linux had bugs, accepted patches and was pretty self-effacing is probably the thing that most made that project at that time take off to the stratosphere. Linus was a massive contrast to traditional bearded unix-assholery.

The nature of the work changes. The pressures change. The requirements change. We age. Also the times change too.

But yeah, it is possible to act like a jerk sometime without actually being a jerk in all things. It is also possible to be a lovely person who makes the odd mistake. Assholes can have good points. Life is nuanced.

Of the bajillion emails linus has sent to lkml how many of them can you find that you believe show evidence of being a jerk.

Compare to Theo de Raadt at OpenBSD who have also built a pretty useful thing with their community. Compare also to Larry Wall and Guido van Rossum.

None of us is above reasoned, productive criticism. Linus has done ok.


It’s not my personal style, but there’s plenty of high functioning teams in different domains headed by leaders who communicate like Torvalds. From Amy Klonuchar throwing binders (https://www.businessinsider.com/amy-klobuchar-throwing-binde...) to tons of high level folks in banking, law firms, etc.

Put differently, you can construct a high functioning team composed of certain personalities who can dish out and take this sort of communication style without burning out on it.


I've definitely seen teams that were low functioning because they were so worried about consensus and upsetting someone else that no one ever criticized any decisions any team member made even if they were both impactful and objectively terrible.


This is worse


You've just described Japanese work culture.


That’s too cliche. As a counterpoint, HP and IBM are US firms and also get no shit done. And Japanese groups have their share of jerks, in spades.

Issue is not jerks vs consensus, it’s way more complicated than that.


If you mean cliché as in "widespread and pre-eminent" then I agree, because that it's a fair description of Japanese work culture. The jerk side of it is taken care of by the hierarchy, those who are above you may be a jerk to you, and those on a similar level will instead use passive aggressive tactics but are incredibly unlikely to be a Torvalds style jerk.

If you want to point out where the extra complication is, I'd love to know.


The original comment was "no one ever criticized any decisions any team member made even if they were both impactful and objectively terrible."

That is just false at every level you can imagine. I mean, could a developed country even function under this conditions ? Every team member in most companies would need to get it right in the first try a crazy amount of time for a company to have any reasonable profits, that's just crazy.

On the jerkitude, yes you need to calibrate for the culture observed. They won't be shouting insanities in the open-space, but it's also way more direct that passive aggressiveness: spending 15 mins getting lectured by a coworker at your desk on why your last report is full of errors and you're not pulling your weight is basically as effective in context.


> I mean, could a developed country even function under this conditions ?

Have you worked in Japan?


You need to go below the surface. That guy telling you he's just following the orders just doesn't give a shit about what you're trying to do and wants you to go away.


So that's a no.

From [1]:

> Fear of Decisions

> Decisions are the first step to failure, and nobody wants to fail. But decisions must be made. How does this dichotomy resolve itself? Meetings. Endless meetings and emails, planning documents, pre-planning documents, post-planning documents, meeting documents, and endless discussion of all the things by all the people all the time. The thinking goes, if everyone is involved in the decision-making process, then when something inevitably goes wrong, there’s no individual person to blame! Problem solved.

Also from [1]:

> Crowdthinking

> If you are in a group of Japanese people and ask a question, you will sometimes witness the following sequence of events: > > Everybody looks around at other people > One person begins to suggest something slightly > Slight or emphatic agreement in a domino-effect across the group > > The need to protect social harmony is so deeply ingrained in society that sometimes even in friendly events this will happen, not just at work. This often works well for social questions, but anything work-related will probably best be asked 1:1.

From [2]:

> “It’s not only about the etiquette,” says Yuko Morimoto, a consultant with Japan Intercultural Consulting, a Japan-focused firm that helps foreign companies work effectively with each other. What’s really important is understanding the different styles of communication that different cultures have. Like American’s reputation for being direct. And the Japanese’ predilection for what Morimoto says is just the opposite. The Japanese, say Morimoto, often say no to saying no.

> “They feel hesitant to say I don’t like your product,” Morimoto says. “So they say something like, ‘Oh that’s a good idea. Let us think about it.'”

> “Yes” in Japan doesn’t mean the same thing as “yes” in English. Instead, notes Morimoto, it could mean, “We just met, and I don’t think it’s polite for me to say no right away.”

> “Or they say, ‘Yes, yes.’ But yes means, ‘Yes, I’m hearing you.’ It doesn’t necessarily mean, ‘Yes, I like it,’” she says. “It can be yes-yes, or it can an iffy-yes, or it can be a no-yes.”

> To decipher what’s really being said, you need more information, Morimoto says. Was another meeting scheduled? Was a price agreed on? Was a contract signed? The Japanese, she notes, are more risk-averse than Americans. They want consensus. So you can expect that a Japanese company will take its time making decisions and making sure everyone is on board with them.

Finally, because I think I've helped you enough, every Thursday this[3] Reddit sub publishes a complaint thread. You can learn an awful lot about Japanese work culture from it, and from the regular posts about strange work behaviour, without ever having to leave your home.

[1] https://xevix.medium.com/gaijin-engineer-in-tokyo-aaa9be8919...

[2] https://www.marketplace.org/2015/08/11/world/etiquette-and-r...

[3] https://teddit.net/r/japanlife/


That's a lot sources and I appreciate the effort, but also r/japanlife is a cesspool of people who basically have difficulties to adapt to a foreign culture. It's not a phenomenon specific to Japan, in any country there will be a pool of foreigners staying within their community and sharing/taking advices internally instead of participating in native communities.

Tales of the NHK guy coming for subscription is a good example of that spirit. Every soul in Japan gets NHK visits, just tell it to your friends. Why does that need to end on reddit.

On the "gaijin in Tokyo" experience, I was in an US firm and fucking meeting hell with 20 people in the room and no decision taking within weeks was par for the course. That guy came to Japan for a startup gig, did he even work in the same kind of setups in his origin country ?

I had a look at the rest of the blog, and that's just basic culture shock. Sometimes I feel we should stick a name to it, like we did for the "Paris Syndrome"

From your intercultural consultant quote:

> What’s really important is understanding the different styles of communication that different cultures have.

PS: I kinda love the view from the other side, where accepting foreign workers is basically a long road of training them to fit not just in the company, but in society in general

https://www.yume-tec.co.jp/column/その他/863


> That's a lot sources and I appreciate the effort, but also r/japanlife is a cesspool of people who basically have difficulties to adapt to a foreign culture. It's not a phenomenon specific to Japan, in any country there will be a pool of foreigners staying within their community and sharing/taking advices internally instead of participating in native communities.

That may be true but that would be to underplay the difficulty of integration in Japan specifically, especially compared to other places. The vast majority of foreigners leave within 2 years and very few settle long term, that is not a phenomena I've seen so starkly in other places I've lived in Asia.

> On the "gaijin in Tokyo" experience, I was in an US firm and fucking meeting hell with 20 people in the room and no decision taking within weeks was par for the course.

Again, that may be true, but that doesn't mean that:

a) it's representative of US work culture

b) it's not representative of Japanese work culture

I'm British and I've worked in places that certainly have too many meetings, not enough decision making or responsibility taken, but that is nothing compared to Japan. It's simply on another level here and no amount of saying "it happened to me too elsewhere" is going to change that.


> The vast majority of foreigners leave within 2 years and very few settle long term, that is not a phenomena I've seen so starkly in other places I've lived in Asia.

I'm looking at the OECD stats here: https://stats.oecd.org/Index.aspx?DataSetCode=MIG

Looking at a before pandemic year (2018), that's 519 683 of migrants. Korea has 495 079, and that's basically on par with the UK and twice as much as France (provided France is twice as small in many metrics).

I don't give too much credit to the exact numbers, but Japan has a nonetheless a serious amount of foreigners, mostly from other Asian countries. They blend in much more than western foreigners so it's harder to tell from the look of it. To note there still is a culture shock and I had Chinese coworkers pretty heated up about many aspects, but they were pretty fast to understand how to make things work out.

I don't know your life, but if you traveled enough and got invited to work in a Japanese company, I'd assume you have a relatively high profile and the company inviting you wasn't some small scrappy business.

Big enough businesses are also traditionally slow and cumbersome, they have no incentive for speed and boldness, and if you touch any of the bigger companies making significant change just requires a ton of politics. I really believe that's basically the same everywhere. People might feel it's less static in Europe or USA because of more flashy colors, diversity and more buzz, but try looking at any company of the same size as Panasonic and look at what they're actually doing, and it's usually "not much more" (Think about Ford splitting out a separate EV division from the mother structure because nothing would happen otherwise)

On the people who stay long term, I think it's extremely difficult to judge depending on your position. In particular if you joined "expats" groups and made friends there, the probability a bunch of them leave after a while is usually higher.

I only sporadically met a few foreigners here and there, but 20 years later most of them have families and built a career. But they were not the type to spend their week-end in Roppongi bars either.


From [1], in 2019:

> Resident foreigners totaled 2.22 million -- an all-time high and 1.76% of the population

That doesn't compare to the UK at all, or France. There's also no point in pointing at the inflow without the outflow, as the article points out:

> The number of immigrants to Japan minus the number of people leaving the country came to 165,000, government data released Friday shows.

So, if those OECD figures you supplied are correct, the inflow was dwarfed by the outflow which again is nothing like the UK or France - as a proportion of population or as a total. I'm not surprised. As that great reference, Wikipedia writes[2] (also using OECD figures[3], and in a much better format for comparison):

> Japan receives a low number of immigrants compared to other G7 countries.[9] This is consistent with Gallup data, which shows that Japan is an exceptionally unpopular migrant destination to potential migrants, with the number of potential migrants wishing to migrate to Japan 12 times less than those who wished to migrate to the US and 3 times less than those who wished to migrate to Canada,[10] which roughly corresponds to the actual relative differences in migrant inflows between the three countries.[9] Some Japanese scholars have pointed out that Japanese immigration laws, at least toward high-skilled migrants, are relatively lenient compared to other developed countries, and that the main factor behind its low migrant inflows is because it is a highly unattractive migrant destination compared to other developed countries.[11] This is also apparent when looking at Japan's work visa programme for "specified skilled worker", which had less than 3,000 applicants, despite an annual goal of attracting 40,000 overseas workers.

exceptionally unpopular migrant destination” eh? Again, colour me shocked.

From [4], just the title should be enough:

> Japan’s Labor Productivity Lowest in G7

but it would still be misleading because that sounds *better than the reality:

> Japan ranks twenty-first for labor productivity among the 36 nations of the Organization for Economic Cooperation and Development

Japanese work culture fits the cliché very well and trying to deny it is a stretch of gigantic proportions. What some bloke you met managing to build a career in Japan has to do with Japanese work culture not being deadeningly slow and moribund, only you will know.

[1] https://asia.nikkei.com/Spotlight/Japan-immigration/Japan-im...

[2] https://en.wikipedia.org/wiki/Immigration_to_Japan

[3] https://data.oecd.org/chart/5StJ You can click on the link at the top and compare even better by having it highlight the parts you car about.

[4] https://www.nippon.com/en/japan-data/h00619/japan%E2%80%99s-...


> but there’s plenty of high functioning teams in different domains headed by leaders who communicate like Torvalds

Maybe in the past. It is not acceptable now.

A lot of men from the "old days" are finding that their table thumping "plain talking" (obscenity shouting) ways are getting them sidelined and ignored.

Good.


Some of us would love to work on a team like this. It would be nice to have the option. Your definition of "acceptable" might not actually result in teams that can take on the big challenges we face as a species as men who did find this kind of thing acceptable retire out of the workforce.


We might all die but at least no one's feelings would be hurt, no matter what they did or didn't do.

I am only half joking. It's a good thing no one is being forced to work with Linus. People really need to keep that in mind


If "We've always done it this way and it's a risk to do it differently" was the argument that carried the day, few of us would have to worry about these questions at all because we'd never have gotten out from under feudalism.


> Some of us would love to work on a team like this. It would be nice to have the option

Be the change you wish to see.


You're literally responding to an Amy Klobuchar cite, with a sweeping implication that being a jerk in the workplace is a "men" thing. Wow.



It is not really a competition!

Anybody can be like that, anybody at all. And in my opinion it is a very good thing it is going out of fashion!


Touché


If a person works best in this fashion, who are you to say it is unacceptable?


Are the teams high functioning because of that, or despite that?


I would assume a little of both. I've seen weeks wasted just because someone wouldn't say "that's a bad idea". I've also seen whole projects turn to crap, and then get canceled, when people that new better decided to remain silent, to avoid conflict.

Through my years, it seems to be increasingly rare to find disagreeable people, and that agreeableness is being favored/demanded. I'm not one to judge if it's working or not, but when I see people getting upset at managers because the manager criticized their work/explanation during the presentation of that work, which is literally meant for criticism, I know quality coming from that group will be impacted. Maybe not surprising, but many of these people are new graduates. The few "senior" people I know, like this, are from companies who are in the process of failing, in very public ways.

I think the ideal scenario is a somewhat supportive direct manager, and a disagreeable, quality demanding, manager somewhere not far above, keeping the ship from sinking.


I don't work in IT, but in the medical field. We have the advantage/disadvantage of working in many teams during our training (around 20-30). There are varying cultures in teams, and what I found was that teams with high levels of criticism / conflict generally functioned the poorest. Patient care was delivered despite the dysfunction and toxic culture, but it also created an environment where staff were unhappy, fearful of mistakes, and avoidant. The best and most effective teams I worked in had a less hierarchical structure, but were led strongly, with good team working and communication.

That's anecdote, but there's evidence that certain team styles lead to more effective work [1], and suggestion that serious failures of organisations relate to cultural workplace toxicity and leadership [2].

I've seen in the thread a slight strawman argument that 'people too timid to say what they think about something leads to poorer working' or similar. I totally agree with that, but good communication is not what we're talking about here, and people can be clear, confident and respectful.

[1] https://www.civilitysaveslives.com/theevidence [2] https://blogs.lse.ac.uk/politicsandpolicy/30566/


My unsubstantiated guess is that the Kernel team has a lot of intelligent people but not on the emotional and empathy field. And some of them are really full of themselves, so you need to get them off their high horses


That probably works if people get bribed with interesting enough projects (Linux) or money (banks, lawfirms...). Most other projects probably fall apart before you can blink an eye


Speaking about consensus - there is another thread on the HN where people complain about Android 13 UI. I guess that was built with a healthy dose of consensus.

The point is - sometimes you need a jerk with a vision so that the thing you're building don't turn into amorphous blob.


You need someone with vision who enforces strict adherence to that vision. I'm not convinced you have to be a jerk to do that though.


Yes, you don't need to be a jerk to do that. Linus Torvalds used to be a jerk (perhaps still is, but I think much less so these days). Do you have a non-jerk with Torvalds' vision?


The old quote: I would trust Einstein, but I wouldn't trust a committee of Einsteins.


How is Steve Jobs getting left out of this conversation


Maybe because: if you cannot say anything good about a dead person, don't say anything.


>by god, this is not how you build consensus or a high functioning team

Says you, while criticizing Linus Torvalds from 2012. Who has a better track record of building consensus and high functioning teams ?


Says Linus Torvalds from 2018…

> My flippant attacks in emails have been both unprofessional and uncalled for. Especially at times when I made it personal. In my quest for a better patch, this made sense to me. I know now this was not OK and I am truly sorry.

> The above is basically a long-winded way to get to the somewhat painful personal admission that hey, I need to change some of my behavior, and I want to apologize to the people that my personal behavior hurt and possibly drove away from kernel development entirely.

https://lkml.org/lkml/2018/9/16/167

He still writes very frankly, but he generally doesn’t resort to personal insults like he did in the past.


That doesn't change his point about building high functioning teams in the past, though. Just that he is capable of adapting to the times. He had 27 years of career leading Linux before 2018. Successful, by any measure.


> Says Linus Torvalds from 2018…

He was successful between 2012 and 2018 with that style. The track record is still there.


I think if you take it out of context (which most people do), it looks a lot worse than it is.

A very senior guy who shouldve known better was trying, fairly persistently, to break a very simple rule everybody agreed to for a very bad reason. Linus told him to shut the fuck up.

I wouldnt say that Linus's reaction was anything to look up to but I wouldnt say that calling the tone police is at all justified either.


I mean, the guy sent one short email before Torvalds flew off the handle; that’s hardly “trying persistently” to break a rule. I can think of a thousand assertive ways to tell the guy to shut up that wouldn’t have required behaving like an angry toddler.


> by god, this is not how you build a consensus or a high functioning team

I beg to differ. Linus Torvalds is an example for us all, and I’d argue he has one of the most, if not the most, highly functioning open source teams in the world. The beauty in open source is you’re not stuck with the people you do not want to work with. You can “pick” your “boss”. Plus, different people communicate differently. Linus is abrasive. That is Okay because it works for him. What is not okay is having other people policing the tone in a conversation. Linus had this same conversation with Sarah Sharp, I’ll post the relevant quote below:

Because if you want me to "act professional", I can tell you that I'm not interested. I'm sitting in my home office wearign a bathrobe. The same way I'm not going to start wearing ties, I'm also not going to buy into the fake politeness, the lying, the office politics and backstabbing, the passive aggressiveness, and the buzzwords. Because THAT is what "acting professionally" results in: people resort to all kinds of really nasty things because they are forced to act out their normal urges in unnatural ways.


> man it's always a trip to see how much of a jerk torvalds could be, even if exasperation is warranted in this context (i have no idea), by god, this is not how you build consensus or a high functioning team

True. I think Linux could've been pretty successful if someone with good management practices had been in charge from the start.


> by god, this is not how you build consensus or a high functioning team

Linus has been pretty successful so far. There's not just "one style" that works.


maybe it is how you build the world's most popular operating system?

because he did


People often think that because jerks work at successful companies, you need to be a jerk to be successful. It’s more the other way around: a successful firm can carry many people who don’t add value, like parasites.

Guarantee you Linus wasn’t this bad in the 90s.


I think he's not this bad these days? He issued some public apologies for his behaviour. He gave us Linux and Git. Yes, he used to be an asshole, but he still did way more for the betterment of humanity than most people.


Yep Linus is reformed these days. He took some time off and went to sensitivity training a few years ago. I'm sure like all humans he has bad days and makes mistakes, but all in all he's really trying.


> Guarantee you Linus wasn’t this bad in the 90s.

Guarantee you that Linux was not that big and influential in the industry in the 90s.


Everyone I knew ran Linux in the late 90's, I chose to run FreeBSD. I guarantee you Linux was very influential. Solaris was its only real competitor after a while, and Sun went all Java and screwed up its OS.


naw man, let the old git be. he is a lovely old man. one day we wont have people like this. he gave more than he took.


He's a product of a different time. Personally, I love his attitude -- wouldn't want to work under him though.


Glibc is GNU/Linux though and cannot be avoided when distributing packages to end users. If you want to interact with the userspace to do things get users, groups, netgroups, or DNS queries you have to use glibc functions or your users will hit weird edge cases like being able to resolve hosts in cURL but not your app.

Now, do I think it would make total sense for syscall wrappers and NSS to be split into their own libs (or dbus interfaces maybe) with stable ABIs to enable other libc's, absolutely! But we're not really there. This is something the BSD's got absolutely right.


There are other libc implementations that work on Linux with various tradeoffs. Alpine famously uses musl libc for a lightweight libc for containers. These alternate libc implementations implement users/groups/network manipulation via well-known files like /etc/shadow, /etc/passwd, etc. You could fully statically link one of these into your app and just rely on the extremely stable kernel ABI if you're so interested.


We're not disagreeing. You can, of course, use other libc's on Linux the kernel, but you cannot use other libc's on GNU/Linux the distro that uses glibc without some things not working. This can be fine on your own systems so long as you're aware of the tradeoffs but if you're distributing your software for use on other people's systems your users will be annoyed with you.

Even Go parses /etc/nsswitch.conf and farms out to cgo when it finds a module it can't handle. This technically doesn't work because there's no guarantee that the hosts or dns entries in nsswitch have consistent behavior, it's just the name of a library you're supposed to dlopen. On evil, but valid, distro resolv.conf points to 0.0.0.0 and hosts module reads an sqlite file.


> you cannot use other libc's on GNU/Linux the distro that uses glibc without some things not working

As the comment your replying to points out, you can statically link your libc requirements and work on any Linux distro under the sun.

You can also LD_PRELOAD any library you need, and also work on any Linux distro under the sun. This is effectively how games work on Windows too, they ship all their own libraries. Steam installs a specific copy of the VCREDIST any given game needs when you install the game.

If you are not releasing source code, it's unreasonable to think the ABIs you require will just be present on any random computer. Ship the code you need, it's not hard.


> Now, do I think it would make total sense for syscall wrappers and NSS to be split into their own libs (or dbus interfaces maybe) with stable ABIs to enable other libc's, absolutely!

I worked on this a few years ago: liblinux.

https://github.com/matheusmoreira/liblinux

It's still a nice proof of concept but I abandoned it when I found out the Linux kernel itself has a superior nolibc library that they use for their own tools:

https://github.com/torvalds/linux/tree/master/tools/include/...

It used to be a single header but it looks like they've recently organized it into a proper project!

> This is something the BSD's got absolutely right.

BSDs and all the other operating systems force us to use their C libraries and the C ABI. I think Linux's approach is better. It has a language-agnostic system call binary interface: it's just a simple calling convention and the system call instruction.

The right place for system call support is the compiler. We should have a system_call keyword that makes it emit code in the aforementioned calling convention. With this single keyword, it's possible to do literally anything on Linux. Wrappers for every specific system call should be part of every language's standard library with language-specific types and semantics.

An example of one such language is Virgil by HN used titzer:

https://news.ycombinator.com/item?id=28283632


But there are other "Linux"'s that are not GNU/Linux which was I think the point. Like Android, which doesn't use glibc, and doesn't have this mess. I think that was one of the things people used to complain about, that Android didn't use glibc, but since glibc seems to break ABI compatibility kinda on the regular that was probably the right call.


Solaris had separate libc, libnss, libsocket, and libpthread, I think?

Unlike many languages, Go doesn't use any libc on Linux. It uses the raw kernel API/ABI: system calls. Which is why a Go 1.18 binary is specified to be compatible with kernel version 2.6.32 (from December 2009) or later.

There are trade-offs here. But the application developer does have choices, they're just not no-cost.


If in distribution discussions Linux is name for the operating system and shell, downplaying the role of GNU, then it is also fair game to say here: Linux does not have a stable ABI because glibc changed.


Really appreciate your stuff Bjorn, this link always brings a smile to my (too young to be cynical) face.


Thanks!


I am no longer able to see this comment. It says the message body was removed.

Anyone else? I'll have to assume this is the history of how we built great things being deleted in realtime.


I think lkml.org has issues with lots of traffic: https://lore.kernel.org/lkml/CA+55aFy98A+LJK4+GWMcbzaa1zsPBR...




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: