This is not a complaint post. This is an observation post. I don’t do much with interactive fiction these days but I do a lot of framework and library design in the software IT world, creating fluent interfaces and whatnot. So I do have some basis for why I’m bringing this up, even if the context is entirely different.
My concern: TADS is becoming less approachable and less friendly to newcomers.
Here’s what I understand about how TADS libraries are shaping up:
- You have the regular, out-of-the-box Adv3 library that has a lot of complexity but is modular so that complexity can be made manageable.
- You now have the Adv3Lite library. Not really a “lite” version in the traditional sense; rather a library that is even more modular than Adv3 with some refined functionality, largely taking its cues from Inform 7 but with a TADS 3 twist.
- You have an Adv3Liter library. Since Adv3Lite is not really “lite”, this is not really “liter”, but is rather just a more lean version of Adv3Lite. (This one is described as the “true lite” version.)
What I’m finding is that when you try to present this to people who are new to TADS 3 entirely, this is actually fairly daunting to them.
Whereas before you had one library that may have been complex depending on how you chose to use it, now you have three libraries.
- One that that is the “true lite” (called Adv3Liter).
- One that is “lite-but-not-really-lite” (called Adv3Lite).
- One that is presumably “full featured” even though the others are “full featured” (called Adv3).
Further, the libraries are not entirely compatible. Adv3Liter/Adv3Lite are not strictly compatible with Adv3 and have different ways of stating key constructs (like vocabWords). So sometimes you have to learn things, other times you have to unlearn things.
It seems to me like Adv3 simply should be have been refactored (mind, not redesigned!) as “Adv3Lite”. It was already a modular library; it was just – arguably – presenting too much of its complexity up front. So streamline the interface, and thus the presentation of the library, and put the focus on the modular aspects for those who want to dig deeper. I have to believe, but don’t know for sure yet, that Adv3 could have been further refactored to accommodate the Inform 7-like constructs that Adv3Lite provides.
It’s stated that the “Mercury parser [with Adv3Lite] is a bit easier to customize than the parser that comes with adv3.” What this tells me is a “harder to customize” parser is left in place (as Adv3) but an easier to customize one is available (Adv3Lite). So why not just make the “harder to customize” one “easier to customize”? Then you don’t have to add more libraries; you refactor and refine your existing one.
I realize that ship has sailed and may not have been any of our decision or even open for debate, but my concern remains: I think TADS 3 has actually become much less approachable.
Obviously a lot of this is subjective, so I’m curious what others think.