OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

 


 

   Re: [xml-dev] Off Topic: Evolution of a Programmer

[ Lists Home | Date Index | Thread Index ]

Can you find the bug? The price is Helsingør castle!


On Thursday, March 13, 2003, at 04:28 PM, Niels Peter Strandberg wrote:

> ============================
> 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>
>>
>>
>
>
> -----------------------------------------------------------------
> 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>
>
>





 

News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 2001 XML.org. This site is hosted by OASIS