[Toybox] awk (Re: ps down, top to go)

Andy Chu andychup at gmail.com
Mon May 30 01:32:14 PDT 2016


> I've long had a theory there are two types of programmers,
> mathematician-based and engineering-based, who approach programming in
> fundamentally different ways. I've worked with mathematicians, and I got
> a math minor for the same reason an acrophobic person would go skydiving
> (I refused to be beaten by it), but I am TOTALLY an engineer. It's
> plumbing and clockwork metaphors all the way down around here, and one
> of my favorite conference talks was somebody listing the bugs they found
> in a project that had been formally proved "correct". :)
>
> I've seen a few programmers who are equally comfortable working in both
> modes at once (Fabrice Bellard is the ur-example, and I work for another
> one at $DAYJOB, Jeff Dionne). But they're few and far between.
>
> I mention this because the article at that link looks like ivory tower
> academic fluff to me. I can drag out the crampons and grind my way
> through a closer reading, but I'm 99% certain LL is _not_ an existing
> software package or library, it appears to be a way of applying the
> International Code of Zoological Nomenclature to programming languages
> so academics can sort the papers they write about them in the Journal Of
> Open Source Tenure Review.

If you want to write a parser without knowing any parsing algorithms,
I wish you good luck...  If a grammar is LL(1), it basically means
that, in a top-down parser, it's easy to write a prediction for which
production you are in by looking at the next token, without resorting
to arbitrary backtracking (i.e. exponential runtime in general).

Whether a programmer thinks like a mathematician or engineer is mostly
orthogonal to whether their code works.  The most important predictor
is whether it is tested -- I follow the mantra "if it's not tested,
it's broken", and I see nothing in toybox that is a counterexample to
that.

You can swear up and down until you're blue in the face about how
careful you are with the code, but without tests, you will write bugs,
and old bugs will resurface.

Are you interested in the testing patches (i.e. sanitizers and
coverage) I sent a couple months ago?  Or do you have another plan to
integrate those tools?  Those will significantly increase the value of
your tests and thus the quality of the project.

Andy



More information about the Toybox mailing list