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
  #include <stdio.h>
   void main(void)
   {
     char *message[] = {"Hello ", "World"};
     int i;
     for(i = 0; i < 2; ++i)
       printf("%s", message[i]);
     printf("\n");
   }

                             New Professional
   #include <stdio.h>
   void main(void)
   {
     char *message[] = {"Hello ", "World"};
     int i;
     for(i = 0; i < 2; ++i)
       printf("%s", message[i]);
     printf("\n");
   }

                           Seasoned professional
  #include <iostream.h>
  #include <string.h>
   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(<windows.h>);
       importheader(<ole2.h>);
       importheader(<except.hxx>);
       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 <windows.h>
   #include <ole2.h>
   #include <stdio.h>
   #include <stdlib.h>
   #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 <windows.h>
   #include <ole2.h>
   #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 <windows.h>
   #include <ole2.h>
   #include <stdlib.h>
   #include <string.h>
   #include <stdio.h>
   #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 <stdio.h>
  #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