Yes!!! "Beware the Share" this is such a succinct way of communicating that which I've been thinking about and practicing for years, and also that is rarely discussed. That made this whole video worth it for me.
Rust does this very nicely with the 'Send' and 'Sync" marker traits. Attempting to share things across threads that are not safe will simply give a type error. I think learning Rust makes you a better concurrency programmer, because it makes you explicitly understand ownership and sharing.
Actually the event horizon of a black hole is not significant and not really a "thing" if you are crossing it, and the laws of physics can go on (though are naturally unobserved), what really pisses on our understanding is the singularity itself. Similar issue, by the way, happens in classical rigid body physics, where a three-body collision is unsolvable.
What's really interesting about this is that it applies to just about everything - talking about patterns and the problems that come with taking things out of context. In the '60s, American traffic engineers came up with a set of design standards that worked really well for keeping people in cars safe when moving at high speeds on motorways, but then f feel into the trap of running that they were just good design principles, rather than context- specific patterns. It turns out that those same design principles are absolutely terrible at keeping people in cars safe anywhere other than a smoothly-flowing, uninterrupted highway, and equally terrible at keeping anyone anywhere other than inside a car safe at all. Unfortunately those are kind of the national design standards in the US and Canada now, and there's a lot of legacy problems related to it auch are going to take a long time to clean up and refactoring (refactoring physical structures is not fun)
Good talk, as usual, especially for us who have always appreciated the connections between computing and philosophy. I would add that Socrates (in Plato's _Apology_, anyway) says that he knows that he knows nothing grand, worthwhile, etc. As my ancient philosophy professor put it years ago: he knows where to get a gyro or where the cobbler works, but not how to run the state or what the good life is exactly, never mind even bigger questions. The software developer and everyone involved in software (like me in security now) more generally should try to recognize that the big context for many software problems are open questions for the *species* - the machine learning stuff (incomprehensible ANNs) is about that.
How do you tell an expert from a novice? A novice would say, “This code doesn’t work”. An expert, “This code works with respect to zero threads”. One would say, “I don’t know this”. The other, “I can’t possibly know this: it’s unknowable”. One would say, “I don’t follow the rules”. The other, “I don’t need to follow the rules: I’m an expert”.
@@JulianSloman First one is wrong. No expert would brag about the nonsense of "this works with zero threads". Others are true. I didn't say who of the guys is the "expert", and who is the "novice".
7:15... It was a language that said "you're not allowed to", so now she had a problem... :-) This is VERY much the same issue a lot of ppl face when they are learning Rust, only not for control flow, but for trying to thoughtlessly share state! After a while they either a) give up stating Rust is a terrible language, or b) become aware of the issues they've been creating in code up until that point, effectively becomming better developers.
It is short for "Mathematics"*, but not a plural. Nouns can be formed in English by adding an "S" as a suffix to an adjective. Common examples are "acoustics" and "graphics". * We just chose to abbreviate it by only removing "ematic" 😝 I am not directly across the pond, I am diagonal, to the south, across the pond but we also use the abbreviation "maths".
And in german, mathematics is called "Mathematik", abbreviated as "Mathe". (Note that TH does not make a special sound here, so we just pronounce it like a regular T.)
2:05 yeah the moment someone says something like that, they are immediately exposed as dangerously incompetent. Except for part of the name, there is nothing common between c and c++
Yes!!! "Beware the Share" this is such a succinct way of communicating that which I've been thinking about and practicing for years, and also that is rarely discussed. That made this whole video worth it for me.
Rust does this very nicely with the 'Send' and 'Sync" marker traits. Attempting to share things across threads that are not safe will simply give a type error. I think learning Rust makes you a better concurrency programmer, because it makes you explicitly understand ownership and sharing.
Actually the event horizon of a black hole is not significant and not really a "thing" if you are crossing it, and the laws of physics can go on (though are naturally unobserved), what really pisses on our understanding is the singularity itself.
Similar issue, by the way, happens in classical rigid body physics, where a three-body collision is unsolvable.
What's really interesting about this is that it applies to just about everything - talking about patterns and the problems that come with taking things out of context. In the '60s, American traffic engineers came up with a set of design standards that worked really well for keeping people in cars safe when moving at high speeds on motorways, but then f feel into the trap of running that they were just good design principles, rather than context- specific patterns. It turns out that those same design principles are absolutely terrible at keeping people in cars safe anywhere other than a smoothly-flowing, uninterrupted highway, and equally terrible at keeping anyone anywhere other than inside a car safe at all. Unfortunately those are kind of the national design standards in the US and Canada now, and there's a lot of legacy problems related to it auch are going to take a long time to clean up and refactoring (refactoring physical structures is not fun)
Good talk, as usual, especially for us who have always appreciated the connections between computing and philosophy. I would add that Socrates (in Plato's _Apology_, anyway) says that he knows that he knows nothing grand, worthwhile, etc. As my ancient philosophy professor put it years ago: he knows where to get a gyro or where the cobbler works, but not how to run the state or what the good life is exactly, never mind even bigger questions. The software developer and everyone involved in software (like me in security now) more generally should try to recognize that the big context for many software problems are open questions for the *species* - the machine learning stuff (incomprehensible ANNs) is about that.
How do you tell an expert from a novice? A novice would say, “This code doesn’t work”. An expert, “This code works with respect to zero threads”. One would say, “I don’t know this”. The other, “I can’t possibly know this: it’s unknowable”. One would say, “I don’t follow the rules”. The other, “I don’t need to follow the rules: I’m an expert”.
The last two must be wrong. An expert wouldn't assume to know that it is unknowable, nor that she doesn't need to follow the rules in general.
@@JulianSloman First one is wrong. No expert would brag about the nonsense of "this works with zero threads". Others are true. I didn't say who of the guys is the "expert", and who is the "novice".
7:15... It was a language that said "you're not allowed to", so now she had a problem... :-)
This is VERY much the same issue a lot of ppl face when they are learning Rust, only not for control flow, but for trying to thoughtlessly share state! After a while they either a) give up stating Rust is a terrible language, or b) become aware of the issues they've been creating in code up until that point, effectively becomming better developers.
I still don't understand why Math is plural on the other side of the pond.
This will change you find out that "math" is short for something else
It is short for "Mathematics"*, but not a plural.
Nouns can be formed in English by adding an "S" as a suffix to an adjective.
Common examples are "acoustics" and "graphics".
* We just chose to abbreviate it by only removing "ematic" 😝
I am not directly across the pond, I am diagonal, to the south, across the pond but we also use the abbreviation "maths".
And in german, mathematics is called "Mathematik", abbreviated as "Mathe". (Note that TH does not make a special sound here, so we just pronounce it like a regular T.)
2:05 yeah the moment someone says something like that, they are immediately exposed as dangerously incompetent.
Except for part of the name, there is nothing common between c and c++
I always thought "Undefined Behavior" to mean "from this statement onwards, execution of the program will only coincidentally be what you expect"