delorie.com/archives/browse.cgi   search  
Mail Archives: geda-user/2015/12/23/17:39:10

X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f
X-Recipient: geda-user AT delorie DOT com
Message-ID: <20151223223853.20197.qmail@stuge.se>
Date: Wed, 23 Dec 2015 23:38:53 +0100
From: "Peter Stuge (peter AT stuge DOT se) [via geda-user AT delorie DOT com]" <geda-user AT delorie DOT com>
To: geda-user AT delorie DOT com
Subject: Re: [geda-user] A fileformat library
Mail-Followup-To: geda-user AT delorie DOT com
References: <B02363CD-469D-493A-AC15-1D5DC7836982 AT noqsi DOT com> <20151222232230 DOT 12633 DOT qmail AT stuge DOT se> <0F6F1D0F-4F07-48EA-90FE-836EAD4E2354 AT noqsi DOT com> <CAM2RGhTficnys3a4xs=UBFvk8aPwpzYWUADFLP_pUQ+R1iKs0g AT mail DOT gmail DOT com> <alpine DOT DEB DOT 2 DOT 00 DOT 1512230552520 DOT 9035 AT igor2priv> <FC796A30-DF21-42E0-89D4-48F3C202BCAE AT noqsi DOT com> <alpine DOT DEB DOT 2 DOT 00 DOT 1512230648180 DOT 9035 AT igor2priv> <A6BF931F-181E-4B69-8B3E-E1BD202DE7C5 AT noqsi DOT com> <20151223194905 DOT 7676 DOT qmail AT stuge DOT se> <0AB5D926-731F-4A49-AA26-D06DAE7C2CB0 AT noqsi DOT com>
MIME-Version: 1.0
In-Reply-To: <0AB5D926-731F-4A49-AA26-D06DAE7C2CB0@noqsi.com>
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

--0k4Rxg87Lb8yV0u3
Content-Type: text/plain; charset=utf-8
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

John Doty wrote:
> I don=E2=80=99t expect a tool to do everything I need.

Of course. Enabling integration is very important. But robust,
future-proof integration doesn't come from relying on a moving
target such as a file format, but from relying on a more stable
target intended specifically for integration.


> > The way that I see the file format thing playing out is most certainly
> > with an internal (*not* turing-complete) data format which is "owned"
> > by a C software library.
>=20
> Ugh. You lock us into C.

No, to what a C program could do, which is pretty much anything.


> > The library will hopefully have bindings in lots of different
> > languages,
>=20
> So the user has to penetrate how an FFI maps a C mapping of a text
> file into their language. How does this make life easier, exactly?

Text files aren't great for representing structure.

The more generic the atoms are, the more structure is neccessary to
have a meaningful result. PCB doesn't have very generic atoms and as
such can get away with fairly little/simple structure on disk, which
can be represented all right in text files.

Moving towards more generic atoms (which you and I both welcome)
means that more structure will be neccessary, and then a text format
just isn't so great anymore.


> In general, it looks like two extra layers of obfuscation to me.

I guess you might be jaded by a lifetime of poor abstractions. :\
Good abstractions are possible too! They do not obfuscate, but adapt
and enable, making it easier for you to do the job you want to do.


> if you=E2=80=99re a user extending the kit to solve your special problem,
> you=E2=80=99re out of the box.

You shouldn't knock it until you've tried it. I think that we as a
community can do really well creating at least one and maybe several
plugins for a tool that is specifically intended for interchange.


> >> This kind of ad-hoc scripting relies on the whitespace/newline
> >> placement that the tools write.
> >=20
> > Having "relies on the whitespace" in your workflow is IMO a clear
> > sign that something is awfully wrong. :\
>=20
> No, it=E2=80=99s a classic UNIX convention with clear thinking behind it.

I'm not talking about newlines, but about whitespace in general.


> It works well for us.

Until it doesn't. I have written plenty of text processing software.


> > It's 2015 going on 2016 and we can do a whole lot better than that.
>=20
> Not and continue to present the user with UNIX-level flexibility.

Sure we can.


> > Don't worry, I'm not interesting in breaking any of your workflows,
> > I'm interesting in enhancing them with benefit for all.
>=20
> But to do that in the style you want, you have to understand my
> workflows.

I just have to make sure that there are well-defined interfaces for
interchange. They can be text based. I expect there to be at least
one plugin for the traditional format(s), so that everything possible
today remains possible in the future, but also with new possibilities
allowing to do the same things as before and more, easier, for those
who want - without unneccessarily breaking backwards compatibility.


> > Then you could easily add a tool to this pipeline which takes an old
> > or new well-defined text format on stdin and outputs the native format.
>=20
> You could, but what would be gained?

An open EDA standard, which as Peter C pointed out is important to
make the most of the scarce developer resources in our domain.


> they didn=E2=80=99t have the discipline to define the representation of n=
ew
> kinds of relations in flatfiles, so things broke.

Yes, the text format will also need to evolve. The responsibility for
that lies with those with an interest in using it. It's also
perfectly fine for you to stay with the older version, or even
to create a fork.


> If a pretty big company with a full time professional staff

Heh, let's just say that I have experience with some Sun employees,
and I wouldn't compare such a team with an open source team.


> how can a small project like ours do so?

Through your contributions. Rest assured, noone will do it for you.


> Just keep the format transparent.

Interchange interfaces absolutely.
Disk formats I don't think that is worth the effort.


> > I make all footprints by hand and think to myself what an utter waste
> > of time it is with every single one! :)
>=20
> That=E2=80=99s what transparent formats are for: to enable you to automat=
e or
> work by hand, whichever is easier.

Work by hand is never easier when the format isn't made for humans.
Neither gschem nor PCB file formats are made for humans.

A text format is not automatically human writable just because it is
human readable.


//Peter

--0k4Rxg87Lb8yV0u3
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.11 (GNU/Linux)

iD8DBQFWeyJ9hR3Q0dhIfEgRAkMhAJ0ZGkT43bz6StMgPyU0OOVHKajrYACaA6Mx
MP1wgmlp+f5TPNhyEwPrbUg=
=mpg+
-----END PGP SIGNATURE-----

--0k4Rxg87Lb8yV0u3--

- Raw text -


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