← Back to team overview

geda-developers team mailing list archive

Re: Future

 

On Dec 18 2012, Peter TB Brett wrote:
There are a few ideas I've had for "general principles":

1) Use whichever tools / languages / libraries will let us get something
  working fastest.  If that means using Vala, GObject & Clutter, so be
  it.  If it makes better sense to use C++ & Qt, that's fine too.  Yes,
  the same goes for file formats.

Various more random thoughts...


Regarding file-formats, consider also:

Database vs. file? (Would a database even require explicit saving?)
ZIP container vs. separate files

We could consider making the format deliberately transactional (possibly related to the operational transform stuff). This might make some types of changes in the design friendly to view as a diff in a version-control system. (It might also make simple edits look more complex of course).

Undo is an interesting, and partly related question too. Should it be supported by the core library, or a feature of the editor(s)? (We might want to turn it off for automated input).

Should undo be inherent to manipulation of the data-set, or explcitly requested? (If the former, some logical grouping hints might be required to bundle change-sets together).


A transactional file-format, where the transactions are part of the on-disk format would allow us to undo/redo by clipping or extending the list of transactions we apply to the data-set. It would also mean undo data could be saved persistently on disk.

Can we use GObject properties to implement undo? We might need an object's entire internal state to be completely defined by its properties so this can work? (That is probably a good thing anyway).

What about copy-on-write like various modern file-systems? Objects then basically become immutable, and undo / redo becomes switching between snapshots of the state.

Do we _want_ undo data to persist on disk somewhere? (We could have a manual operation to throw it away and condense the design history).


Best wishes,

Peter



Follow ups

References