I'm Brett Slatkin and this is where I write about programming and related topics. You can contact me here or view my projects.

27 April 2014

For the record, here is the definition of "orthogonality" in the field of programming:

In computer programming, orthogonality in a programming language means that a relatively small set of primitive constructs can be combined in a relatively small number of ways to build the control and data structures of the language.

The Go FAQ mentions this concept:

Another important principle is to keep the concepts orthogonal. Methods can be implemented for any type; structures represent data while interfaces represent abstraction; and so on. Orthogonality makes it easier to understand what happens when things combine.

And here is the definition of "emergent behavior" in the field of physics:

In physics, emergence is used to describe a property, law, or phenomenon which occurs at macroscopic scales (in space or time) but not at microscopic scales, despite the fact that a macroscopic system can be viewed as a very large ensemble of microscopic systems.

An emergent property need not be more complicated than the underlying non-emergent properties which generate it. For instance, the laws of thermodynamics are remarkably simple, even if the laws which govern the interactions between component particles are complex. The term emergence in physics is thus used not to signify complexity, but rather to distinguish which laws and concepts apply to macroscopic scales, and which ones apply to microscopic scales.

Even non-programmers can guess the meaning of this phrase because they know the words "emergent" and "behavior". Seems like an apt metaphor to me. I prefer normal words over jargon because it's accessible to newbies.
© 2009-2024 Brett Slatkin