Sup nerds, I'm back from Strange Loop! I have a million ideas I want to write about now, but I'll stick to one of the lighter, sillier ones. Based on a claim by (I think) Jess Kerr, who said something like "In domain-driven design, you're supposed to start with concrete examples, because those flush out the edge cases of your problem domain."
And you know what's the best edge case?
I realize a few of you might not have 10+ years of Judaic schooling so here's the Rashi notes: Judaism appeared in Israel roughly 2500 years ago and has a large set of religious commandments— the usually given number is 613. These commandments are all fixed in a single, unchanging holy text, the Torah. As people ran into edge cases in the real world, religious leaders (first the Kohanim, latter the Rabbis)1 had to figure out what people should do. For example:
Then someone points out it was likely a mistranslation but that doesn't matter, because while the Torah is a fixed document, Judaism is explicitly a living religion, so if the Rabbis decreed something as forbidden it's forbidden.
Repeat for 2500 years and you get a complex set of religious requirements that will almost certainly play hell with your problem domain if you try to accommodate your Orthodox users. Here's just a few off the top of my head:
This is just a sample of the fractal complexity of making your app Jew-proof. I imagine most people won't have to deal with this, because Orthodox Jews tend to be pretty understanding of just how goddamn hard it is for goyim to track this all. It's fine if your calendar app just says Passover is eight days for everybody, plus maybe an extra "first night of passover" pseudo holiday in the beginning.
But it does make for great examples! I'm always looking for real world examples for my teaching, something that has weight and complexity without feeling artificial. And I'm really liking the idea. More Jewproofing exercises!
I'm guessing that many of you are really fucking uncomfortable with this. This is deeply-held beliefs of millions of people. Turning that into "a programming exercise" is a pretty egregious case of cultural appropriation.
(I can get away with it because I was Orthodox for 18 years. And I once dropped a Sefer Torah.)
I still like the idea of extracting complex edge cases from idiosyncratic cultural groups. Something where everybody needs one thing, but that group needs something else. We need to pick "looser" groups which aren't so tied to people's identity. So maybe:
It's harder to think of groups besides Jews, because Judaism has a rich history of edge cases to draw on (and also I'm Jewish). So it inspired the actual idea, even if reasonable implementations can't ever use them. That's kinda neat.
Kohanim are the "priest caste" in Judaism and were the arbiters of spiritual matters. After the destruction of the second temple in 70 CE, authority gradually shifted over to the scholar class, the Rabbis. ↩