tfoil2 parent
So Alice quits programming and goes back to cooking because Math is Hard. And we wonder why there are gender issues in tech.
I had a completely different reading. I thought the fable portrayed Alice as thoughtful and bright. The punchline is that this talented student was right to leave programming for cooking because the lack of sequential consistency in high-level languages is absurd.
I saw that a few times. Brilliant college minds failing at programming because of legacy and ad-hoc features. They preferred maths and physics, not devoid of arbitrary but, probably tinier and more stable over time.
But is the argument for higher consistency based on the existence of "saner" architecture as in x86, and wasn't argument insufficient in the time the article was written (1998) as well as is now, given that ARM predates the article and its popularity significantly increased since?
I see the reference to the "1998 ACM Subject Classification", but this paper is part of a May 2015 conference: http://www.cs.ucla.edu/~todd/research/pub.php?id=snapl15
Yes, it is from the "Summit oN Advances in Programming Languages (SNAPL)", May 3-6, 2015.
Then ignoring the existence of the weaker memory model of ARM (versus the stronger x86/x64) is even stranger. And even if x86/x64 models are stronger, they still need some fences and using them all the time would be too slow. So I still don't really understand the arguments of the article.
The article does not ignore architectures like ARM. You do need fences, but not all the time - the compiler can avoid fences in places where there is no danger of violating sequential consistency (e.g. on accesses to provably local objects).
Yeah, that's my understanding too. It's not "math is hard let's go cooking" it "fuck this nonsense". It's not math problems that are the problem here, it's inconsistent execution in the name of performance.
To be precise, Alice quits programming because modern languages lack proper concurrency specification, and thus lack actual "Math" in this area. I can sympathize with that.
The concurrency behavior of Java/C++/etc is specified, it's just that the specification doesn't match the model given in the article. It follows a different mathematical model—that doesn't mean that it "lacks actual math".
But the math is currently broken for Java. See http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.112....
Here the authors show that most common compiler optimizations are JMM incompatible.
Well, seems that you are right. I stand corrected.
Would the fable be any different if the character was named Adam?
Or if the main character in the allegory lacked plumbing fixtures altogether and were named C3PO?
She's not much of a cook either, apparently : "A: heat oil in a skillet, and B: add in chopped vegetables"
What don't you like about that? If you heat the vegetables and oil together, they can slowly lose their water and essentially boil, and taste boring; if you let the oil get to the right temperature and then add the vegetables, then they'll cook up nicely, with plenty of Maillard reactions (browning), and taste delicious.
You're clearly a better cook than Alice :)