There is also a very worrying problem: Many languages do not support proper arrays. Languages like Java and most scripting languages store all objects on the heap which means an object array is actually an array of pointers. If you are iterating through an array of pointers and following each pointer, you are no better off than if you were using a linked list. Iterating through an array of objects in Java is O(K√N). This can be mitigated by allocating all the objects in order right after each other, in which case the allocator will hopefully put them next to each other in memory. But if you are going to be allocating the objects at different times or shuffling them around, then you are out of luck.
— Emil Ernerfeldt, The Myth of RAM, part III
Unit testing was a staple of the FORTRAN days, when a function was a function and was sometimes worthy of functional testing. Computers computed, and functions and procedures represented units of computation. In those days the dominant design process composed complex external functionality from smaller chunks, which in turn or chestrated yet smaller chunks, and so on down to the level of well-understood primitives.
Each layer supported the layers above it. You actually stood a good chance that you could trace the functionality of the things at the bottom, called functions and procedures, to the requirements that gave rise to them out at the human interface. There was hope that a good designer could understand a given function’s business purpose. And it was possible, at least in well-structured code, to reason about the calling tree. You could mentally simulate code execution in a code review.
Object orientation slowly took the world by storm, and it turned the design world upside-down. First, the design units changed from things-that-computed to small heterogeneous composites called objects that combine several programming artefacts, including functions and data, together inside one wrapper. The object paradigm used classes to wrap several functions together with the specifications of the data global to those functions. The class became a cooki e cutter from which objects were created at run time. In a given computing context, the exact function to be called is determined at run-time and cannot be deduced from the source code as it could in FORTRAN. That made it impossible to reason about run-time behaviour of code by inspection alone. You had to run the program to get the faintest idea of what was going on.
So, testing became in again. And it was unit testing with a vengeance.
— James O Coplien, Why Most Unit Testing is Waste
Quelque chose de complexe n’est pas utile et tout ce qui est utile est simple. Toute ma vie, ce fut ma devise. — Mikhaïl Kalachnikov
But for almost all writers, the act of discovery is mixed up with the act of perfecting the presentation, because the actual words and the need to select and prune act as triggers and forces on the material in ways that can both require more discovery and cause it whether required or not. And so while each writer may always start with an act of discovery and always end with an act of perfecting, the proportion of each type of act and the order in which they appear will be otherwise as varied as possible. We might be able to say that the statistical behavior of writers shows that more acts of discovery take place near the beginning and more acts of perfecting take place at the end, but this is unimportant information for any particular writer. It can be argued that all writing is creative writing, since if one is writing the way one should, one does not know what will be on the page until it is there. Discovery remains the ideal.
— Richard Hugo, The Triggering Town
L'histoire du zèle inconsidéré et orgueilleux d'Oza est pleine de leçons pour nous, même dans ses moindres détails.
C'est manquer de foi que de penser que l'Église est en danger, que de prendre ses souffrances pour des dangers, et c'est aussi manquer de foi que de croire que nous pourrons la secourir par des moyens de notre invention ; mais c'est manquer de foi de la façon la plus coupable que de douter de l'arrivée du secours de Dieu comme Dieu le voudra, et au temps où Dieu le voudra. Nous n'avons qu'une manière bien simple de secourir l'Église dans tous les temps et dans tous les lieux : c'est l'obéissance à ses lois, à ses coutumes, aux désirs exprimés par son Chef.
« Et lorsqu'on fut arrivé près de l'aire de Chidon, Oza étendit la main pour soutenir l'Arche, parce qu'il vit qu'un des bœufs l'avait fait un peu pencher en regimbant ; c'est pourquoi le Seigneur fut irrité contre Oza, et il le frappa pour avoir touché l'Arche, et il tomba mort devant le Seigneur. » (I. Paralip. XIII)
— R. P. Frederick William Faber, De la dévotion à l'Église, Sermon prêché à Londres le jour de la Pentecôte, Bray et Retaux, 5e ed., Paris, 1875.