Encapsulation, Inheritance, Polymorphism, and…
June 25, 2004 – 2:05 pmOne of the blogs I read (can’t remember which) said a couple of weeks
ago that almost all of the programming productivity gains we ascribe
to OO are in fact due to memory management and reflection. The first
stops average programmers from doing stupid things; the second allows good
ones to do amazing things. Neither absolutely requires a VM, but all
the languages that offer them these days are VM-based. (OK, so it’s a
stretch to call C# a VM-based language, but close enough.)
I was reminded of this while reading:
Kanglin Li and Mengqi Wu: Effective Software Test Automation. Sybex, 2004, 0782143202, 408 pages.
The tool this book describes uses run-time reflection to find callable
methods in the code under test, .NET CodeDOM to generate testing
code to call those methods, and Excel (yes, Excel) as a UI. The
combination lets QA engineers enter tests in a spreadsheet, then
click a button to make the tool generate the code to enact those
tests. You could do this in C++ (or even in C), but the
effort required would be so great that I doubt anyone would.