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 pragmatic. 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 know. 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 geda-user@moria.seul.org http://www.seul.org/cgi-bin/mailman/listinfo/geda-user