Graham Nelson on the Direction of Inform

Emily posted this in the Oxford/London IF Meetup thread but I thought I’d call it into its own topic for any followup discussion.

Blog: … of-inform/

Direct link to slides and text:

I would love to see this “inter” tool and its easier ways to port the output of Inform into other paradigms, like Unity, hypertext, or touch-based apps.

My favorite bits are that Inform authors might eventually have more options to publish directly to an app or a much more customizable website. I also like tagging link text in prose which still allows access to the parser world-model; essentially touch-links could be set up to trigger actions as if the player typed them.

Yes, exactly. Hopefully the tool is sufficiently-fledged upon release this year that people will be able to get started on such implementations immediately.

They talked about disconnecting various parts of inform. It would be fun to see Inform’s text manipulation tools (as demonstrated in The Mary Jane of Tomorrow” show up in text games in the style of Voyageur or Choices.

I’d be especially keen on an open-source Inform-based Versificator.

Graham’s vision has always been impressive, but I think there are a lot of more recent computer science philosophies that could help any IF platform. I have always been a proponent of separation of concerns and loosely coupled architectures. I don’t think these ideas are at cross purposes with Graham’s vision, but I do think Inform 6’s standard library is a very tightly-coupled architecture that could use a significant rewrite. My one well-known interest is in separating ALL of the printing into a separate module with an additional module to do formatting or organizing for UI output.

This is really interesting. I would love to know more, and I’m especially interested in how far work on Preform has come, and whether the intent is still for source code to eventually be localized.

It was really interesting and I think that Inform is going in a good direction.

But as a French and the maintainer of the French extension, I’m a bit disappointed there were no discussion about Preform, as Eleas said. I still hope that the next Inform version (coming this year if I understood correctly) will have some new features regarding translations.

(I don’t want to sound selfish. I’m happy Graham Nelson is doing what seems best for Inform’s future.)

Oh, I wouldn’t put it quite like that. I’m not disappointed regarding Preform. I primarily work with old code, and I’m fully aware refactoring has to be done in a certain order. It’s entirely understandable if Graham chooses to address what he feels will yield the greatest benefit. It may, for instance, be that the addition of inter obviates some kludge under the hood in Inform 7 and thus could simplify Preform. Or it could be that this is what Graham feels will address more glaring issues that I7 authors need resolved.

What I am is curious as to what plans, if any, exist for Preform development.

This piqued my curiosity: “Some features from Inform have made their way into other programming languages.”

I can think of plenty of Inform features that would make a great addition to other languages, but it would be interesting to hear some actual examples.

what has piqued my interest is the part about the backend, because helps in repairing the occasional crashing of ni under Linux GUI. Now hopefully I can better aim my “engineering kicks” :wink:

Best regards from Italy,
dott. Piergiorgio.

I was only including myself when I said I was disappointed. Sorry if didn’t look like it!

I’m still really happy with what is being done on Inform.

Pardon my newbie ignorance, but what’s Preform?

No need to apologise! Preform was never really announced publicly, I think.

I may be simplifying a bit, but Preform is the specification of the syntax of the natural language Inform uses. Go in the folder containing the Inform program, then to Internal/Languages/English; there is a file named “Syntax.preform” there (on mac, you have to right-click and show package’s content). Inform uses what is written in this file to parse and “understand” the natural language.

So in theory, if you translate that file, you can write your source in another language (say, French). In practice, Inform doesn’t read syntax file for languages other than English so you have to include the Preform in language extensions. The problem is to work, some Preform must be read very early during compilation, and extensions are not read early enough, so not all works. (You could write the Preform at the start of your project, but it’s not practical to copy a huge text like that at the start of every project.)

For example, this bit of the French extension translates the articles so that they can be written directly in French in the source.

I’ve written an experimental extension so that one can write his source in French. It attempts to translate all the Preform and the phrases. Not all is functional and it uses various hacks until all is properly integrated into Inform, but it’s quite cool (according to me at least!). See for example my Inform projects, such as this one.

Graham Nelson had the project to allow Inform’s source to be fully translatable, that’s why I was disappointed he did not mention Preform. But since it only affects directly a small part of the Inform community, it’s also understandable.

Sorry if this post got a bit technical! :nerd:

Can’t you just have users replace the English.preform file manually?

You can, and in fact I already tried to translate it directly. The problem is that Inform needs to understand English, whatever the language your source is written in. One reason is that extensions, such as the Standard Rules, are written in English.

I could write both English and French syntax in the same file, but I think it can cause some issues and ambiguities, and it would just be too much work.

And now that there is supposed to be a new version of Inform coming this year, I think it’s better to wait and see if things will change.

(This discussion is a bit off the initial subject now, I believe.)

Thanks, really appreciate the explanation. (I like technical.) Interesting that there’s a Languages/French folder just waiting for a Preform file. The fact that it impacts only a small minority of current users is not the right way to judge the value of multi-lingual support. Multi-lingual support is a way to grow the Inform community and, therefore, the IF community.

The way I read the presentation, I believe all feature implementation is on hold, not just multi-lingual support, until the code restructuring is finished.

It’s like rebuilding the foundation before building an addition on a house. It doesn’t change much about the livability of the current structure, but you can’t make any other improvements until it’s done.

He mentions wanting to support choice and touch based user interfaces and I think that is driving the need for deep restructuring. Responding to muliple kinds of input may be like adding a room onto a house.

It’s possible that supporting muliple Preform files is more like redecorating an existing room, not that difficult compared to the other work, but most likely put off until the major construction is done so that it doesn’t have to be done twice.