Neil Swart

Hello there fellow WikiZens. I retired from paid programming after eight years with a big corporation, where we used HP minicomputers running an obscure HP fourth-generation language (remember those?) called Speedware.

Since my retirement I've been free to pursue my own idiosyncratic interests, which have involved learning C++ with MFC and the Win32 API, and using OpenGL to develop three-dimensional simulations. So far I've spent five years at it... how time flies when you're having fun! I believe the sheer joy of being able to do exactly what I want, the way I want, whenever I want, is something that very few working programmers can claim. But knowing this Wiki, I'm sure that SOMEBODY will soon disagree with me...

My primary though somewhat fuzzy goal is to create a far more "visual" programming environment than what is available currently. I really see tools like MS Visual C++ as "visual" largely in name only. I guess I'm envisioning a kind of CASE tool that would let you assemble 3D visual blocks representing logical chunks of pre-tested code into a working program with very little coding.

Another application would be to use visual representations of an existing program's code to help in understanding and debugging it. Since all program logic can ultimately be represented as a mechanical device moving the visual equivalent of on and off bits around, I believe this concept is theoretically feasible. The problem is that you have to invent an entirely new visual "language" to represent things like "if" statements and "for" loops, and this is harder than you might think.

I guess my most recent success was in using the visual approach to help me debug adding regular expressions to a C++ program using the Perl library. RegularExpressions, while incredibly powerful, can be a real bugger to learn, and when you're testing them it's hard to see why they succeed or fail when used on a particular string.

I found that by visualizing my string array as a series of sequential boxes containing the characters of the string, and then using colored arrows to indicate the successive steps the regex pattern match made during the matching process, it became trivial to watch the process proceed and spot the errors I was making. It also allowed me to find several bugs in my custom string manipulation functions that I had never noticed before! It's great to have that feeling of discovery, and to think you're working on something that no one else really seems to be doing.

One of the things I love about this Wiki is that the continual stimulation of new ideas and different points of view it provides seems to help me come up with new ideas for my pet projects. Plus, reading Wiki is way more fun than doing the hard work of systems development...


CategoryHomePage


EditText of this page (last edited March 31, 2004) or FindPage with title or text search