Mail Archives: geda-user/2012/12/14/23:08:29
On Fri, 14 Dec 2012, John Doty wrote:
> On Dec 14, 2012, at 4:18 PM, Britton Kerin wrote:
>
>> I find this really surprising, since for me pcb was the simple part of gEDA
>> to learn. It was the combination of figuring out which attributes had to
>> be set in gschem, how symbols and footprints connected together, and how
>> the whole arrangement was propagated into pcb that was painful.
>
> But gschem is so easy to understand. Everything is accessible. Select a symbol, Hs, and you can see its construction down to the level of individual primitives. Primitives are simple things, pretty easy to understand. Modify any attribute. Add new attributes. Draw lines, text, whatever. Encapsulate arbitrary complexity in a symbol with hierarchy. Make it work for you.
By the way, I have similar experience as Britton Kerin.
I agree with John that the foundation of gschem is simple, but there are a
lot of other things on top of gschem which make things more complicated.
Understanding symbols and attributes was easy, but implications are not
(heavy vs. light symbols, what do you need to do to get a heavy symbol
off of VCC, 3 different attributes per pin, side effects of
multiple components with the same refdes, slotting, the :1 for net names,
etc). I still learn new side effects of attributes of combination of
attributes even after using gschem for more than 6 years. Last time I
tried spice simulation for the first time and while doing so learned new
implications of attributes (not spice but geda related properties).
I fully undertsand John's preference for strong foundation, I prefer that
too; a minimal number of simple features from which the user can build
whatever he wants. However, it doesn't always result in easier-to-learn
tools, and PCB vs. gschem/gaf is a good example, at least in my case of
some users. There are examples of all combinations of foundation vs.
earning curve.
Also, what one finds such an elegant minimalistic foundation and what one
finds a hack may differ from user to user. One of my favorite examples is
how awk handles function arguments: once you understand the calling
convention (especially if you understand the stack), it's trivial and
elegant. A simple trick solves the problem of variable number of
arguments, optionally with default values (with some limitation) and local
variables. Without introducing new syntax. Others, especially from OOP
world find this an ugly hack and prefer to have an explicit syntax for
each feature they find distinct.
Just my offtopic 2 cents.
Regards,
Tibor
- Raw text -