I see that I started this thread a little over two months ago, when I was first exploring parser-IF tools. This is my personal, short history of investigating these different tools:
I’ve been programming pretty regularly in traditional languages for some twenty-odd years now, which biases my preferences to what I already know and the tools I use.
I like TADS 3, its syntax and libraries, and was initially my first choice. I ended up not using it–not so much because Mike Roberts has moved away from the scene, but because improvements and bug fixes that he made since 3.1.3 are stashed away in his private tree somewhere, and unavailable to the public at large. The TADS 3 C++ codebase is large-ish, and the build process a bit involved on Windows, but these could certainly be learned and overcome with time and effort: I felt frustrated, though, that the first bug-fixes I’d be working on are ones that he already fixed but didn’t release.
Then I tried Inform 7, because it’s the dominant tool, by reading the “Writing with Inform” manual in its entirety and then starting through the Recipe Book examples. Given my traditional programming background, the faux-natural-language syntax of I7 was very offputting, and prevented me from using modern tooling I’m accustomed to (more on that below). In the way that parser-IF is sometimes criticized for providing a false illusion of linguistic freedom to the player, so I7 seems to provide an illusion of natural-language freedom to the author, while nevertheless actually requiring its own idiosyncratic phrasings and word-orderings. And the compiler is closed-source, so one cannot answer questions by delving into the “ultimate authority” (the compiler code itself).
Then, finally, backwards to I6. From the tally of the games made with it, clearly it’s a capable-enough system for the types of parser games–both traditional and experimental–that historically defined the genre. The latest versions of both the compiler and library are available (and actively maintained) on GitHub, and within a month I could understand their workings well enough both to answer my own questions like “How do you represent the single-quote character in I6 source?” (answer: [size=150]’’’[/size], not [size=150]’’’[/size] as in C/Java), and to submit small patches to the maintainers (ex. to raise the number of verbs usable in Glulx from 256 to 65536, something already available in I7).
Tooling: the conventional syntax of I6 allows one to configure editors and IDEs to navigate the source very conveniently. I can have my IDE readily show me all the source locations where “UndergroundLabRoom” is referenced, or all the objects that override the “Take” action; I can view the function call-tree for parser routines, to see how they really work, even if undocumented in the manual; etc.
So it seems good that I7 and I6 can co-exist, for the different sorts of folk who come into the scene, each looking for a different philosophy of IF system.
~Jesse