📜 ⬆️ ⬇️

Laziness, impatience and self-conceit are the three main virtues of a programmer. Happy birthday, Larry Wall

“I think I sometimes have dreams on Perl`e”
- Larry Wall

  1. Larry is by definition always right about how Perl should behave. This means that he has the final right of veto on basic functionality.
  2. Larry is allowed to change his opinion on any issue after some time, regardless of whether he used Rule 1.
Do you understand? Larry is always right, even when he makes mistakes.


')
Larry's compact biography looks like this ( Geek code ): GC / CS / E / H / IT / L / M / MU / PA / P / S / SS / TW / O d (+++)> + s: a + > ++> +++ $ C ++++ $ UBAHS * ++++ $ P +++++ (-) $ L! E? W +> ++ N +++ @ K +++> ++++++ @ w $! O M -> + V - () PS + (-) PE (++) Y + PGP -> + t + () 5 X? R> * tv @ b ++> +++ DI +++ D? G (-) e ++> +++ @ h ---- () r +++ y ++++ ( decoding )

Larry, as a hereditary pastor, as a child dreamed of becoming a church minister. But I had to go to IT. Student, he worked for 3 years in the computer center of the university. After the university, he and his wife worked as translators of the Bible, studied linguistics, in the hope that somewhere in Africa a tribe would be found with its own language, but without a written language, and they would develop a written language for this language and give the natives. In the role of the natives, years later, there were programmers.

Because of the money, Larry managed to work in Unisys, NASA (JPL) and O'Reilly.

Because of laziness, impatience and arrogance, Larry wrote rn (a popular client for Usenet) and the patch utility (for UNIX). To become a lifelong generous dictator, he wrote Perl.

Larry believes in the Myers-Briggs typology ( INFP ), and he is also a two-time world champion in intricate code in C.




Perl


“The biggest part of learning Perl is learning how Larry (the author of the language) thinks. Therefore, as soon as you can think the same way Larry does, you will know what Perl should do in each case. But while you study, you should sometimes look into the documentation. "

“There's More Than One Way To Do It” (“There is more than one way to do it”) - the motto of the Perl language. From the very beginning, this principle was meant when creating this programming language. In accordance with this idea, the syntax of the language provides the programmer with many opportunities to write the same algorithm, allowing you to choose the one that seems most convenient and effective in this particular case. On the one hand, it simplifies writing code — you only need to know one way out of many, on the other hand, it makes it difficult to read someone else's code, because for this you need to know all the ways that can occur.

Perl 6 logo chose a merry butterfly. As (half in jokingly) explained Wall at a conference in October 2015, this was done specifically to make the language attractive for 7 year old girls.

Little pearls from Larry


“The journey of a thousand miles continues from the second step.”

“Real programmers can write assembler code in any language.”

"Now, the main priority will be the correction of errors that can be accidentally mistaken for new features." (About Perl 6.0.0)

“And there is a meta-meta, a meta-meta-meta goal. This, of course, enjoy life. When you are young, enjoying life means “I enjoy life.” When you get a little older, like me, you start to enjoy helping other people enjoy life. Well, there is a balance here. ”

“True greatness is measured in the amount of freedom that you give to others, and not in the number of people who are forced to do what you want.”

“We all agree on the need for a compromise. We simply cannot accept a compromise when necessary. ”

International Obfuscated C Code Contest (IOCCC)


If you want to program in C, program in C. It's a nice language. I use it occasionally ...

“International Competition for C Code Entanglement” is a programming contest in which the participants' task is to write the most confusing code in the C language.
Larry won twice.

1986
#define _c(C)_ (C)&('|'+3):c_()(C)>>('\n'-3) __; /**/ #define C char* #define keyboard ",,B3-u;.(&*5., /(b*(1\036!a%\031m,,,,,\r\n" #define main(o,oo)oo(o){ #define _ ;case C #define c_(cc)c cc= #define C_(sand)_O(sand)witch o=keyboard; #define __ ;break; C ccc( cc) C cc; { C cccc= cc;int #ifndef lint #define keyboard "dijs QH.soav Vdtnsaoh DmfpaksoQz;kkt oa, -dijs" #endif c; main(;c_(=(*cc);*cc++)c,for); #define _O(s)s main(0xb+(c>>5),C_(s)) _'\v' :__ _'\f': main(c,C_(s)); _c(8098)_c(6055)_c(14779)_c(10682) #define O_(O)_O(O)stem(ccc( _c(15276)_c(11196)_c(15150) #define _C ;return _c(11070)_c(15663)_c(11583) } __ default :c_(+)o[c&__LINE__-007]; main(c_(-)'-'-1,C_(s))_ 0214 :_ 0216 :c_(+)025 _ 0207 :c_(-)4 _ 0233 :c_(+)' '-1; }}c_(&)'z'+5; }_C cccc; }main(,cc) C #define O write(1, c="O"; O_(sy) keyboard)); main(;;,for); read(0, c,1);* c_(&)'~'+1 ;O ccc( c), '\0'); main(*c, C_(s));_ 4 :O_(sy)";kkt -oa, dijszdijs QQ"))_C _ 13 :O o+' ', 3 ) #undef main __ _ 127:O"\b \b",3)__ default :O c,1) __}}}main(){ cc(); # The grand prize in most well-rounded in confusion Larry Wall System Development Corporation Santa Monica California US of A ## Judges' comments: The original version did not have a ';' character in the first line. This caused a number of System VC pre-preprocessors to gripe about a syntax error. This program is a masterpiece of obfuscation and humor. Larry Wall (the hacker who gave us rn and patch) asks you to compile and consider the warning message generated by the C compiler. Then execute the program and type charters into its standard input. You will see why the compiler documents the program. Copyright (c) 1986, Landon Curt Noll & Larry Bassel. All Rights Reserved. Permission for personal, educational or non-profit use is granted provided this this copyright and notice are included in its entirety and remains unaltered. All other uses must receive prior permission in writing from both Landon Curt Noll and Larry Bassel. 

}

1987
 #define iv 4 #define v ;(void #define XI(xi)int xi[iv*'V']; #define L(c,l,i)c(){d(l);m(i);} #include <stdio.h> int*cc,c,i,ix='\t',exit(),X='\n'*'\d';XI(VI)XI(xi)extern(*vi[])(),(* signal())();char*V,cm,D['x'],M='\n',I,*gets();L(MV,V,(c+='d',ix))m(x){v) signal(X/'I',vi[x]);}d(x)char*x;{v)write(i,x,i);}L(MC,V,M+I)xv(){c>=i?m( c/M/M+M):(d(&M),m(cm));}L(mi,V+cm,M)L(md,V,M)MM(){c=c*M%X;V-=cm;m(ix);} LXX(){gets(D)||(vi[iv])();c=atoi(D);while(c>=X){c-=X;d("m");}V="ivxlcdm" +iv;m(ix);}LV(){c-=c;while((i=cc[*D=getchar()])>-I)i?(c?(c<i&&l(-cc, "%d"),l(i,"+%d")):l(i,"(%d")):(c&&l(M,")"),l(*D,"%c")),c=i;c&&l(X,")"),l (-i,"%c");m(iv-!(i&I));}L(ml,V,'\f')li(){m(cm+!isatty(i=I));}ii(){m(c=cm = ++I)v)pipe(VI);cc=xi+cm++;for(V="jWYmDEnX";*V;V++)xi[*V^' ']=c,xi[*V++] =c,c*=M,xi[*V^' ']=xi[*V]=c>>I;cc[-I]-=ix v)close(*VI);cc[M]-=M;}main(){ (*vi)();for(;v)write(VI[I],V,M));}l(xl,lx)char*lx;{v)printf(lx,xl)v) fflush(stdout);}L(xx,V+I,(c-=X/cm,ix))int(*vi[])()={ii,li,LXX,LV,exit,l, d,l,d,xv,MM,md,MC,ml,MV,xx,xx,xx,xx,MV,mi}; # Most Useful Obfuscation Larry Wall Unisys - System Development Group Santa Monica 9132 Kester Ave Panorama City, CA 91402 USA ## Judges' comments: ### Try: lwall | bc | lwall input: x*x input: c^2 ### Also try: lwall | bc and lwall | cat What we found amazing was how the flow of control was transferred between subroutines. Careful inspection will show that the array of pointers to functions named 'vi' refers to functions which seem to not be directly called. Even so, these pointers to functions are being used as an argument to signal. Can you determine why this is being done and how it is being exploited? Some compilers complained about this file, so we changed: '=++I' to '= ++I'. Copyright (c) 1987, Landon Curt Noll & Larry Bassel. All Rights Reserved. Permission for personal, educational or non-profit use is granted provided this this copyright and notice are included in its entirety and remains unaltered. All other uses must receive prior permission in writing from both Landon Curt Noll and Larry Bassel. 


Additional materials










Decoded geek code
GEEK TYPE CODE [GC / CS / E / H / IT / L / M / MU / PA / P / S / SS / TW / O]
Geek of Classics, Geek of Computer Science, Geek of Engineering, Geek of Humanities, Geek of Information Technology, Geek of Literature, Geek of Music, Geek of Music, Geek of Philosophy, Geek of Philosophy , Biology, etc.), Geek of Social Science (Psychology, Sociology, etc.), Geek of Technical Writing, Geek of Other.

GEEK DRESS CODE [d (+++)> +]
My tendencies on this issue range from: “I dress a lot like those found in catalog ads. Bland, boring, without life or meaning. ", To:" I tend to wear conservative dress such as a business suit or worse, a tie. Good leisure-wear. Slacks, button-shirt, etc. No jeans, tennis shoes, or t-shirts. "But someday I'd like to say:" Good leisure-wear. Slacks, button-shirt, etc. No jeans, tennis shoes, or t-shirts. ”

GEEK SHAPE CODE [s:]
I'm an average geek.

GEEK AGE CODE [a +> ++> ++++ $]
My age is 40-49. But someday I'd like to say: "My age is 50-59." But someday I'd like to say: "My age is 60 and up. Getting paid for it! ”

GEEK COMPUTERS CODE [C ++++ $]
The new cybernetic interface is installed in my skull. Getting paid for it!

GEEK UNIX CODE [UBAHS * ++++ $]
I use BSD, AIX, HPUX, SunOS / Solaris and some other (s) not listed. I am the sysadmin. If you’re trying to get in touch with your computer, it’s not a problem. Getting paid for it!

GEEK PERL CODE [P +++++ (-) $]
I’m Larry Wall, Tom Christiansen, or Randal Schwartz. ”, To:“ Perl users are sick, twisted programmers ”

GEEK LINUX CODE [L]
I know what Linux is, but that's about all.

GEEK EMACS CODE [! E?]
I refuse to categorize myself on Emacs. Emacs? I don't even know what that is ...

GEEK WORLD WIDE WEB CODE [W +> ++]
I need the latest version of Netscape But someday I'd like to say: “I have a homepage. I surf daily. My homepage is advertised in my .signature. ”

GEEK USENET CODE [N +++ @]
I’m reading up for a couple of hours. Then there's the afternoon ... But that varies ...

GEEK KIBO CODE [K +++> ++++++ @]
I've gotten mail from Kibo. But someday I'd like to say: “I am Kibo. But that varies ... "

GEEK MICROSOFT WINDOWS CODE [w $]
Getting paid for it!

GEEK OS / 2 CODE [! O]
I refuse to categorize myself on OS / 2.

GEEK MACINTOSH CODE [M -> +]
Macs suck. All real geeks have a character prompt. But someday I'd like to say: "It’s quite often."

GEEK VMS CODE [V - ()]
“I would rather smash my head repeatedly. It's reminiscent of a dead and decaying pile of moose droppings. Unix rules the universe. ", To:" I've used VMS. "

GEEK POLITICS & SOCIAL ISSUES CODE [PS + (-)]
This is a concept of “political freedom”. If you don’t like it, turn the bloody channel. ", To:" Label records! Keep dirty stuff off the TV and the Internet. ”

GEEK POLITICS & ECONOMIC ISSUES CODE [PE (++)]
My tendencies on this issue range from: “Distrust both government and business.”, To: “Keep the government off the backs of businesses. Deregulate as much as possible. "

GEEK CYPHERPUNKS CODE [Y +]
I’m not interested in reality or vocal.

GEEK PGP CODE [PGP -> +]
I don't have anything to hide. But someday I'd like to say: "" Finger me for my public key "."

GEEK STAR TREK CODE [t + ()]
It’s a TV show. ”, To:“ It's just another TV show. ”

GEEK BABYLON 5 CODE [5]
I've seen it, I am pretty indifferent to it.

GEEK X FILES CODE [X?]
X Files? I don't even know what that is ...

GEEK ROLE-PLAYING CODE [R> *]
Role playing? That's just something to do. But someday I'd like to say: "I thought life was role playing?"

GEEK TELEVISION CODE [tv @]
I’m just looking at what they are worth, such as those found on PBS. But that varies ...

GEEK BOOKS CODE [b ++> +++]
Find a time for a month. But someday I'd like to say: "I consume a few books."

GEEK DILBERT CODE [DI +++]
I am a dilbert prototype.

GEEK DOOM CODE [D?]
Doom? I don't even know what that is ...

THE GEEK CODE [G (-)]
I’m not sure what I’ve been up to this code. ”

GEEK EDUCATION CODE [e ++> +++ @]
Got a Baccalaureate degree. But someday I'd like to say: “Got a Masters degree. But that varies ... "

GEEK HOUSING CODE [h ---- ()]
I’m married with children - Al Bundy can sympathize. ’, To: ried Friendships? There is a place to stay. ”

GEEK RELATIONSHIPS CODE [r +++]
Found someone, dated, and am now married.

GEEK SEX CODE [y ++++]
Male. I have a few little rug rats to prove I've been there. Besides, with kids around, who has time for sex?

[ more about the code here ]




Happy birthday, Larry!

The developers of the Edison company (which has developed hundreds of site parsers and a service for sending push notifications for the bank ) join the congratulations.

UPD
One congratulation was not enough, here's another after . There is a cool quote:
“I know some successful projects with democratic principles. But most people are not ready to learn enough to be able to listen to their opinions. ”

Source: https://habr.com/ru/post/310938/


All Articles