Сегодня 19.12.2024 Вы зарегистрированы в системе под именем ANONYMOUS

Rambler's Top100
Начало
Обо мне
Моя семья и звери
Статьи
Проекты
Стихи
Фото-галерея
Досуги
Былое и думы
Универсальная Самообучающаяся Экспертная Система
Мудрости
Приколы
 
Новости
Карта сайта
Все материалы
Обсуждение
Опросы
 


КиноНавигатор поможет выбрать фильм, если не знаешь, что посмотреть.
Персональный сайт Андрея Акопянца  >  Досуги  >  Приколы

The Evolution of a Programmer

Для знающих языки программирования - наглядная демонстрация принципа Питера.

>
> 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
> 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
>
> New Manager
> 10 PRINT "HELLO WORLD"
> 20 END
>
> Middle Manager
> mail -s "Hello, world." bob@b12
> Bob, could you please write me a program that prints "Hello,
> world."?
> I need it by tomorrow.
> ^D
>
> Senior Manager
> % zmail jim
> I need a "Hello, world." program by this afternoon.
>
> Chief Executive
> % letter
> letter: Command not found.
> % mail
> To: ^X ^F ^C
> % help mail
> help: Command not found.
> % damn!
> !: Event unrecognized
> % logout
>


( опубликовано 12.05.2001)

Обсуждение (нет реплик)    Настройка



В начало страницы (C) Andrey Akopyants
Перепечатка авторских материалов сайта приветствуется! Ссылка на первоисточник при перепечатке обязательна.