J
@Maciejasjmj said:I'm not sure whether to be amazed that the language is able to pull natural language processing off, or terrified that it actually attempts to. Since it's a domain-specific language, I'm not going to have nightmares about it, but still... O_O.It's not very good at it, either; they had to take a number of shortcuts that can end up biting you. For instance, IIRC, fuzzy matching of object names was implemented in such a way that the parser cannot distinguish between two things if one is a prefix of the other. So "coffee" and "coffee maker" are the same thing as far as the parser is concerned. Plus, it's fairly easy to confuse the parser with perfectly valid input (although this seems improve as newer versions come out).
I once tried to write a text adventure where the material an item was made of mattered. That ran into a brick wall when I found out that it was impossible to have rubber boots made of rubber, leading to an elaborate dance where materials had one name internally but reported a different one for text output. I finally gave up when [i]that[/i] ended up confusing the parser. I probably should've implemented that mechanic in Inform 6 but I didn't feel like learning yet another language just to write a text adventure.
Inform 7 is kinda neat in that it makes writing a text adventure very straightforward. It's easy to pick up and comes with a lot of stuff baked right in and provides well as an elaborate help/tutorial document. On the other hand, it's hair-pullingly frustrating to implement any sort of advanced functionality yourself as blocks of code can somehow work fine on their own but confuse the parser when unrelated code is added.