Next: , Previous: , Up: Failure   [Contents][Index]


14.1 Libmarpa’s approach to failure

Libmarpa is a C language library, and inherits the traditional C language approach to avoiding and handling application programming errors. The burden this C tradition puts on the application programmer might strike readers unfamiliar with that tradition as appallingly large.

But in the early 1970’s, when the C language first stabilized, the alternative, and the consensus choice for its target applications, was assembly language. In that context, C was radical in its willingness to incur a price in efficiency in order to protect programmers from themselves. C was considered to take a excessively “hand holding” approach which very much flew in the face of consensus.

The decades have made a large difference in the trade-offs, and the consensus about the degree to which even a low-level language should protect the user has changed. It seems inevitable that C will be replaced as the low-level language of choice, by a language that places fewer burdens on the programmer, and more on the machine. The question seems to be not whether C will be dethroned as the “go to” language for low-level progamming, but when, and by which alternative.

Modern hardware makes many simple checks essentially cost-free, and Libmarpa’s efforts to protect the application programmer go well beyond what would have been considered best practice in the past. But it remains a C language library. The Libmarpa application programmer must be prepared to exercise the high degree of carefulness traditionally required for C language programming. Libmarpa places the burden of avoiding irrecoverable failures, and of handling recoverable failures, largely on the application programmer.


Next: , Previous: , Up: Failure   [Contents][Index]