I6 vs I7?

Hi all,

I’m right now in the process of teaching myself Inform to start developing IF. Being brought up as an old-school programmer, I6 feels more “precise” and “well-defined” to me, and I somewhat distrust I7’s “natural language” approach. (Not really having worked with either language, it’s a gut feeling only.)

So, while I’m inclined to use I6, it appears the current trend is much more towards using I7. What’s your assessment, does I6 have a future, and is it worthwhile to “invest” in learning I6?

Or should someone with a faible for old-school programming stick with TADS, or the like?

Cheers,

Thanks for feedback,

syzygy

I6 certainly has supporters and users (and, as you surely know, I7 is translated to I6 in the process of compilation). I don’t actually know, but I suppose TADS 3 has more of a following than Inform 6, though.

David Griffith is now working on the I6 library which will be welcome news for I6 users. But, there aren’t many of those left anymore. Only a handful of I6 games have been released in the last 2 years.

You could consider learning both since you can use Inform 6 within Inform 7, that way if you find that something is easier or quicker in Inform 6, you can use it.

Frankly, I already found the learning curve of I6 intimidating enough…

syzygy

I haven’t learned TADS, but I would imagine the learning curve of TADS and I6 are very similar, especially for a self-proclaimed old-school programmer. And honestly, I7’s curve gets just as steep, even if it starts out kind of shallow. If I6 feels more right to you, use it! The question about “investing” in I6 vs I7 seems sort of weird to me, but: there are still plenty of folks around here who can answer I6 questions (it seems to me that I6 questions get answered about as quickly as TADS questions). And of course there’s no difference to your readers/players, since of course it’s all zcode to them.

Oh, I don’t think I7 is easier or more difficult than I6, I just was hesitant to tackle both languages at the same time. With regards to “investing” in I6, my concern was whether it would still be supported in foreseeable future, or whether trying to master it would turn out to be a dead end in the long run.

But, following the advice of you all, I’ll stick with I6 for the time being.

syzygy

FWIW, I6 is a good choice if you’re comfortable with traditional programming constructs, because for one thing a compiled I6 game can take advantage of a variety of interpreters, including browser-based interpreters.

TADS 3 is somewhat more powerful than I6, for several reasons, such a larger library, better output buffering, and better handling of disambiguation. The learning curve is also steeper, and the browser-based interpreter support is a little odd (but I haven’t looked at it lately, and I could be wrong about that).

By the way, there’s a large library of I6 extensions in the archive, including one I wrote a year or two ago – and it may be the most recent upload to the library, which tells you something. My modest contribution adds one of TADS 3’s nicer features – event lists – to I6. And Roger Firth’s I6 tutorial pages (firthworks.com/roger/informfaq/) are still up and running, which is very good news.

What I7 offers, in addition to the very nice cross-platform IDE and a syntax that appeals to novice programmers, is an active community of extension authors.

I’m glad there’s another person joining the ranks of Inform6 programmers. Keep in mind that Inform6 and Inform7 are fundamentally different languages, even though the latter first compiles into the former. Neither is better or more advanced than the other. I like Inform6 because it meshes better with the way I think about programs and interactive storytelling.

I should be done with Informlib 6/12 by December or thereabouts. I’m gradually adding changes from the old CVS tree that was abandoned in 2006. You can follow along with what I’m doing at github.com/DavidGriffith. Inform6 isn’t going away any time soon.

Glancing through the list of issues you’ve tackled, I’m very happy to see that you’re working on this! I have no current plans to use I6, but I agree that it’s a very worthwhile language, and should be kept current and well maintained. Thanks for doin’ the deal.

–JA

Howdy. I used to post here quite a bit a year or two ago, then a couple of things happened to make me sort of fall out of the habit. One, my work’s Websense blocked the forum. Two, my husband reformatted my hard drive and erased a bunch of my games in progress. But I’ve been reading and lurking and am about ready to get back at it now. Anyway, hello again old friends, and glad to meet you, new ones!

Does that mean that games written in Inform 7 can’t be compiled into a form usable by browsers? If so, I did not know that. I’ve often thought about getting my games into a browser-usable form at some point for display on my website.

No, Inform 6 and 7 can both do that.

I6 and I7 compile to the same file formats; indeed, under the hood an I7 gamefile is just a great deal of machine-generated I6 code.

Some of the features of Glulx, which is one of those file formats, cannot be used in web interpreters at present. Because I7-generated files are larger, they’re more likely to be Glulx than I6 games. But the features in question are things like images, music, real-time effects and so on, which the great majority of IF games never use; so unless you’re doing something particularly fancy, this is not a concern.

Syzygy, I don’t think you need to worry about losing support for I6. Where I am on the I7 learning curve is actually just as much about I6 as it is about I7 - digging into the template layer, tweaking the parser, finetuning the turn sequence, etc. If you learn I6 first, you’ll have a solid background that will make learning I7 easier - it definitely won’t be wasted.