[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: gEDA-user: why separate xgsch2pcb?



Peter Clifton wrote:
On Tue, 2010-02-09 at 10:57 -0500, Jason wrote:
Chris Cole wrote:
Just curious, why not include xgsch2pcb functionality inside of gschem?

As an aside, the first thing that lept to mind, was the Unix philosophy of "one tool, one job." So, I started digging to find where it came from. It's one of those "quoted all over the place, but no origin to be found" kind of phrases.

The best I could find was this [1], which sums it up nicely.

That fits really well with a command-line approach. It really increases
usability of the whole. I would also venture to suggest that this design
philosophy has (probably) come about from a time when GUIs were not in
common use.


True.

With a GUI approach - the boundaries of the user interface do not need
to match the logical boundaries of the operations involved. Things
become more document oriented. Why should I load
"open-office-print-spooler" when I can click the print button in my
"open-office-text-editor" program?


Right, see my other email about the GUI being a scripted wrapper of CLI tools for a given workflow.

IMO, the Unix philosophy can still apply - only you have to look deeper
under the user-interface. Libraries, code abstraction and similar
techniques play a part. Defined interfaces between separate programs are
also important - such as the file-based forward-annotation interface
between gschem and PCB.

"libgerbv" is good at loading gerbv files. That means we could add that
functionality to a number of other programs as convenient without
re-inventing the wheel. We don't need (or want) separate GUI tools such
as gbr2pcb gbr2lpr gbr2pdf gbr2ps, as might be sensible for UNIX command
line tools. (NB. Such tools could probably be implemented quite
trivially using libgerbv)


Agreed, code maintenance comes into play. having libgerbv be the one spot for code to interact with gerber files make sense.

I've seen numerous times programmers abstracting just for the sake of abstracting. eg one guy was 'refactoring' (a word I hate) his code so that you could open a file, or a TCP socket or a UDP socket with one function call. My, "Why?" earned me a dumb look.

I personally don't use xgsch2pcb. I run gsch2pcb from a Makefile, but that's my personal preference. I prefer to script jobs that shouldn't need to be interactive. ymmv.

I use scripts a lot when working with text-based tasks, such as
programming and building code. For gEDA, when working in a GUI, I find
xgsch2pcb much more convenient than typing.

Similarly with Lyx.. I let its GUI take care of building the right image
formats and running pdflatex for me. I _could_ do it manually, but I
find it much more convenient to hit the "preview PDF" button in the
editor GUI.


Yeah, I tried four different CLI email clients and couldn't get them to work right for my email workflow. I eventually settled on setting up an imap server and a vpn. I've been using Thunderbird for years now with this setup. It isn't ideal, but it does allow me to get my job done with minimal hassle.

thx,

Jason.


_______________________________________________
geda-user mailing list
geda-user@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user