The Evolution Of Programmer

Does anyone know if the “Master Programmer” code bellow actually works? Unfortunately my Windows programming is not very good as yet…

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
        (cons 'Hello (list 'World))))

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[1]) { ptr[0] = 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 (ptr != &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 << flush;
 
        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 CHellocObjRef = 0;
 
CHelloCHello(IUnknown *pUnk)  CHelloBase(pUnk) {
 
        cObjRef++;
        return;
}
 
 
HRESULT  __stdcall  CHelloPrintSz(LPWSTR pwszString) {
 
        printf("%wsn", 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] = '';
        wcsT[0] = '';
 
        if( argc[1]) {
               mbstowcs(wcsPath, argv[1], strlen(argv[1]) + 1);
               wcsupr(wcsPath);
        } else {
               fprintf(stderr, "Object path must be specifiedn");
               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 %wsn", wcsPath);
         printf("Text String %wsn", 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, Worldn"
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 unrecognised

June 4, 2007

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>