4 ms·
> If a tile predicate has a non-empty Include set that > contains only sprite kinds then the associated tile must > contain a sprite if that predicate eva
by indigo945 6y ago
> If a tile predicate has a non-empty Include set that
> contains only sprite kinds then the associated tile must
> contain a sprite if that predicate evaluates to true on a
> state. We call such a sprite a sprite witness, as it
> witnesses the truth of the predicate. Sprite witnesses are
> TileCode’s form of variable binding.
I can't figure out who this manual is written for. TileCode and the example games appear to target programming beginners and even children, but the lingo here is unlikely to be comprehensible to anyone but CS majors. And it's not like they're describing a complex idea here, it's just the language they use to describe it seems almost willfully arcane.
- Impossible 6y agoThis is a side effect of it being a research project. It's interesting to me because I've worked in this space (I designed and built the visual scripting system for Facebook Horizon) but otherwise I agree. Kids and non-programmers won't understand this
- seanmcdirmid 6y agoPerhaps there is one description for existing programmers (who would appreciate the comparison to variable binding) and one that doesn’t (who could care less about that)?
- tballmsft 6y agoHi Sean, yes - that is the case. I've regrouped the documentation to make this clear. Happy to have any suggestions for improvements. This is just a starting point.
- seanmcdirmid 6y agoHey Tom. Ya, I would guess that making some kind of material to get end users to understand this would be more challenging than getting us programmers to :) (and probably half the fun of the project).
- IfOnlyYouKnew 6y agoIt's trying very hard to sound smart. But "...something with a non-empty include set that contains only x..." is the same as "...something that includes x and nothing else..." There's this quote from a famous (in strictly relative terms) judge on the German Supreme Court: A good lawyer or judge will, according to him, "think like a philosopher and talk like a peasant!". Of the three other possibilities, two are still fine. But trying too hard is a mortal sin.
- sundarurfriend 6y agoThis sort of comment is often similar to a North American hearing a British person speaking in their natural accent, and going "why are you trying so hard to sound fancy, dude?" In fact, your own quote speaks to this: when you're thinking like a philosopher, it's easy to also speak like a philosopher; what takes effort is to speak like a peasant (and we've all had similar experiences with technical jargon in our own field, and having to translate that to a layperson). You can certainly accuse them of not having tried hard to translate it to simpler language, but it's an unwarranted accusation to say they're "trying very hard to sound smart" when they're using language that is similar to their own thought processes, and hence is probably easier to write in. Reminds me of a scene in "I, Robot" (the movie): Del Spooner: So, Dr. Calvin, what exactly do you do around here? Dr. Susan Calvin: My general fields are advanced robotics and psychiatry. Although, I specialize in hardware-to-wetware interfaces in an effort to advance U.S.R.'s robotic anthropomorphization program. Del Spooner: So, what exactly do you do around here? Dr. Susan Calvin: I make the robots seem more human. Del Spooner: Now wasn't that easier to say? Dr. Susan Calvin: Not really. No.
- derangedHorse 6y agoI agree, communicating to big demographics with individuals of diverse backgrounds is a skill that a lot of people either don’t have (and choose not to cultivate) or don’t even know is a learnable skill. People on the internet take this for granted and just think all the great articles they read on the internet could have been written by anybody (which a lot of the times is untrue)
- 6y ago
- tballmsft 6y agoThis text is from the page that documents the full programming experience, and was written for programmers. I've moved it out of the overview section.
- Impossible 6y agoThanks for writing it. It's always good to read thorough implementation details and have them readily accessible even in a causal programming environment. I especially appreciated the conflict resolution section