I was reflecting recently on what it was like during my first few weeks as a professional software developer just out of college. My first job out of college was for a small consulting firm that specialized in writing custom Microsoft Windows programs in C. This was 16 bit Windows 3.1. One way that I went about getting acquainted with Windows programming was to take home the SDK programmers reference and read the API from a to z. This actually proved to be beneficial as horrible as it may actually sound. I believe I got through the API’s in about one weekend of casual reading. Who can forget CreateWindowEx()?
HWND CreateWindowEx(
DWORD dwExStyle,
LPCTSTR lpClassName,
LPCTSTR lpWindowName,
DWORD dwStyle,
int x,
int y,
int nWidth,
int nHeight,
HWND hWndParent,
HMENU hMenu,
HINSTANCE hInstance,
LPVOID lpParam
);
Shortly after this a lot of Windows programmers, myself included, went through a transition period as a C++ compiler and MFC was made available from Microsoft. What a wonderful idea it was and once again the power of abstraction in computer science came to the rescue to hide the gory details. At the time, MFC was a wonderful thing.
Bringing this to today’s environment, one could not reasonably read through all of the JDK in a weekend I don’t believe. It would be a task more painful than reading through the Windows SDK for me. The breadth of the entire programming environment for Java is formidable if you attempt to survey the entire landscape. We have abstractions built upon abstractions. Entire frameworks get raised up to correct shortcomings in the JDK, or in the best cases provide abstractions that may have had little value when the JDK was first designed.
I think much of our progression has come from the power of the Internet as a collaboration tool. When I took up Windows programming the only sharing of ideas and issues came from around the office. The notion of using the Internet as a learning or collaboration medium for professional developers, at least for me, didn’t really exist at the corporate level. Collaboration is a wonderful thing.
As an exercise, it would be quite funny to re-create the typical 16 bit Windows development environment and attempt to write some small application that by today’s standards might be quite trivial. I would venture to guess that using the 16 bit Windows SDK to send and receive an XML request over HTTP would be a challenge. Recreating the environment alone would take time. Anyone still have a copy of Brief for DOS?
You must be logged in to post a comment.