>>> > 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
>>> >
>>> > ***end***