Source Code

C and C++ Source Code
These files are library classes and functions written in C and C++.

I learned C in the mid-1980s and the original version of some of these files date all the way back to that time period. C, and later C++ was the language I used professionally for many years. I also used it to build applications and tools for my personal use. (Pascal was my first "personal use" language and I built a significant code base in it; but over time it was all lost in hard drive crashes, accidental floppy disk disposals, and the other ensuing effects of primitive code management infrastructure and practices.)

I have not used these C languages in several years and when I went back and looked at the code in anticipation of putting it out on this web, I realized that I had created a quite extensive custom development environment and framework for them, with several supporting custom tools for use in build scripts. As a result, the individual files are tailored to take advantage of that environment and would need some rework to be usable outside of it. An example is the numerous macros I created by taking advantage of the C/C++ preprocessor and which I put into common header files that each implementation file would include. I also created ".pub" and ".prv" files and the executable tools to employ them. These were header files and represented my attempt to create Ada-like or Modula-like "interface" files in C/C++.

To see all the available C and C++ source code files, click here.

C# Source Code
These files are library classes written in C#.

C# has replaced Java as my "language of choice". I regard it as a more modern language than Java. Some examples include, extension classes and a fully unified type system in which all types are objects, even the basic data types of int, double, char, etc.. It has some highly desirable (to me) features that Java left out for historical reasons including unsigned numbers, operator overloading, indexing, delegates, and properties. Its deficiency is the same one as exhibited by most Microsoft products and that is bloat. Microsoft tends to add every new feature they think of to their products - whether they fit in elegantly or not - and C# is no exception. Despite that, I like C# and am working toward making it the language I build my everyday apps with.

To see all the available C# source code files, click here.

Java Source Code
Each of these files is a library class written in Java. My intent with these files was to create a class library of general utility for building my personal computer applications.

These files date back anywhere from the present day to the year 2000 timeframe so they span a long period of time in which my understanding of the object oriented paradigm and my related skills, preferences, and style evolved significantly. They also span some significant evolutions of the Java language itself.

In terms of quality, they also vary. I coded some very quickly in order to get some needed functionality up and running quickly. Others I coded more carefully, paying closer attention to proper object-oriented practices and employing more carefully researched algorithms, techniques, and language features.

To see all the available Java source code files, click here.

VBA Source Code
These files are modules written in VBA (Visual Basic for Applications). Some are general purpose, however, most are Excel specific and some are Word specific.

I am not an expert Basic language programmer. I started by occasionally writing functions in VBA to use as worksheet functions in Excel and learning just enough of the language as I went to meet my immediate need. Since I did not know - or care - how to get Excel to use class object methods as worksheet functions (if that is even possible), I made no attempt to use VBA's object-oriented programming paradigm in my code. Additionally, given my early objective of opportunistically creating simple worksheet functions, I viewed the effort required to learn to use VBA in an object-oriented fashion as too time consuming for what I was doing and as probable overkill anyway. Consequently, all the code I developed in VBA employed the procedural programming paradigm. Over time, I accumulated a large amount of VBA code using this approach and it reached a point where it would have been a lot of work to refactor it into object-oriented code. So, I stayed with procedural programming and all these files are collections of procedural functions.

To see all the available VBA source code files, click here.