Obligatory favorite example of valid I7 code wrote:
Instead of attacking Tom when something lethal is held, now every visible dog owned by Tom hates the player.
I've personally never really encountered a language that lets you express complex world simulation concepts like that so elegantly.
That is so very true.
Although, to be honest, the same sentence can be phrased in any other way and Inform wouldn't understand it. In the end it's just another programming language, with rules and bounds.
BUT: the integration between what you think of doing and how I7 handles it is so seamless it is astonishing. I think the best parts of I7 were done by the "narrative" minds of Nelson, Short and the rest, not the "coding" ones. This IS a work of genius, no matter how people react to it.
I started coding my first game with less than 20 hrs of teasing at the documentation.
I found myself in front of a puzzle which just self-generated by how the story was going on. I had this piece of soap the player had to push on (er.. push ACROSS) something to copy its surface. And then a machine able to replicate that surface on yet another thing.
I started coding it absolutely unaware of how to do it.
And it was done. In, like, 30 minutes, on the first try. I seriously doubt I would have succeeded in I6 or TADS where I got stuck in much simpler problems.
If there is a problem with I7, imo, it's in how the language-directed code sometimes gets along with the real descriptions ingame. I mean, there is no much difference between "Instead of taking the steel bar, say" and the part after the quotes in the same line of code. That drives a non native speaker like me to forget this is a PROGRAM and not my other average friend. Coding starts being too much like a conversation, and this can generate errors.
This is what i mean:
Metal_ladder is in the Campus. "There is a metal ladder here." The printed name is "metal ladder". Understand "ladder/metal" as the Metal_ladder.
Instead of going up when in the Campus, try climbing the ladder.
This compiles, but doesn't work, of course. And it takes a lot of time to know what's wrong if you just don't turn on your brains. (Ok, in this case it is NOT that hard, but imagine you've already written the word LADDER ten times in ten different descriptions. To you, the Metal_ladder IS the ladder, no matter what).
And this is a common mistake I do when coding in I7.
That said, I wouldn't recommend anything else than I7 to a beginner. Unless he has the mind of Andrew Plotkin, I mean
When I come to the blank page, writing a novel or a short tale, I want the computer, the software (I actually use InDesign
to write: Word
is just tooooooooo unstable... and I need the eye candy as well as the page size), or the damn typewriter to disappear as soon as I start writing "It was a dark and stormy night...". Inform quite succeeds in this, although not so much as one would hope. And this is what I most like in it.