Mail Archives: geda-help/2020/09/03/17:52:57
Hi Roger, hi all,
in order to give a more complete picture, I'll provide my perspective on
the matter.
When I joined the project, gEDA/gaf development had more or less stalled.
There were a few fundamental problems which made improving the situation a
challenge:
- gEDA/gaf was (and in many aspects still is) a huge monolithic codebase
which makes it hard to fix one thing without breaking another thing.
- While there is an API to libgeda, it is specific to Scheme (so most of
gEDA/gaf doesn't actually use it) and exposes many implementation details
to the user, making it unnecessarily hard to change gEDA/gaf internals
without breaking user code.
- Many more advanced use cases of gEDA/gaf required knowledge of Scheme,
which is a significant hurdle to adoption.
Back then, it was almost universally agreed on that the core functionality
of gEDA/gaf needed to be split out as a library, so it could easily be
used by gEDA/gaf, scripts, and other applications alike. See for example
this brain-storming from 13 years ago:
http://wiki.geda-project.org/libgeda3
So I set out to do exactly this, while trying to avoid the pitfalls that
had led to this situation in the first place.
http://www.delorie.com/archives/browse.cgi?p=geda-user/2015/02/06/14:35:33
This approach, among other things, allows for much cleaner code in both
gEDA/gaf and scripts. More importantly, it also makes it possible to
access common data structures--which would e.g. allow to run a script from
inside gschem, operating on the currently opened file.
Now it turns out I underestimated the Scheme lobby. Vladimir flat-out
refused to work with my code, and after some heated discussions, he
decided to rather leave gEDA/gaf and do his own thing than accept that
gEDA/gaf would in the long term migrate away from Scheme.
I believe this is a sad thing, and that splitting the efforts is overall
harmful for the project; but I agree that our approaches are incompatible
and that going different ways is probably the best thing to do.
Roland
- Raw text -