No hay dos sin tres, ni tres sin cuatro en este caso.
Navegando por ahí, he topado con un texto que describe a la perfección como evoluciona la mente de un programador a lo largo de su vida. Aunque en ingles, creo se entiende a la perfección el mensaje, que voy a pasar a copiaros:
La evolución de un programador:
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
>> (cons 'Hello (list 'World))))
>>
>>
New professional
>> #include
>> void main(void)
>> {
>> char *message[] = {"Hello ", "World"};
>> int i;
>>
>> for(i = 0; 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 &perator<<(ostream & const string >> &);
>> string &operator=(const char *);
>> };
>>
>> ostream &operator<<(ostream &stream, const string >> &s)
>> {
>> return(stream <<>> }
>>
>> 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 <<>>
>> 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.
>> To: ^X ^F ^C
>> % help mail
>> help: Command not found.
>> % damn!
>> !: Event unrecognized
>> % logout
¿Y tu? ¿en que etapa de tu vida te encuentras?
14 comentarios:
Yo pese a no ser programador, ni querer serlo, valgeme dios, solo me aporvecho este espacio para enviarte un abrazo. Desconocia la existencia del mismo, craso error.
Nada paco, que eso, que un abrazo, que espero que todo vaya muy bien, y a ver si nos vemos un jueves, en un almuerzo mismamente.
Cuidate..
Que pasa Javi, muchas gracias por pasarte por estos lares, sientete como en casa. Nos vemos el Jueves.
Eyyy...
Mi primer comentario en tu blog, y tiene que ser sobre un tema de programación, con el asquito que le tengo.
No he sido capaz, de desplegar más de cinco códigos, porque soy demasiado joven para mongolizarme.
Menos mal, que hoy en día no tengo que ver más código que el del blog...xDDD
Saludos...
Ese franchan... pos despliega los ultimos tio, q me recuerdan a ciertos individuos de ciertos cargos de cierta empresa de cierto grupo...
jur jur jur...veo que tu maldad sigue intrinsecamente en tí...
Hay cosas que nunca cambiarán... xDDD
De que coño habláis???
menos cháchara y a ver esas partidas en las sonys bravias que ambos tenéis...
Yo ni siquiera había desplegado nada hasta que no leí el comentario de Fran. No había pillado la gracia.
El problema en esos ciertos individuos que mencionas creo que está en que no pasaron por las etapas intermedias, saltaron demasiado pronto del Jr.High al Chief Executive. ;-)
Regards.
Buff, aqui se dispara a muerte, por lo que veo... que perrunos!
Hello. And Bye.
Predilection casinos? question this babyish [url=http://www.realcazinoz.com]casino[/url] advisor and wing it crop online casino games like slots, blackjack, roulette, baccarat and more at www.realcazinoz.com .
you can also into our fairy tale [url=http://freecasinogames2010.webs.com]casino[/url] orientate at http://freecasinogames2010.webs.com and ripen mortification in bona fide genially touched in the skull !
another voguish [url=http://www.ttittancasino.com]casino spiele[/url] locality is www.ttittancasino.com , because german gamblers, along freed online casino bonus.
Por que no:)
trek first twisted this untenanted [url=http://www.casinoapart.com]casino[/url] spindly at the significant [url=http://www.casinoapart.com]online casino[/url] signal with 10's of late-model [url=http://www.casinoapart.com]online casinos[/url]. board on [url=http://www.casinoapart.com/articles/play-roulette.html]roulette[/url], [url=http://www.casinoapart.com/articles/play-slots.html]slots[/url] and [url=http://www.casinoapart.com/articles/play-baccarat.html]baccarat[/url] at this [url=http://www.casinoapart.com/articles/no-deposit-casinos.html]no plunk casino[/url] , www.casinoapart.com
the finest [url=http://de.casinoapart.com]casino[/url] with a vista UK, german and all wonderful the world. so in behalf of the choicest [url=http://es.casinoapart.com]casino en linea[/url] corroborate us now.
Oi li muito a tua página, estás de parabéns!
Fica bem
Hola amigos , acabo de leer este trabajos evocan el trabajo blog en esta comunidad de blogs, apreciada ayudar a la gente web dando gran información !
Buen Trabajo , hasta y Feliz año nuevo ! Lo sentimos por mi mala español!
Publicar un comentario