← Back to team overview

geda-developers team mailing list archive

Re: Future

 

Hi folks,

There seems to be a few people who are interested in a "next generation"
GPL schematic editor / netlister (let's give the idea a working name of
"gschem-ng" or something).

Firstly, I suggest that we keep the idea of such a project in "stealth
mode" for the time being, until we have something to show people that
actually runs.


A couple of years ago, a couple of us started a repo [1] containing
*only* use-case documentation about the sort of things that users would
like to be able to do with their schematic editor.  This might be a good
starting point for thoughts about what "gschem-ng" should be able to do.
Please contribute!

We should also adopt as many good ideas as possible from other EDA
tools, like e.g. Upverter (which appears to use operational
transformations, i.e. a very good idea) [2].


Additionally, see this (also incomplete) diagram [3].  You can tell it
is old because it doesn't include polygons. ;-)


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.

2) Datastructures should be thread safe.

3) Libraries should be re-entrant.

4) Any operation that might block should have an asynchronous version
   (for example, see the GIO library).

5) Avoid "house-keeping code".  Use event-based programming to keep
   datastructures and GUI elements up-to-date.

6) Write the unit test first.

7) Never write any algorithm more than once.

Comments?  Anything I've missed?

                              Peter

[1] https://github.com/peter-b/libeda/
[2] https://en.wikipedia.org/wiki/Operational_transformation
[3] http://wiki.geda-project.org/geda:data_structure_design_discussion

-- 
Peter Brett <peter@xxxxxxxxxxxxx>
Remote Sensing Research Group
Surrey Space Centre

Attachment: pgpeyQ7VKPlZ4.pgp
Description: PGP signature


Follow ups