tech tantra thursday
for thursday june 16, 2011 ← prev ( 2 ) next → Cosmic Encounter® Online at Facebook illustration
Object oriented design and code are supposed to offer a partial solution to this dilemma and, in some ways they do . . . but objects have methods and . . . well, you get the picture. Often, there you are again, reusing code for similar methods and tweaking it here and there. “Setters” and “getters” - methods for setting and retrieving values for object attributes are an extreme example. You can't say to the machine “well, you know how to do it.” It's all and always very literal. And the more complex and interesting methods often reuse ideas and actual algorithms or processes from methods in other objects. A few source links for me to look at and swim around in looking for connections are: One more thing before I start looking for connections. I'm especially interested in technologies for storing, organizing, retrieving and asking useful questions about information and especially, all of the useful things that can be done in relational databases which are a big part of my life, or in similar technologies like XML and object “databases”. Perhaps looking at a basic element in relational database theory, the tuple, an ordered list of elements, will be useful. Are there useful connections to the facts of code reuse here? Looking back I see I have defined a number of different kinds of things that might benefit by being better organized: 1. initial variables, 2. algorithms (or more generally, repeatable solutions), 3. steps, 4. results (new or modified information created by the work of 2 and 3), 5. requirements for how the results will be used or “what comes next” and 6. differences. Are there any others? One thing I didn't mention in my original description of what sort of code I might be reusing was calls to other methods; often the generic code I'm reusing makes calls to other methods to get information and accomplish some task that is part of the work at hand. So that's number 7. calls to other code. There will be others but this list will do for a start. Now, what are the possible connections between these things and orthogonality, or an orthogonal matrix, or an orthogonal group, or tuples? But . . . sigh . . . it would be misleading if I didn't mention that one set of connections already exists in the programming IDEs (Integrated Development Environments) and in the different kinds of static code analysis and dynamic code analysis tools programmers use to step back and see the big picture, and discover and fix potential or existing problems in their code. And most programmers work in programming environments (at least for some of the languages they program in) which allow them to easily jump from a call to a specific method or sub routine to the definition of that method or sub routine and visa versa (see and easily navigate to all of the places a particular method or sub routine is called). And there are object browsers, libraries, development kits, components, etc. in many flavors, which allow easy access to many already existing objects, methods and routines, specific packaged functionality and . . . it's almost endless, certainly more than any one programmer or even a very talented group of programmers can ever really completely understand and use. So that's another potential area of information for me to explore. How well do the existing tools organize the elements common to my experience of how I reuse code? And are there any existing tools which do (or say they do) a good job of storing, organizing, retrieving and allowing someone to ask useful questions about the elements in code reuse which I've defined above. . . . continued . . .
for thursday june 16, 2011 ← prev ( 2 ) next →
Cosmic Encounter® Online at Facebook illustration
events prev/first next/last tech tantra
just thinking . . . for fun
|