www.delorie.com/archives/browse.cgi   search  
Mail Archives: geda-user/2015/09/11/11:52:44

X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f
X-Recipient: geda-user AT delorie DOT com
X-TCPREMOTEIP: 207.224.51.38
X-Authenticated-UID: jpd AT noqsi DOT com
Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\))
Subject: Re: [geda-user] About reinventing the wheel, and how to avoid it
From: John Doty <jpd AT noqsi DOT com>
In-Reply-To: <alpine.DEB.2.00.1509111150410.2482@lichen>
Date: Fri, 11 Sep 2015 09:51:26 -0600
Message-Id: <B94E2C24-8B63-46FC-A551-9E4B14B817C9@noqsi.com>
References: <alpine DOT DEB DOT 2 DOT 00 DOT 1509111150410 DOT 2482 AT lichen>
To: geda-user AT delorie DOT com
X-Mailer: Apple Mail (2.1878.6)
X-MIME-Autoconverted: from quoted-printable to 8bit by delorie.com id t8BFqGxo002693
Reply-To: geda-user AT delorie DOT com
Errors-To: nobody AT delorie DOT com
X-Mailing-List: geda-user AT delorie DOT com
X-Unsubscribes-To: listserv AT delorie DOT com

Roland,

Let me reiterate that I’m very impressed with what you’re doing. Please do not let my modest dissent from some of the things you’re saying discourage you from this excellent work.

On Sep 11, 2015, at 8:06 AM, Roland Lutz <rlutz AT hedmen DOT org> wrote:

> While reading the past discussions here on the list, I had the impression that some ideas are developed over and over again, while few people took notice of the infrastructure which I already created.
> 
> An in-memory database?  Look at libxornstorage.

I have, and it’s hard to comprehend given the state of the documentation. The first time I looked at it, I saw Yet Another OO Framework. What’s this for? Your productivity with xorn is very, very impressive, but I confess that I don’t “get” it at all.

>  An interchange mechanism between programs written in different languages?  Look at libxornstorage and write a wrapper for your favorite language if it doesn't already exist.
> 
> I'm not "working on the Python branch", and I haven't "created a complete parallel to gnetlist, but based on Python rather than Scheme". xorn-netlist *is* gnetlist.

Not really. I don’t see xorn-netlist replacing gnetlist in projects that already use custom Scheme scripts. And, at this point, I’m not sure I will want to switch for things that gnetlist does well.

>  I'm gradually shifting the gEDA infrastructure to a more modular design, using C where I have to (for interoperability with any language) and Python where I can (for those implementation parts which don't have to be hand-optimized in C).  In the process, I converted the API for netlist backends to Python, but that was partly because there are no Guile bindings in Python, and the code turned out to be much easier this way.
> 
> 

Please continue with xorn as a parallel effort, as you’ve so far done with success. Some of us have too much investment in the old geda-gaf to switch easily.

> The obvious thing would be to continue that scheme for PCB, too:
> 
>    xorn.storage - in-memory representation of PCB objects
>    xorn.pcb.read - reads .pcb files
>    xorn.pcb.write - writes .pcb files
>    xorn.pcb.netlist - creates netlists for back annotation
>    xorn.pcb.render - renders PCBs to Cairo for display and PDF export

The big difficulty I see here is that geda-gaf is a bottom-up design: the .sch format provides a simple, general description of networked objects in a hierarchy with metatadata in the form of attributes. Then, we add symbol libraries and scripts to adapt this to specific applications. Xorn obviously works well with this, and gives me great hope for the future. To me, the real barrier to completely exploiting geda-gaf’s flexibility has been the clumsiness of the Guile<->C FFI.

Geda-pcb, by contrast, is top-down with restricted goals and capabilities. Where geda-gaf describes topology in a general way that has few restrictions, geda-pcb has no general basis in geometry. Where geda-gaf uses attributes in mostly unrestricted ways, geda-pcb *enumerates* a restricted subset of possibilities. Adding a small subset of possible layer types to this approach has been cheered as a great advance here. Sorry, Nicklas, it makes me shudder. I expect that a xorn-pcb would be as frustrating. Unlike geda-gaf, where the frustrations have been rooted in the implementation, the frustrations of geda-pcb are rooted in the design.

John Doty              Noqsi Aerospace, Ltd.
http://www.noqsi.com/
jpd AT noqsi DOT com



- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019