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

Re: gEDA-user: Reinventing the wheel

On Mon, 2011-05-16 at 12:44 -0400, DJ Delorie wrote:
> > I've always been interested in CAD programs and thought of making
> > a schematic/pcb one from scratch.
> I've never truly understood why people would rewrite a (potentially)
> huge application set "just because".  Why not start with the existing
> tools and just rewrite the parts you're interested in?  Like, start
> with pcb's HID modules but swap out the core?
> (and if you really want to get *that* involved in pcb layout tools,
> there *are* parts of pcb that could stand to be ripped out and
> replaced... ;)

I have no idea whom you cite, sorry.

Many people dream about designing and building an own house -- and most
computer science students dream about writing a compiler from scratch --
at the beginning of the education. Later they learn how difficult it is
(writing a good one for a complicated language) and do something easier.

Of course, only a very young child can do really something from scratch
-- older people always build on existing knowledge, even when they write
new code.

Reasons for writing from scratch:
- licenses
- other programming language
- other GUI toolkit
- other operating system
- other target audience (Fritzing has other target than gEDA/PCB/KICAD
- learning
- fun

CLANG <--> gcc , wayland <--> xfree86, inkscape <--> xfig -- a few
promising rewrites from scratch.

I think for learning purposes writing something from scratch is always a
good decision. In most cases improving existing software is much more

In my opinion, writing a PCB layout tool from scratch is very much work
-- at least 5k hours for a very smart guy. (A group of people may need
much more than 5k hours total, because they have to agree on language
and Toolkit before starting and may waste much time with discussions.)  

For a simple schematics editor the task is much easier in these days, we
have support through nice OO languages like Ruby or Python, GUI Toolkits
like GTK or QT, and drawing support by libraries like cairo. So it was
my idea that writing a (basic) gschem clone can be done in 1k hours
resulting in about 15k lines of code. I started writing just for fun in
last summer, now after about 400 hours of work I think that my initial
estimation was not too bad, I think 25% is done. But I am still learning
GTK, Cairo and Ruby, so progress was slow. If I really should finish
that work, what is the benefit? 15k lines of code instead of 120k, only
Ruby code, instead of C mixed with guile, and a smarter user interface.
Not much, but maybe a better skeleton for other contributors? I don't

Today, I think that working on the PCB (Topo)-Router instead of a gschem
clone would have been a much more valuable task. But until one year ago
Anthony's progress was so awesome, that it was my feeling that I had not
much to offer in that direction. Now Anthony an his router has vanished
-- but still I think that that task is better suited for really smart
people, smarter than me. From time to time, when I have contact to a
smart one with interests in electronics and programming, I tell him
about that topic. Now that Anthony's homepage has disappeared, it is
even more difficult to catch smart guys.

geda-user mailing list