[PLUG-TALK] Underhanded C

Keith Lofstrom keithl at gate.kl-ic.com
Sun Jun 7 21:33:47 UTC 2015


On Sun, Jun 07, 2015 at 01:16:19PM -0700, Rich Shepard wrote:
> Is a potential solution more complex tools?

The solution is probably a meshwork of simple tools.  One of the
best features of linux/posix/unix is that it is a large set of
small tools with defined interfaces that can be piped together. 

I have my biggest problems with "all-singing, all-dancing",
dependency-ridden monstrosities like gnome, or big EE CAD tools
like Cadence and Mentor and Synopsys;  all video-game wannabies.
I cannot see what is in the box.  Maybe that saves time, but it
also forces me to be stupider than the software architects.

Instead, I spend time writing little point tools, then
stringing them together into a system, ad hoc, creating lots of
human-readable intermediate files.  I can see where the process
veers off into the weeds.  Yes, I build elaborate collections of
tools, but when I am done, I can go through a few transparent
and mostly-automated steps to generate the N+1 version of a
particular chip design.  I can rewrite and validate a few of the
point tools for new technologies, while leaving the rest alone. 
When a bug appears, I can use grep and sed to scan through one
or two of the intermediate files to find it.

My code is primitive - and usually 2/3 comments.  Others can
write code with lots of complex language structures and lots of
optimizations, but slow and correct is better than fast and
impressive.  If a one-time-only job is slow, it is better to
borrow a faster computer than to add complexity.  It is even
better to understand the problem, streamline thinking, and
avoid time-wasting complexity.  Often, the most time-consuming
tasks are the ones we do not actually have to do.

Keith

-- 
Keith Lofstrom          keithl at keithl.com



More information about the PLUG-talk mailing list