[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