Hacker Newsnew | past | comments | ask | show | jobs | submit | cdsmith's commentslogin

That is certainly an interpretation that has been retrofitted onto the motto...


As for why... it's complicated.

On the one hand, this is a change whose software engineering benefit is very small. (There is a small performance advantage, but it's not significant.) It has a large aesthetic benefit, though, in that it makes the standard library have one less ugly wart. But that wart wasn't really doing anything except being ugly. Some community members have a point of view that "ugly" shouldn't matter, and that in particular, the bar for breaking changes should be very high, and far higher than wart removal.

On the other hand, this particular change should affect extremely little actual code, because defining (/=) explicitly is dumb. When it does affect code, the solution is just to delete the lines of code that are doing the dumb thing. They don't even need to be replaced, because the only reasonable behavior is already provided by the default. Just deleting the dumb code is enough.

On the OTHER other hand, even a small amount of code change can add up to a lot of dependency management work. If just one library somewhere at the leaf of a dependency tree needs it's explicit (/=) deleted, then version bounds need to be added for all upstream bodies of code to ensure that they don't try to build against the old now-broken. Changing all those version bounds across perhaps dozens of packages is far, far more work than just deleting those few lines of code. You can look at this as a broken process, but I don't think anyone has a great answer to dependency management.

So I think it's in the end kind of a coin flip between (a) it's infuriating to some people not that this specific change is being made, but that it indicates the community values aesthetics above backward compatibility, and the absence of almost any practical software engineering benefit makes this a compelling test case upon which to direct their fury, and (b) despite the tiny amount of actual code change, it's quite possible it could lead to a non-trivial amount of coordination work between libraries, and THAT is a real (and not very fun) job.


One of the most important lessons learned by the Haskell community is that we shouldn't worry about whether complete type inference is possible. We should worry about whether type inference can be maintained in the easy cases, while falling back to explicit annotation for the hard cases. All of rank-n types, GADTs, type families, even basic type classes, break complete type inference. The solution has always been to document the limitations, draw as clear a line in the sand as possible, and then go on and introduce those features. This doesn't affect the usability of the language.

What does affect the usability of the language is when (a) the line in the sand isn't very clear from an end-user point of view [see simplified subsumption in GHC 9, for example], or (b) the line is on the wrong side of simple features [see monomorphic local bindings, for example].

I guess what I'm saying is that Idris having minimal type inference is kind of terrible, and the excuse that it's not decidable for dependent types is a flimsy one.


Yeah, I'd say that Haskell has done a phenomenal job for most of its history of maintaining a balance between the interests of researchers, commercial programmers, educators, and enthusiasts/hobbyists. At different times, each of these communities has been inconvenienced by decisions made by the Haskell community, but the community has nevertheless been for the most part welcoming to all of them. On the other hand, some of the darkest chapters of the community have involved power plays where one of these groups feels entitled to sideline the others and decides it should be in charge.

By contrast, a typical mainstream programming language might, say, completely neglect one or more of these communities in favor of whatever is best for commercial programmers. Particularly when, like most mainstream languages, it's mainly funded by those interests.


As the author of the article, I hope it's clear that we're talking about the community that has formed around the programming language. Racial diversity isn't, to the best of my knowledge, mentioned at all in the Haskell Report or the source code to the GHC compiler. But when I'm talking about the community, that is all about the people in that community. Some of the people in that community have very different backgrounds from myself, and I think that's a valuable thing to celebrate and acknowledge.

That said, it wasn't the point of the article. It's fast becoming the point of this comment thread, though, which is unfortunate.


Thanks for the question. I'm the author of the article, and I can talk about why I included that paragraph. It's not because everything has to be about racial diversity. Rather, it's because I was already writing about some kinds of diversity, and when I reflected on people I know in the Haskell community, I realized that we've got some pretty interesting characters, and that this is due to communities like Tidal Cycles. Tidal Cycles is a great example of why something that's not at all important to corporate sponsors is nevertheless a cornerstone of the language community. I've had the chance to meet some really interesting people with interesting stories who I wouldn't have met if Haskell were just a language for writing web services.


Not the parent poster, but I do think it's worth putting a finger on what might simply be a cultural gap between modern (and especially fairly plugged-in) Americans and others who either genuinely have not been socialised into the present-day US discourse about race or are deliberately acting defiant about it due to how it conflicts with the framework that they grew up with.

It seems to me that according to present-day American norms, including a remark such as the one that you did is simply considered good form; you show that even if you are not actively working on the great political causes that are being so eloquently argued to be of existential importance by their protagonists every day, you are certainly aware of them, support the good guys and ready to do your part for their cause if it you are in a situation in which you can contribute. Meanwhile, for those who adhere to a framework in which the prescription for making sure historical instances of racism don't repeat is to banish race as a category from human thinking and discourse as far as possible, the very mention of it in a context where there seemed to be no external reason to is gauche in a similar way to if you suddenly started talking about sexual prowess (taking care to insert a parenthetical remark about what you believe about your own). It doesn't seem to me like your explanation of the "why" here is particularly helpful to cross that gap of expectations, either; it only really makes sense if the reader is already primed to assume that describing people as "interesting characters" and unusual people must at least suggest something about race and gender, but from the other side's perspective this is not any less gauche, especially as it might be taken to suggest that what makes those characters "interesting" to you is just a matter of those characteristics.

Even worse, if the culturally remote reader's degree of familiarity with modern US norms is not zero, the one blurb they likely have in mind is something like "the US has a self-admitted racism problem". In that case, a remark such as the one you made might not just register as introducing a topic that is unsuitable for polite conversation, but actually as betraying attitudes that are opposite to what you wished to communicate - imagine if for instance a speaker of the German police, talking about something mundane such as their strategies for fighting pickpockets in Frankfurt, injected a line lamenting the small number of Jews in the force. Indeed, if my read of US society is correct, antisemitism is one context in which the other (older?) version of antiracism norms still survives in it. To get a rough model of how a given post or statement would sound to the cultural outsider, then, you could try to imagine your post with everything mentioning race replaced with analogous remarks along the "Jewish or not Jewish?" axis.


I think of it as a four-step process. Take Sonia Sotomayor, for a not-currently-controversial example. Step one is that she can't be a Supreme Court justice because she's hispanic. Step 2 is, she's hispanic, but she can be a Supreme Court justice anyway. Step 3 is that she's nominated to be a Supreme Court justice, and nobody mentions that she's hispanic. Step 4 is that, when she's nominated for the Supreme Court, people mention that she's hispanic, but in the same way that they mention that she was born in the Bronx - as background personal-interest information, not as a "does that disqualify her or not" issue.

The US started at step 1. It's moved to step 2. My personal impression is that it was moving to step 3, though I'm sure that at least some people will disagree. But it seems to me that the current progressive approach is dragging us back to step 2, not moving us toward step 4. And I think that the older approach, what you call "a framework in which the prescription for making sure historical instances of racism don't repeat is to banish race as a category from human thinking and discourse as far as possible", would have gotten us at least solidly to step 3, and maybe eventually to step 4.

I don't think dragging everything back to step 2 is progress.


Fair enough. For my part, I didn't include that comment as just an obligatory remark, though. I did so because it occurs to me that, for instance, the only tech community I'm involved in where I have regularly met people who identify as non-binary gender is Haskell. I don't think that's entirely a coincidence, and I do think it's related to the strong role played by non-industry Haskell programmers in the community. So I said so.


You're of course correct that mentioning so-called "race" as a legitimate category at all is extremely divisive outside of a very U.S.-centric and very intellectually-niche discourse, but there's also a sensible norm against injecting any kind of politics in quasi-professional contexts where people should be able to cooperate seamlessly across political, cultural, and intellectual divides.

These tiresome and uninteresting remarks about U.S.-centric political causes, no matter how worthwhile these causes may be on their own terms, stand out as an eminently avoidable reminder of uncomfortable social conflict.


Eminently avoidable as long as you're not wearing the color of your skin out in public.

That's really the crux of all of this. There are people for whom racism is an unavoidable, daily issue. Yet there's no way to bring that up without making people uncomfortable. After being told, "You can't talk about it here; you can't talk about it there", people will eventually say, "Fine, I'm going to talk about it everywhere, because no place seems to be any worse than any other."

I personally am very conflict-averse, and much prefer it when people remain very polite. But reading HN in particular, I've come to realize that a lot of people are still going to insist that racism isn't a problem in the US and demand that others not talk about it. They assume that if they're not seeing it then it's not a problem for anybody -- or worse, they're deliberately inflicting it and hiding among those who are merely obtuse.

I find that so offensive that it overrides even my conflict aversion.


> Yet there's no way to bring that up without making people uncomfortable.

I'm pretty sure that there's plenty of ways to do that. What turns people off to the real, actual problems is casual and unhelpful claims like "the U.S. is an inherently racist/white supremacist country" or the like. What that looks like to outsiders is folks who want to seem like they're meaningfully talking about real issues that some might face, but all they manage to do is to be divisive and stir up pointless conflict for the heck of it. At that point, tuning out is a sensible response.


That sounds to me like an excuse to not engage.

We all watched a man be murdered last year, and HN was filled with people making excuses for the murderer. He was convicted only because every single person watched it; others whose murders weren't caught on film escaped punishment. Much less the numerous others that are less than murder.

When people can't even agree that a murder in front of their eyes was a bad thing, I'm going to say out loud that something is deeply wrong. If that seems like a pointless conflict to you, then it's going to keep happening and I'm going to be shocked that I have to say to your face that it's bad.

If your aggravation about their time offends you more than the injustice done to them, then you know why the tone will keep getting more aggravating.


Thank you for responding and keeping it respectful.


To be clear, the algorithm is proposer-optimal only when compared to other stable matchings. It is still possible that there exists some other matching that would make all proposers happier. It just won't be stable: there will be some pair of proposer and proposee that could switch to immediately increase their happiness, BUT it would set off a chain reaction of further swaps that leave everyone less happy in the end. This was a bit surprising to me.

There's a variant where you run the deferred acceptance algorithm, but then only the proposees who never rejected anyone finalize their decision. All other proposees and their matched proposers split up, and the whole algorithm is run again with the unmatched participants. This time, you end up with a Pareto-optimal matching for the proposers, with respect to their stated preferences. That is, there's no possible way to make anyone happier without making someone else less happy. But it's not stable, and the algorithm is no longer strategy-proof. (In fact, one can prove that no strategy-proof algorithm can guarantee a Pareto-optimal matching!)


Author here. No, it doesn't mean that. If the election is held to determine who wins, then the outcome is who wins, and everyone has opinions about that same outcome.

Contrast this to the matching problem, where the outcome is where ALL the candidates are assigned. You're allowed to have an opinion about where you are assigned. I'm allowed to have an opinion about where I am assigned. These opinions might conflict indirectly because of limited spots, but they don't conflict directly. This is very different from the election case, where if you and I have different opinions about who we want to win, those opinions are always contradictory.


What if an election is held to determine a set of two "finalists"? People might disagree about who the top two candidates are, but they might be satisfied as long as one of their top preferences makes it through to the second round.

Obviously once there are two candidates remaining, Gibbard's Theorem doesn't apply, so I'm guessing that any procedure which reduces the set to two outcomes must itself be subject to strategy, but it would be interesting if allowing people to cast a separate vote in a run-off election was enough to make the first round no longer require strategy.


If the result of the election is the choice of two finalists, then as long as there are more than two candidates, there are more than two possible outcomes. For example, if the candidates are A, B, and C, then the possible outcomes are: (A and B), (A and C), or (B and C), so 3 in all. In general, for n candidates, there are n * (n - 1) / 2 outcomes. By Gibbard's Theorem, then, either there is a dictator, or there is strategy.

Another way to see this: the entire process of choosing two finalists and then having a runoff to choose an ultimate winner counts as a collective decision-making process. That there are two separate votes doesn't actually matter. By Gibbard's theorem, then, if there isn't a dictator, then the entire process is strategic. Since the chance to use strategy doesn't occur in the simple-majority final runoff, by process of elimination, it must occur in choosing the candidates who qualify for the runoff.


Keep in mind that this article was written by a reporter who was unable to talk to the district, and got all their information from a lawyer representing the kid who was suspended. The district itself is prohibited from releasing any information about the case by privacy laws, no matter what the family says or how accurate it is. The same evidence was presented to the school board in an appeal hearing, and they (granted, probably not technical people) did not find it convincing. That doesn't mean the family's lawyer is wrong, but it is worth keeping in mind as you evaluate this. We don't have the whole story here.


It's extremely likely that nobody wants to rock the boat and give an injured party evidence to be used against their employer. Their employer would almost certainly prefer to wrongly punish a student if it has a fraction of a chance at getting them out of a lawsuit.

It's also likely that there isn't a single person in a leadership position with the entire school board who is even slightly technically competent.

Next we already have precedent that IP addresses don't uniquely identify people for the purposes of law. It is incredibly likely that such an action wouldn't pass the sniff test if the IP addresses given were entirely correct.

Lastly even if he actually did try to log in with "i will murder u all of u" no reasonable person would consider this an actual threat without talking with the student. Kids are stupid, and kids say stupid things. Time and again schools fail to address the real problem children before things blow up and then use their persistent failures to justify overreaction to the detriment of students.


Precisely! Even if he did it, for which there's no proof and plenty of counter-evidence, he doesn't deserve to not get an education.


Wow, if only you all saw what regularly occurs in inner-city public schools.

Suspensions like these are common, especially among black boys. I saw all sorts of overly punitive nonsense, not to mention that we had to queue up for an xray + metal detector every day we went to school. Really, really felt like you weren't treated with a shred of dignity.


God, I'm sick of that comment. Far too many institutional wrongdoers hide behind "privacy laws".

If the school board knew that it had incriminating information, it could ask the family to waive its privacy rights, and then if that didn't happen, explain that, without violating any law.

The school admits to punishing this kid based primarily on his IP address. We all know this is utterly worthless. The technical details make it even clearer that this is unreliable.

Also, the teachers uniformly spoke of the kid as quiet, respectful, and studious. This should be worth far more than an IP address. It's not, because administrators consider the opinions of their own teachers to have no value.

AND, let me be blunt here!, even if the kid did do it, which I think highly unlikely, this is NOT an excuse to deprive him of an education!

---

For whatever reason, many people have this fetish for authority, even when that authority through their own words shows their unreliability.

I also think a lot of people respond positively to stories about cruelty and punishment.


Something's weird with that. Gwinnett County schools are out for the summer starting late next week. Most of the "three months" will be when school isn't in session, unless he was planning to attend summer school.


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

Search: