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 ]

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





 

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

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