[I7] I7 projects and bundle files

Jesse McGrew jmcgrew at gmail.com
Sun Dec 30 18:19:39 CST 2007


On Dec 30, 2007 2:42 PM, Andrew Plotkin <erkyrath at eblong.com> wrote:
> On Sat, 29 Dec 2007, Jesse McGrew wrote:
>
> > For this reason, I must disagree with Andrew that zipped projects are
> > only for people who know how zip works.
>
> Then disagree with *both* claims, because it cuts both ways.
>
> Any flat assertion of "we know how the user wants to manage his source
> code" is going to be wrong for a lot of users, and will be a nasty kick in
> the shins to some (current) users. Can we please not unilateratally and
> mandatorily change the project format on everybody just because it would
> be convenient for XO?

Mandatorily, no. But I do think making a single-file project the
default is best.

Inform 7 projects currently stick out like a sore thumb among all
other document types. What other program saves its projects as a whole
folder, except for Mac-only programs where you can't tell the
difference without looking closely anyway?

It seems to me that the current project format is an artifact of I7's
origins on the Mac, and no offense to anyone, but it gives the
impression that portability was not a major concern in the IDE's
development. On other platforms -- speaking mainly of Windows, but I
believe it's true on Linux too -- you can't double click on a project
and have it open in I7. You can't attach a project to an email. You
can't upload a project all at once using a naive FTP client. The world
outside of Cupertino is just not set up to treat folders as documents,
and using folders as documents doesn't seem appropriate for a
release-quality app.

The current project format has only a few benefits:

* It's the way it's been done so far.
-- But if there's a good reason to break that tradition, and I believe
there is, then the time to break it is sooner, not later.

* It's easier for Inform and the IDE to read files in a directory than
to parse zips.
-- But not that much easier. The IDEs have access to zip libraries,
and they can pull the files out into temporary space where NI, Inform
6, and cBlorb can work with them.

* It gives experts easy access to files like story.ni and auto.inf.
-- But you can cut 'n paste story.ni from the IDE. Auto.inf and
auto.z5 will have to be written to a temporary location anyway: they
don't logically belong in the zip, and Inform 6 can't read or write
zips. The other files are probably only useful to utilities that can
be updated to parse zips.

Am I missing anything? If we were starting over from scratch, would
there be any good reason to choose a folder-based project format
instead of a single file?

> > I don't think it's worth worrying about interoperability with
> > older versions of I7
>
> ...because nobody is in the middle of working on any I7 projects *now*,
> right? Who might want to upgrade? Sheesh.

Let me clarify: it's not worth worrying about *old* versions of I7
being able to read the *new* projects, because it's likely that the
new projects will use new language features too.

It is, of course, worth worrying about *new* I7 being able to read
*old* projects.

> A one-file project format is a good idea of itself, but:
>
> - I worry about new failure modes. Does the IDE update the archive on
> every save? (Or every time the skein updates?) If so, that's a lot of file
> rewriting (potentially costly on, say, XO). If not, does an IDE crash mean
> you lose all your recent source-code changes? (If I email you my project
> file without quitting I7, does the latest version go out?)

I would expect projects to be updated on every save, just like they are now.

I wouldn't worry about rewriting files on the XO: flash memory can
take an awful lot of writes these days, with wear leveling and higher
quality parts than in years past, and since flash operates in blocks,
updating story.ni every time you save is no less costly than updating
the entire zip.

> - If none of this ever gets implemented, that would be okay, really.

Agreed, but *only* if someone can hammer out a deal with Apple so that
every Windows and Linux user gets a free Mac to run I7 on, eliminating
the hassle of folder-based projects. Maybe they'd be willing if the
name were changed to "iSeven".

vw



More information about the Inform7-porters mailing list