[
Lists Home |
Date Index |
Thread Index
]
============================
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@datadirect-technologies.com]
>> Sent: 12 March 2003 18:35
>> To: xml-dev@lists.xml.org
>> Subject: [xml-dev] 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>
>
>
|