josephoswaldgg@hotmail.com wrote:
On Jul 11, 2:42 pm, "Michael J. Mahon" <mjma...@aol.com> wrote:mdj wrote:On Jul 2, 11:23 am, "Michael J. Mahon" <mjma...@aol.com> wrote:With object orientation comes a surplus of indirection. ;-)From the point of view of speed, *avoidable* indirection is a *very* bad thing. Memory latency is hundreds of processor cycles, at least.Hey, this is comp.sys.apple2. We don't have wait-states on our memory! We don't need no steenking caches! Our level 1 cache is our level 2 cache is our main RAM. And that new- fangled IIgs has thousands of KB. Enough for anybody!
Right--and, interestingly, modern OO tools are conspicuous by their absence from the Apple II world. Not that the approach isn't used. NadaNet makes good use of OO concepts in the structure of its assembly language code and its interfaces, and at the level at which they are employed, those concepts exact little or no performance toll. The concepts revolving around modern GUIs are almost universally cast in terms of OO abstractions--of course, most of those abstractions were created decades ago by assembly language programmers. But making every reference to a local variable into an indirect reference has a tendency to slow down the inner loop (of course, caching (in registers and in caches) should be used by compilers to mitigate the losses). ;-) I worry that today's programmers have forgotten how all this came to be, and how many other excellent modularization frameworks exist and can be profitably used--like virtual machines or data flow, for example. -michael NadaNet file server for Apple II computers! Home page: http://members.aol.com/MJMahon/ "The wastebasket is our most important design tool--and it's seriously underused."