"Evolution of a Programmer." ;)
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 <stdio.h>
void main(void )
{
char *message[] = {"Hello " , "World" };
int i;
for (i = 0; i < 2; ++i)
printf("%s" , message[i]);
printf("\n" );
}
Seasoned professional
#include <iostream.h>
#include <string.h>
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(<windows.h>);
importheader(<ole2.h>);
importheader(<except .hxx>);
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 <windows.h>
#include <ole2.h>
#include <stdio.h>
#include <stdlib.h>
#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 <windows.h>
#include <ole2.h>
#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 <windows.h>
#include <ole2.h>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
#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 <stdio.h>
#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
% echo "Hello, world."
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
Почетный кавалер ордена Совка.
Re: "Evolution of a Programmer." ;)
Здравствуйте, Patalog, Вы писали:
P>The Evolution of a Programmer
Да, видимо время от времени эту науку для новичков надо повторять...
Можно попросить админов, чтоб они поставили включение этого сообщения раз в квартал в автоматическом режиме...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[2]: "Evolution of a Programmer." ;)
От:
Аноним
Дата: 16.12.04 07:19
Оценка:
-4
Здравствуйте, LaptevVV, Вы писали:
P>>The Evolution of a Programmer
LVV>Да, видимо время от времени эту науку для новичков надо повторять...
LVV>Можно попросить админов, чтоб они поставили включение этого сообщения раз в квартал в автоматическом режиме...
LVV>
Может сразу форум специальный нужно открыть — что-то типа "Лохматый баян" или "Бородатый баян"?
Здравствуйте, Patalog, Вы писали:
Торжественное поднятие каждые 2 года
Гимн, знамя, теперь вот за флаги взялись
SON- солнечный финал (с) азерб-африк :)
Re: "Evolution of a Programmer." ;)
up
Re[2]: "Evolution of a Programmer." ;)
Здравствуйте, Мурлакотам, Вы писали:
М>up
Злодей
Re: "Evolution of a Programmer." ;)
В 2007 году эта тема ещё не поднималась
Re: "Evolution of a Programmer." ;)
От:
ixbt78
Дата: 20.12.07 21:33
Оценка:
Здравствуйте, Patalog, Вы писали:
P>Senior year in College
P>P>(defun hello
P> (print
P> (cons 'Hello (list 'World))))
P>
А это что за фигня
И по чему нет
SELECT 'Hello World' FROM dual
Re[2]: "Evolution of a Programmer." ;)
От:
ixbt78
Дата: 20.12.07 21:34
Оценка:
И почему на рсдн нелься редоктировать свои посты?
Re[3]: "Evolution of a Programmer." ;)
От:
Cruser
Дата: 21.12.07 07:12
Оценка:
Здравствуйте, ixbt78, Вы писали:
I>И почему на рсдн нелься редоктировать свои посты?
Чтоб с базара нельзя было съезжать.
Re[3]: "Evolution of a Programmer." ;)
От:
Jax
Дата: 21.12.07 07:19
Оценка:
Здравствуйте, ixbt78, Вы писали:
I>И почему на рсдн нелься редоктировать свои посты?
И правильно, что нельзя! В этом вопросе я на все 100% согласен с RSDN Team.
Можно удалить собственное сообщение, если еще никто на него не ответил. Если же уже кто-то ответил, забрать свои слова обратно не получится.
Re[4]: "Evolution of a Programmer." ;)
Здравствуйте, Jax, Вы писали:
Jax>Можно удалить собственное сообщение, если еще никто на него не ответил.
Если кто-то успел прочитать, то удалить уже не удастся.
Обязательно бахнем! И не раз. Весь мир в труху! Но потом. (ДМБ)
Re[2]: "Evolution of a Programmer." ;)
Здравствуйте, ixbt78, Вы писали:
P>>Senior year in College
P>>P>>(defun hello
P>> (print
P>> (cons 'Hello (list 'World))))
P>>
I>А это что за фигня
Lisp.
Пётр Седов (ушёл с RSDN)
Re[5]: "Evolution of a Programmer." ;)
От:
Jax
Дата: 21.12.07 09:50
Оценка:
Здравствуйте, ДимДимыч, Вы писали:
ДД>Если кто-то успел прочитать, то удалить уже не удастся.
Хм... У меня стойкое ощущение, что получалось удалять даже с оценками, хотя не могу утверждать наверняка.
Слово — не воробей, вылетит — не поймаешь
Re: "Evolution of a Programmer." ;)
От:
Кодт
Дата: 21.12.07 12:08
Оценка:
Здравствуйте, Patalog, Вы писали:
P>The Evolution of a Programmer
P>Chief Executive
.....
Bill Gates
Утром, выходя на лужайку и потягиваясь, голосом:
— Hello, World!
Перекуём баги на фичи!
Re[2]: "Evolution of a Programmer." ;)
Здравствуйте, Кодт, Вы писали:
К>Bill Gates
К>Утром, выходя на лужайку и потягиваясь, голосом:
К>- Hello, World!
Speech recognition?
... << RSDN@Home 1.2.0 alpha rev. 745>>
Пока на собственное сообщение не было ответов, его можно удалить.
Удалить