Zipped XML? Isn't that just OpenRaster? (which is already supported by GIMP anyway, but also supported by Krita and other image editors)

We didn't go into it in the news post, but one of the big benefits of this new format is that we can sync GeglBuffers (how pixel data is stored) automatically between GIMP and the new file. So you'll get fast auto-saves as you edit, which we couldn't do with OpenRaster. Also, the OpenRaster standard doesn't support all the features of GIMP/Krita (like non-destructive filters for instance).

(Also, currently our OpenRaster support is a plug-in that calls our PNG plug-in to do the rendering, so we'd have to rewrite it to be a core process if we wanted to use it as our main project file).

> Krita and other image editors)

Krita is not an image editor but a digital painting program. GIMP is a much more complete image editor despite its quirks.

Krita is good at editing images, so it is an image editor. It is also good at digital painting, and that's where much of its development focus lies.

It's not that weird. Most of Office and Open office formats are just zipped folders of XMLs.

Better Zipped XML than whatever monstrosity Adobe files are. PDF/PSD... shudder.

Yep, even music software like Ableton Live is using zipped XML for the project files (although the much bigger audio files are stored independently in sub-folders). There were even efforts to use the XML format to manage Ableton project files with git in order to have a nicer change history (https://github.com/clintburgos/ableton-git).

> with git

I suddenly imagine a zip format with built-in git. Does this already exist?

Basically a file-format that has built-in history, rollback, logs etc. Enabling all these "zipped XML" formats to get this feature "for free".

Could be as simple as adding the .git to the zip and ensuring the software that writes the content to the zip also runs the correct git operations.

But could also be a simplified subset and adding git-ability to the (de)compress libs and bins, which can operate on the compressed .git. Simplified, because it won't need networking/remotes probably not even branches.

> I suddenly imagine a zip format with built-in git. Does this already exist?

OSTree, SQLite (single file DB), OCIRepository, git bundle. But it depends if you rather need code diffs or just versioning of large binary blobs (an image editor needs the latter).

Involuntary reflex reply: ship an SQLite database as your data file?

Quick edit: hmm, I'm already ~1 hour late, the relevant thread starts at https://news.ycombinator.com/item?id=49327457

I mean, zipping files in an archive and presenting them as a file is an ancient tradition in video games. For example Warcraft 3 used the MoPaQ archive to store data in .w3x file.

And Starcraft 2 data is just bunch of XML files.

Except MoPaQ weren't zips IIRC, they had their own clever format here - at least the OG StarCraft / SCBW MoPaQs were, playing with that is what I learned binary data handling on :). The idea of zipping data files applies, of course (and many a game used a literal ZIP with custom extension).

But there's one material difference between StarCraft/Warcraft and Gimp: in Blizzard games, those were "zips" of heavy data files, notably read only data blobs. The game would read them, unpack in memory, and serve appropriately. Most of that data was key-value, text resources, or flat assets - images, sfx. With Gimp, we're talking highly structured data that's continuously being mutated. Very much not the best representation for that, even if you're just persisting it. They're only getting away with this because of SSDs - on spinning rust, you'd feel this.

(Also worth noting that, at least in StarCraft/SCBW, most of the files inside were custom, well-optimized binary formats. This predated the XML insanity of encoding data with 90%+ markup overhead.)

> Except MoPaQ weren't zips

I meant zipping colloquially as in compressing an archive format. But you seem to get the gist of it ;)

> in Blizzard games, those were "zips" of heavy data files, notably read only data blobs. The game would read them, unpack in memory, and serve appropriately.

Not just game files but also the map format for Warcraft 3 was a glorified MPQ (source: https://867380699.github.io/blog/2019/05/09/W3X_Files_Format).

So whenever you edited a WC3 map, you were zipping the current map into an archive. Much like the GIMP example. Of course, WC3 didn't use as many XML files, though SC2 changed that.

Cool, I didn’t know that! But makes a lot of sense.

From https://github.com/zepouet/Xee-xCode-4.5/blob/master/XeePhot...:

    // At this point, I'd like to take a moment to speak to you about the Adobe PSD format.
    // PSD is not a good format. PSD is not even a bad format. Calling it such would be an
    // insult to other bad formats, such as PCX or JPEG. No, PSD is an abysmal format. Having
    // worked on this code for several weeks now, my hate for PSD has grown to a raging fire
    // that burns with the fierce passion of a million suns.
    // If there are two different ways of doing something, PSD will do both, in different
    // places. It will then make up three more ways no sane human would think of, and do those
    // too. PSD makes inconsistency an art form. Why, for instance, did it suddenly decide
    // that *these* particular chunks should be aligned to four bytes, and that this alignement
    // should *not* be included in the size? Other chunks in other places are either unaligned,
    // or aligned with the alignment included in the size. Here, though, it is not included.
    // Either one of these three behaviours would be fine. A sane format would pick one. PSD,
    // of course, uses all three, and more.
    // Trying to get data out of a PSD file is like trying to find something in the attic of
    // your eccentric old uncle who died in a freak freshwater shark attack on his 58th
    // birthday. That last detail may not be important for the purposes of the simile, but
    // at this point I am spending a lot of time imagining amusing fates for the people
    // responsible for this Rube Goldberg of a file format.
    // Earlier, I tried to get a hold of the latest specs for the PSD file format. To do this,
    // I had to apply to them for permission to apply to them to have them consider sending
    // me this sacred tome. This would have involved faxing them a copy of some document or
    // other, probably signed in blood. I can only imagine that they make this process so
    // difficult because they are intensely ashamed of having created this abomination. I
    // was naturally not gullible enough to go through with this procedure, but if I had done
    // so, I would have printed out every single page of the spec, and set them all on fire.
    // Were it within my power, I would gather every single copy of those specs, and launch
    // them on a spaceship directly into the sun.
    //
    // PSD is not my favourite file format.