When i started xschem (it was a hobby project so no schedules, no hurries) subversion was starting to become the big enhancement over CVS. Git was not existing at all at the time. First machines i used to run xschem were solaris sparc 10/sparc 20 machines, then linux. I believe for big community projects git is now the way to go. For smaller sized projects (like xschem, ~40K sloc) the difference doesn't matter much. I also put two eyes on portability. Xschem is compiled in plain C89 (std=c89 -pedantic -Wall ) and does all drawing operation with direct xlib calls, and despite most people laughing on the choice of tcl-tk for scripting and gui i had
very little trouble due to API changes in 22 years (from tcl-tk 7.5/4.1 to tcl-tk 8.6), ask a gtk+ developer about changelogs between gtk1, gtk2, gtk3, gtk4 they will tell you it is a real PITA. Xschem runs on IRIX machines, on Solaris, on ARM and on 32 bit architectures with no single compatibility #ifdef in the code (there are some for windows 🙂). The whole effort on xschem GUI development is really no more than 6% of the whole man-work, and this leaves me time for the more interesting things 🙂....
That said, i am an electronic engineer and decided to do a software project due to my frustration with Cadence DFII/Virtuoso, so there are probably lot of design decisions that could be criticized by capable software engineers 🙂. I used a lot xschem when working at micron for prototyping / simulating analog/digital circuits, because it is faster, and when almost done i just did the final signoff with the 🏢corporate🏢 tools.
Release history:
08/04/1998:
First working graphic engine: draw wires, lines, rectangles, move,pan, zoom,
delete, copy, load symbols, save symbols.