The Evolution of a Programmer

  The Evolution of a Programmer
 -----------------------------
 
   High School/Jr.High
   ===================
 
           10 PRINT "HELLO WORLD"
           20 END
 
   First year in College
   =====================
           program Hello(input, output)
             begin
               writeln('Hello World')
             end.
 
   Senior year in College
   ======================
           (defun hello
             (print
               (cons 'Hello (list 'World))))
 
   New professional
   ================
           #include 
           void main(void)
           {
             char *message[] = {"Hello ", "World"};
             int i;
 
             for(i = 0; i < 2; ++i)
               printf("%s", message[i]);
             printf("\n");
           }
 
   Seasoned professional
   =====================
           #include 
           #include 
 
           class string
           {
           private:
             int size;
             char *ptr;
 
           public:
             string() : size(0), ptr(new char('\0')) {}
 
             string(const string &s) : size(s.size)
             {
               ptr = new char[size + 1];
               strcpy(ptr, s.ptr);
             }
 
             ~string()
             {
               delete [] ptr;
             }
 
             friend ostream &operator <<(ostream &, const string &);
             string &operator=(const char *);
           };
 
           ostream &operator<<(ostream &stream, const string &s)
           {
             return(stream << s.ptr);
           }
 
           string &string::operator=(const char *chrs)
           {
             if (this != &chrs)
             {
               delete [] ptr;
              size = strlen(chrs);
               ptr = new char[size + 1];
               strcpy(ptr, chrs);
             }
             return(*this);
           }
 
           int main()
           {
             string str;
 
             str = "Hello World";
             cout << str << endl;
 
             return(0);
           }
 
   Master Programmer
   =================
           [
           uuid(2573F8F4-CFEE-101A-9A9F-00AA00342820)
           ]
           library LHello
           {
               // bring in the master library
               importlib("actimp.tlb");
               importlib("actexp.tlb");
 
               // bring in my interfaces
               #include "pshlo.idl"
 
               [
               uuid(2573F8F5-CFEE-101A-9A9F-00AA00342820)
               ]
               cotype THello
            {
            interface IHello;
            interface IPersistFile;
            };
           };
 
           [
           exe,
           uuid(2573F890-CFEE-101A-9A9F-00AA00342820)
           ]
           module CHelloLib
           {
 
               // some code related header files
               importheader();
               importheader();
               importheader();
               importheader("pshlo.h");
               importheader("shlo.hxx");
               importheader("mycls.hxx");
 
               // needed typelibs
               importlib("actimp.tlb");
               importlib("actexp.tlb");
               importlib("thlo.tlb");
 
               [
               uuid(2573F891-CFEE-101A-9A9F-00AA00342820),
               aggregatable
               ]
               coclass CHello
            {
            cotype THello;
            };
           };
 
 
           #include "ipfix.hxx"
 
           extern HANDLE hEvent;
 
           class CHello : public CHelloBase
           {
           public:
               IPFIX(CLSID_CHello);
 
               CHello(IUnknown *pUnk);
               ~CHello();
 
               HRESULT  __stdcall PrintSz(LPWSTR pwszString);
 
           private:
               static int cObjRef;
           };
 
 
           #include 
           #include 
           #include 
           #include 
           #include "thlo.h"
           #include "pshlo.h"
           #include "shlo.hxx"
           #include "mycls.hxx"
 
           int CHello::cObjRef = 0;
 
           CHello::CHello(IUnknown *pUnk) : CHelloBase(pUnk)
           {
               cObjRef++;
               return;
           }
 
           HRESULT  __stdcall  CHello::PrintSz(LPWSTR pwszString)
           {
               printf("%ws\n", pwszString);
               return(ResultFromScode(S_OK));
           }
 
 
           CHello::~CHello(void)
           {
 
           // when the object count goes to zero, stop the server
           cObjRef--;
           if( cObjRef == 0 )
               PulseEvent(hEvent);
 
           return;
           }
 
           #include 
           #include 
           #include "pshlo.h"
           #include "shlo.hxx"
           #include "mycls.hxx"
 
           HANDLE hEvent;
 
            int _cdecl main(
           int argc,
           char * argv[]
           ) {
           ULONG ulRef;
           DWORD dwRegistration;
           CHelloCF *pCF = new CHelloCF();
 
           hEvent = CreateEvent(NULL, FALSE, FALSE, NULL);
 
           // Initialize the OLE libraries
           CoInitializeEx(NULL, COINIT_MULTITHREADED);
 
           CoRegisterClassObject(CLSID_CHello, pCF, CLSCTX_LOCAL_SERVER,
               REGCLS_MULTIPLEUSE, &dwRegistration);
 
           // wait on an event to stop
           WaitForSingleObject(hEvent, INFINITE);
 
           // revoke and release the class object
           CoRevokeClassObject(dwRegistration);
           ulRef = pCF->Release();
 
           // Tell OLE we are going away.
           CoUninitialize();
 
           return(0);
           }
 
           extern CLSID CLSID_CHello;
           extern UUID LIBID_CHelloLib;
 
           CLSID CLSID_CHello = { /* 2573F891-CFEE-101A-9A9F-00AA00342820
*/
               0x2573F891,
               0xCFEE,
               0x101A,
               { 0x9A, 0x9F, 0x00, 0xAA, 0x00, 0x34, 0x28, 0x20 }
           };
 
           UUID LIBID_CHelloLib = { /*
2573F890-CFEE-101A-9A9F-00AA00342820
 */
               0x2573F890,
               0xCFEE,
               0x101A,
               { 0x9A, 0x9F, 0x00, 0xAA, 0x00, 0x34, 0x28, 0x20 }
           };
 
           #include 
           #include 
           #include 
           #include 
           #include 
           #include "pshlo.h"
           #include "shlo.hxx"
           #include "clsid.h"
 
           int _cdecl main(
           int argc,
           char * argv[]
           ) {
           HRESULT  hRslt;
           IHello        *pHello;
           ULONG  ulCnt;
           IMoniker * pmk;
           WCHAR  wcsT[_MAX_PATH];
           WCHAR  wcsPath[2 * _MAX_PATH];
 
           // get object path
           wcsPath[0] = '\0';
           wcsT[0] = '\0';
           if( argc > 1) {
               mbstowcs(wcsPath, argv[1], strlen(argv[1]) + 1);
               wcsupr(wcsPath);
               }
           else {
               fprintf(stderr, "Object path must be specified\n");
               return(1);
               }
 
           // get print string
           if(argc > 2)
               mbstowcs(wcsT, argv[2], strlen(argv[2]) + 1);
           else
               wcscpy(wcsT, L"Hello World");
 
           printf("Linking to object %ws\n", wcsPath);
           printf("Text String %ws\n", wcsT);
 
           // Initialize the OLE libraries
           hRslt = CoInitializeEx(NULL, COINIT_MULTITHREADED);
 
           if(SUCCEEDED(hRslt)) {
 
 
               hRslt = CreateFileMoniker(wcsPath, &pmk);
               if(SUCCEEDED(hRslt))
            hRslt = BindMoniker(pmk, 0, IID_IHello, (void **)&pHello);
 
               if(SUCCEEDED(hRslt)) {
 
            // print a string out
            pHello->PrintSz(wcsT);
 
            Sleep(2000);
            ulCnt = pHello->Release();
            }
               else
            printf("Failure to connect, status: %lx", hRslt);
 
               // Tell OLE we are going away.
               CoUninitialize();
               }
 
           return(0);
           }
 
 
 
   Apprentice Hacker
   ===================
           #!/usr/local/bin/perl
           $msg="Hello, world.\n";
           if ($#ARGV >= 0) {
             while(defined($arg=shift(@ARGV))) {
               $outfilename = $arg;
               open(FILE, ">" . $outfilename) || die "Can't write $arg:
 $!\n";
               print (FILE $msg);
               close(FILE) || die "Can't close $arg: $!\n";
             }
           } else {
             print ($msg);
           }
           1;
 
 
 
   Experienced Hacker
   ===================
           #include 
           #define S "Hello, World\n"
           main(){exit(printf(S) == strlen(S) ? 0 : 1);}
 
 
   Seasoned Hacker
   ===================
           % cc -o a.out ~/src/misc/hw/hw.c
           % a.out
 
 
 
   Guru Hacker
   ===================
           % cat
           Hello, world.
           ^D
 
 
 
   New Manager
   ===================
           10 PRINT "HELLO WORLD"
           20 END
 
 
 
   Middle Manager
   ===================
           mail -s "Hello, world." bob@b12
           Bob, could you please write me a program that prints "Hello,
 world."?
           I need it by tomorrow.
           ^D
 
 
 
   Senior Manager
   ===================
           % zmail jim
           I need a "Hello, world." program by this afternoon.
 
 
 
   Chief Executive
   ===================
           % letter
           letter: Command not found.
           % mail
           To: ^X ^F ^C
           % help mail
           help: Command not found.
           % damn!
           !: Event unrecognized
           % logout


  VI This Site powered This Web page is Lynx Friendly!