|
|
|
|
|
by smoyer
3957 days ago
|
|
I spent the first twenty years of my career as an embedded systems engineer and there are two specific advantages I gained from that experience: 1) When your writing code for an underpowered microcontroller, you have a plan before you start. This plan includes execution speed and memory usage targets. 2) When you're sending thousands (hundreds of thousands or millions) of non-reprogramable devices into the field, you have a test plan (and comprehensive test suite) that guarantees correctness and performance. Do you know your "machine"? For instance, if you're working with a language that runs on the JVM have you read the JVM specification? (It's the equivalent of your micorcontroller's data-sheet). The part of this manifesto I agree with is that you should thoroughly understand everything "beneath" your application. |
|
I value the work you do, but please don't imply that tests can guarantee correctness. Tests can never prove the absence of bugs! To guarantee correctness we need to treat programs as mathematical objects.