I'm not sure why you picked continue here? All the diverging control flow instructions have the same type, ! aka "Never". In stable Rust you're not allowed to use its name but it's "just" an empty type and you can easily make one of those yourself - an enum with no variants.
... is something to be used very sparingly. I reckon I write a new one about once a year.
Very often if you think harder you realise you didn't want this, you should write say, a function (from which you can return) or actually you didn't want to break early at all. Not always, but often. If you write more "break 'label value" than just break then you are almost certainly Doing It Wrong™.
Not having put it into practice yet, there is a pattern I use regularly which I plan to replace with the labeled one: I set a flag at the top of the loop I have an inner loop. The inner loop can set this flag. Directly past the inner loop, I check for the flag, then break. I am pretty sure this is exactly what the labeled break is for.
Basically the only parts of the Internet which actually work reliably, around the globe, are the bits needed so that web pages basically kinda work. If you break literally everything else your service is crap, and some customers might notice, but many won't and also some won't have a choice so, sucks to be them. But if you break the Web, now everybody notices that you broke stuff and they're angry.
This is why DoH (DNS over HTTPS) is a thing. It obviously makes no actual sense to use the web protocol to move DNS packet, but, this works and most things don't work for everybody so eh, this is what we have. Smashing the Path MTU discovery doesn't break the web.
Breaking literally everything so long as the web pages work even means you can't upgrade parts of the web unless you get creative. TLS 1.3 the modern security protocol that is used for most of your web pages today, would not work for most people if it admitted that it's TLS 1.3, if you send packets with TLS version 1.3 on them people's "intelligent" "best in classs security" protective garbage (in the industry we call these "middle boxes") thinks it is being attacked by some unknown and unimaginable dastardly foe and kills the data. So TLS 1.3 really, I am not making this up, always pretends it is a TLS 1.2 re-connection, and despite the fact that no such connection ever existed these same "best in class security" technologies just have no idea what's happening and wave it through. It's very very stupid that they do that, but it was needed to make the web work, which matters, whereas actual security eh, suckers already bought the device, who cares.
This situation is deeply sad but, one piece of good news is that while "This Iranian woman can't even talk confidentially to her own mother without using code words because the people in charge there intercept her communications" won't attract as much sympathy as you'd like from some bearded white guy who has never left Ohio, the fact that those people broke his network protocol to do that interception infuriates him, and he's well up for ensuring they can't do that to the next version.
I would expect that the largest factor is cultural, and of course it's possible to inculcate safety culture in a team working on a C or C++ codebase, but it seems to me that we've shown it's actually easier to import the culture with a language which supports it.
Essentially Weak Sapir–Whorf but for programming languages rather than natural languages. Which is such a common idea that it's the subject of a Turing Award speech. Because the code you read and write in Rust usually has these desirable safety properties, that's how you tend to end up thinking about the problems expressed in that code. You could think this way in C, or C++ but the provided tooling and standard libraries don't support that way of using them so well.
I also think that the largest factor is cultural. But my conclusion from this is not that one should import it with a new language while pretending achieving similar results is not possible otherwise. This just gives an excuse for not caring for the existing code anymore, which I suspect is one reason some parts of the industry like Rust ("nobody can expect us to care about the legacy code, nothing can be done until it is rewritten in Rust")
Of course highly correct C code is possible [1]. But ADA makes it easier. Rust makes it easier. You can write anything in any language, that is _not_ the argument. How could you plausibly advocate for a culture that invests a lot of effort [1] into making codes correct, and not also advocate for tools and languages that make it easier to check important aspects of correctness? A craftsman is responsible for his tools. Using subpar tools with the argument that with sufficient knowledge, skill and an appropriate culture you can overcome their shortcomings is absurd.
Rust is also often not the right tool. I looked at it fairly deeply some years ago for my team to transition away from Python/C hybrids, but settled on a fully garbage-collected language in the end. That was definitely the right choice for us.
Women who insist that they specifically get to decide who is or isn't a woman and what women believe aren't new. Phyllis Schlafly managed to ensure the Equal Rights Amendment didn't pass on this same basis. Phyllis would fly from city to city, addressing crowds of women to tell them that women should be at home looking after their kids, not um, flying from city to city making political addresses like she did...
Beware anyone who claims to represent "all" of some large diverse group, such as "Women" or "Floridians".
"Women should have single sex spaces" turns out to be used to justify, "It's OK to be hateful and even violent against women in these spaces so long as your excuse is that you believe they're not actually women" which is bullshit.
Years ago, when I wasn't too tired to spend all day and half the night dancing, I went to Bang Face Weekender - basically imagine a huge multi-room club night except for days and days. I keep the socials for it available because hey, it's a nice memory. This sort of "Single sex spaces" bullshit caused a problem for the last-but-one Bang Face because a new-to-this Security outfit somehow decided it's their job to go remove people who in their view weren't women from a toilet for women. These women weren't causing any problems for anybody else, but because they presumably had the wrong genitals or for some other reason were "suspect" to that Security team, Security dragged them out of a toilet cubicle and threw them out of the site. Other clubbers were of course horrified, and the event runners had to apologise to everybody - because regardless of how many X chromosomes you have, or whether you do or don't have a womb, dragging people out of the toilets because you've got weird ideas about what is or isn't a woman is batshit.
Phyllis Schlafly is an odd comparison to make. She argued that women should stay in traditional roles and out of public life (while as you mention, not following her own advice), whereas JKR and other feminists take the exact opposite view. Not sure I see the relevance of your analogy here.
As for Bang Face last year, what happened is that security staff kicked a group of males out from the women's toilets. I agree that this isn't an ideal outcome, much better would have been if these men had respected that women's spaces are not for them, and stayed out in the first place. The fact that their removal was treated as some sort of scandal shows how far we've lost sight of the rights of women and girls to have single-sex provisions.
There's also just a lot of "No, no, no, I kill the bus driver". A sort of "Greater Fool theory" but for genocide, everybody else is a useful idiot who, having supported your rise, is then next in line to be sacrificed, never for a moment remembering that even if you are the only person to have thought of this - which is unlikely - everybody who understands how this actually works will have been together against you from the outset.
Note that of course Jai's tooling is also written in C++
As to why Rust, there's actual historical information about why Graydon wanted to make it and why Mozilla decided to fund that work after it was started.
Jon has said the intent was that Jai would allow him to make more games, because C++ held him back so much. So, yeah, it would need to be superior to C++ in at least this way, and by at least enough to justify the effort expended, writing C++, to develop Jai.
I mean, he's _allowed_. The Compiler Police aren't going to roll up to his house and take away his Jai compiler if there isn't a quorum of HN users blessing his efforts. But people can point out they don't feel the juice is worth the squeeze. Also, Blow is certainly an advocate for his position, which means this kind of public debate is germane to the question of if _other_ people should adopt Jai.
I think that document is no longer very close to Jai's current state, note that it wasn't edited for quite some time and Jon seems happy to just rip stuff out and replace it wholesale, after all there's only a handful of Jai programmers so if not now then when?
In particular I believe the SOA stuff is gone, my impression (I don't have privileged access) is that SOA is one of those ideas where you think "Oh! This changes everything" and for the next week or two every time you do something you realise SOA would make it better. But a year later you find yourself unwinding some of that SOA mania and you realise eh... this isn't such a great idea that it deserves to be a key language differentiator. It's not useless but it's also not fundamental so maybe write a library or something.
There are a few other data structure tricks which can hit people this way, I remember I had a brief period where I wanted to solve everything with Bloom Filters and then I got better.
In terms of languages you can go try yourself today, the closest might be Ginger Bill's Odin. Shared scepticism for both C++ and modern language trends, syntax is reminiscent though far from identical. I'd be surprised if you hate one but love the other.
Edited: Somehow I removed "no longer" from my initial sentence during editing, which inverted the sense, now fixed.
And under that model the publishers would also do all the scummy things you're familiar with if you've been say a cable TV subscriber. For example bundling four crap things with one good thing and saying that's a 5-for-1 offer when actually it's just an excuse to increase the price of the thing you actually wanted.
This isn't the golden age we might have hoped for, but open access is actually a desirable outcome even if as usual Capitalism tries to deliver the worst possible version for the highest possible price.
"Capitalism tries to deliver the worst possible version for the highest possible price" This is brilliant. So much information packed into one sentence.
Even if you don't have Forward Secrecy, like you decided to use RSA KEX which is a terrible non-default idea even in 2015 let alone today (this feature isn't even present in TLS 1.3 deliberately, lobbying to keep doing this failed), your private key is still needed so a third party CA can't imitate you.
The CAs have never been supposed to know your private key. For a long time now it's straight up forbidden on pain of removal from trust stores for the CAs to learn somebody else's private keys.
For the example of Let's Encrypt your client probably picks a private key and stores it where your web server can use it, but it never sends this key to anybody else. In fact if you care you can even have the key chosen by the web server and literally never send that key to the Let's Encrypt client at all, the client picks up a "Certificate Signing Request" and it goes OK, I see you want a certificate for some key you know but I don't, that's cool I will go ask Let's Encrypt to issue a certificate for that and let you know.
reply