From: Rudolf Polzer Date: 2003-07-22T23:13:59+09:00 Subject: Re: "theory vs practice" ceases power Scripsit ille aut illa �Xah Lee� : > Dear functional programing comrades, Hm... Ruby is a functional programming language? OK, you CAN do functional programming in Ruby, but... well, I now see, C++ is even LESS functional than Ruby. Please also crosspost to a Z80 assembly newsgroup, a Forth newsgroup and a Turing Machine one. > Among the community of automatons of the IT industry, there is a > popular quote about "theory vs practice" that goes something along the > lines of "in theory this, but in practice that", One? A LOT OF THEM! > which is often quoted > by automatons to slight at computer science principles or > practice. (especially by perl or unix advocates) What has that to do with Perl? My chemistry teacher liked to use the phrase "das ist praktisch theoretisch" - "pracitcally, that's theoretic". And he probably has never seen Perl or UNIX at all. He hadn't used computers at all for his teaching. > The word 'theory', in practice, has more meanings than in theory. IOW: In common use, "theory" has more meanings than you find in the dictionary / than are linguistically "correct" / than one might at first think. > It is possible for a mathematical theorem to be > incorrect (we are humans, after all), Then it's not a theorem any more, by definition. If someone would have found a counterexample of Fermat's Last Theorem, it couldn't be called that any more. Before Wiles' proof, I liked "Fermat's Conjecture" much better because it wasn't a theorem yet: there was no available proof. A theorem is a conclusion of the axioms. It may use other theorems as "shortcuts", but of course not in a cyclical manner. > As you can see, the word 'theory' is subject to wanton abuses. In > fact, all English words ^^^^^^^ Why? German, Japanese, Greek words aren't abused at all? > are subject to extraneous purposes to yield > sentences or paragraphs that has a meaningful ambiguous > interpretation. (this is how poetry works, in theory.) [...] > In our context, the > quote amounts to illustrating the stupidity of Perlers who don't have > a solid background in logic or linguistics, but like to quote about > differences of theory vs. practice. So because one Perler said such a thing, you conclude all of them are stupid? Go away and take your overgeneralizations with you. > Larry Wall likes to mention how he had a linguistics background, and > how he utilized the (good) human qualities of English to create > Perl. Haha... I cannot see that in Perl. Just because it uses some English words, it shows linguistics background? Did Larry Wall invent SQL or COBOL? *ducks* BTW, I never managed to "read" a Perl program to someone else. I just don't know how to call all those characters without confusing people. "$i = $i + 1" could be read as "scalar i becomes scalar i plus one", but how to read "$foo{$bar . $baz} = [ $bar[$foo + $baz], \%foo, \@bar ];"? Or Microsoft's translated Visual Basic for Applications (included in Excel 5): Dim i Als Ganz Dim s Als ZnF F�r i = 1 Bis 17 Schritt 2 ' ... N�chste i Well, that REALLY shows someone at Microsoft had background in linguistics. ^^ Was there a Japanese version of that? Must be funny... intermixing Japanese BASIC keywords with English class and object names. Hm... the dot notation to access instance variables (VB also had it), could one use "no" for that? Would look even more funny to do that between two English words. And what's the official name of Ruby's :: notation? In German I call it "doppelter Doppelpunkt", double colon - but sometimes I call it "Quadrat" (square). > To the Perl folks of beady eyes, they are sold a grand advance > in computer science, but to discerning eyes, it's artful garbage. > > Sorry i don't have time to address the above points of Wall's, but > this will definitely be another lesson for you folks down the road. Which ones? Larry Wall's name was mentioned first one paragraph above. > The perl folks with their beads of little eyes, cannot see beyond > imperative languages. What? You CAN even do lambda calculus in Perl. Please don't generalize that much. -- #!/usr/bin/ruby -- find the answer of Life, the Universe and Everything -- p proc{|f|f[lambda{|x|x+1}][0]}[proc{|o|proc{|m|proc{|a|m[m[a[o][o]][a[a[o ][o]][o]]][a[m[a[o][o]][a[o][a[o][o]]]][o]]}}}[lambda{|f|f}][proc{|f|proc{ |g|proc{|x|f[g[x]]}}}][proc{|f|proc{|g|proc{|h|proc{|x|f[h][g[h][x]]}}}}]]