[Home] [By Thread] [By Date] [Recent Entries]
I once saw a version that added: ====================================================== Ex-programmer who has been promoted to project manager ====================================================== "Write me a program that says 'Hello World'" ========================================== Ex-programmer who has been promoted to CEO ========================================== "What is the business benefit of all this code we are writing?" Michael Kay > -----Original Message----- > From: Jonathan Robie > [mailto:jonathan.robie@d...] > Sent: 12 March 2003 18:35 > To: xml-dev@l... > Subject: Off Topic: Evolution of a Programmer > > > This was forwarded to me - I have no idea where it came from > originally. > > Jonathan > > =================== > 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 > CoInitiali, 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 > > ===================== > AXE System programmer > ===================== > > LL0: > .seg "data" > .seg "text" > .proc 04 > .global _main > _main: > !#PROLOGUE# 0 > sethi %hi(LF26),%g1 > add %g1,%lo(LF26),%g1 > save %sp,%g1,%sp > !#PROLOGUE# 1 > .seg "data1" > L30: > .ascii "Hello, World\012\0" > .seg "text" > .seg "data1" > L32: > .ascii "Hello, World\012\0" > .seg "text" > set L32,%o0 > call _strlen,1 > nop > mov %o0,%i5 > set L30,%o0 > call _printf,1 > nop > cmp %o0,%i5 > bne L2000000 > nop > mov 0,%o0 > b L2000001 > nop > L2000000: > mov 0x1,%o0 > L2000001: > call _exit,1 > nop > LE26: > ret > restore > LF26 = -96 > LP26 = 96 > LST26 = 96 > LT26 = 96 > .seg "data" > > 0000000 0103 0107 0000 0060 0000 0020 0000 0000 > 0000020 0000 0030 0000 0000 0000 0054 0000 0000 > 0000040 033f ffff 8200 63a0 9de3 8001 1100 0000 > 0000060 9012 2000 4000 0000 0100 0000 ba10 0008 > 0000100 1100 0000 9012 2000 4000 0000 0100 00 ba10 0008 > 0000100 1100 0000 9012 2000 4000 0000 0100 0000 > 0000120 80a2 001d 1280 0005 0100 0000 9010 2000 > 0000140 1080 0003 0100 0000 9010 2001 4000 0000 > 0000160 0100 0000 81c7 e008 81e8 0000 0000 0000 > 0000200 4865 6c6c 6f2c 2057 6f72 6c64 0a00 4865 > 0000220 6c6c 6f2c 2057 6f72 6c64 0a00 0000 0000 > 0000240 0000 000c 0000 0608 0000 006e 0000 0010 > 0000260 0000 060b 0000 006e 0000 0014 0000 0286 > 0000300 ffff ffec 0000 0020 0000 0608 0000 0060 > 0000320 0000 0024 0000 060b 0000 0060 0000 0028 > 0000340 0000 0186 ffff ffd8 0000 004c 0000 0386 > 0000360 ffff ffb4 0000 0004 0500 0000 0000 0000 > 0000400 0000 000a 0100 0000 0000 0000 0000 0012 > 0000420 0100 0000 0000 0000 0000 001a 0100 0000 > 0000440 0000 0000 0000 0020 5f6d 6169 6e00 5f70 > 0000460 7269 6e74 6600 5f73 7472 6c65 6e00 5f65 > 0000500 7869 7400 > 0000504 > > % axe_generate -f system.uhdl > Application 'Exchange' generated > 2324042350000000 source code lines > No Errors detected. > Hardware retrieval...done OK > Certification Test...done OK > Packing..............done OK > Delivery.............done OK > Application 'Exchange' delivered to customer > 23456000 bytes/sec. > End processing, 2345 seconds. > > =========================== > Ultra high level programmer > =========================== > > system.uhdl : > > SYSTEM > CREATE ScreenWin > SIZE 20000000/Unit=One > DESTINATION Order.dest[One] > OUTPUT CHARACTER['Hello world'] > END > END > > > ----------------------------------------------------------------- > The xml-dev list is sponsored by XML.org > <http://www.xml.org>, an initiative of OASIS <http://www.oasis-open.org> The list archives are at http://lists.xml.org/archives/xml-dev/ To subscribe or unsubscribe from this list use the subscription manager: <http://lists.xml.org/ob/adm.pl>
|

Cart



