Category Archives: Programs Design

On mutable shared state

Problems with mutable shared state are often discussed in a concurrent programming context. However, those who are lucky enough to avoid concurrent programming can still fall in trouble because of mutable shared state. First pitfall is a global variable. Everyone knows global variables are bad. Although in software design there is no absolute truth or principle,… Read More »

Procedural abstraction vs code container

I am still fascinated when I think about the invention of a subroutine. It was the transition from a huge list of commands (ancient program) to the set of subprograms glued together for achieving some computation purpose. The mechanism of subroutine was invented to support the developer in his/her procedural abstractions design. The developer back… Read More »