software engineering - thePastor/Singularity Wiki

A good coder treats his code like a Samurai treats his sword: for perfect precision and durability. The reason to use such a tool is another path. You could say it is related to understanding the problems of the world -- as is why to build it: to master the machine. This hones the Samurai him/herself.

  • One can always trade processing time for memory and vice versa. Need better processing performance? Use more memory. Need to use less memory? Use more processing time. A variable assignment, you could say, is where it meets 1:1.
  • The elegance of the coding enterprise spirals upwards endlessly. Just as good writers in human language invent new, sophisticated words to express complex thoughts with better precision and brevity. There is no upper-bound to how elegant one can specify a complex program.
  • Any engineering challenge can be met with one of four solution-paths (macro/micro):
    1. Different HardwareArchitecture: better design that matches the problem domain.
    2. A layer of indirection (like pointers) or encapsulation (like functions): adding or reducing dimensionality.
    3. Greater precision: going deeper into the code (like bit -level tweaking).
    4. Adding more processing power or memory, but see #1.
  • Any design that requires endless processing availability and memory is bad science, making bad choices that will effect the whole life-cycle of the product. It's poor science, because the machine is doing the work, not the scientist. Most such designs can be replaced by employing maxim option #2: better architecture.
  • Design deficiencies are heralded by one of 4 measurable factors:
    1. extra I/O (excessive, annoying, unnecessary, or ugly screen writes)
    2. thrashing of your memory
    3. heat from the hardware
    4. crumbs of data left around after execution

See also:
⚠️ **GitHub.com Fallback** ⚠️