Very early on in programming, I came to understand that programming a computer provides a unique opportunity to test concepts. If your understanding of the problem is correct, and your understanding of the relationship between the code and the machine, and the machine and the work, is correct, and your expression of that understanding is correct, the expected results will occur. There was a moment of awe as I realized that you could model ''anything'' with software. This has been a very empowering concept. I wonder if anyone else out there has gone through this "oh, wow, I really ''get'' it" thing? ------ I consider such a statement almost a tautology. Of course we are modeling ''something''. Anything that produces the right answers can be considered to be modeling something. The battles are over exactly what we are modeling and how to model it. Plus, many domains deal with intellectual and virtual property or things rather than anything outright physical. If modeling something that is by its nature virtual or mental, then many psychological factors and differences start to come into play such that it is often hard to communicate about what is actually being modeled and how best to model it. This is perhaps the reason for so many HolyWar''''''s. Perhaps we are all just modeling our own heads, and different heads have many different ways to solve/model the same problem. It is the gray-matter version of TuringEquivalency.