[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Off Topic: Evolution of a Programmer
============================ HAMLET ============================ if (2b & !2b) { out("That is the question!"); } From a dane (!prince), Niels Peter On Thursday, March 13, 2003, at 10:58 AM, Michael Kay wrote: > 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> > > > > ----------------------------------------------------------------- > 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> > >
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|