Penguin

Differences between version 17 and predecessor to the previous major change of WhyIHatePerl.

Other diffs: Previous Revision, Previous Author, or view the Annotated Edit History

Newer page: version 17 Last edited on Wednesday, August 24, 2005 12:03:32 pm by JaredUpdike Revert
Older page: version 16 Last edited on Saturday, September 11, 2004 4:14:30 pm by CraigBox Revert
@@ -80,8 +80,21 @@
  
 The thing with Pascal is that it was impossible to do most things. Standard Pascal didn't treat files like most newer OS's did (a stream of bytes? wazzat?), but it's big failing was that the size of the array is part of the type, and there was no way to write a generic function to handle arrays of varying sizes. Since strings were a kind of array, you couldn't write a function to take a generic string. Sure, langauges like TurboPascal resolved most of these issues in incompatible ways. Delphi shows that Pascal can be a nice language when "touched up". 
  
 Perl may be expressive, but the problem is that you have to maintain other peoples perl programs, and since other peoples Perl programs are difficult at best to modify, you have a problem. while this may not be the language's fault, it __is__ a problem with the language IMHO. --PerryLorier 
+  
+Exactly. What I hear sounds like contradicting logic to me:  
+  
+# Perl is great because it frees you to do things the way you want and doesn't force you to do things a certain way.  
+# But newbies are wrong for complaining about stubbing their toes trying to do simple things[3] the simple, obvious way; they should learn Perl for real and stop thinking in their preconceived (i.e. simple/elegant/obvious Scheme/Python) way, instead think in the preconceived Perl way.  
+  
+I'm exaggerating but as a newcomer (constantly warned about Perl but forced into it against my will because other people who do understand it used it for some scripts they no longer maintain-- probably poorly written ones at that) I want to try to vent my frustration without trolling too much.  
+  
+I will be gracious and try to take the long view: Perl is very hard and doesn't make sense to newbies, but once you get it all, it makes very much sense in its own sort of way. Good Perl hackers (and there really are such people! even I would admit) and advocates are rightly defensive about their language, but may have forgotten how long and hard they worked to get there (and it feels good to stand up there looking down on those who don't know what you know). If you don't want to learn a language that takes a lot of time and energy to understand well (enough to do arguably simple things), then don't learn Perl.  
+  
+The problem is, other people use Perl so I have to whether or not I want to. That's where my frustration is coming from: things just don't work right the first time, and I have learned and used many new languages in the last 6 years that did work right the first time: Lisp, Python, Scheme, OCaml, Haskell, etc.[4]  
+  
+P.S. If LarryWall was trying to reproduce the chaos, power and ambiguity of natural languages he hit the $nail on the $head. Kudos to Perl for being that one big loveable hateable monster. Just like the English language: it's easy if you grow speaking it natively. --JaredUpdike  
  
 ---- 
  
 !!! AristotlePagaltzis and his soapbox 
@@ -120,4 +133,8 @@
  
 ---- 
  
 [2] I think a similar, pleasant feeling of busyness while coding explains some of the popularity of [C]. "I'm doing lots of work, I must be getting a lot done. Right?" 
+  
+[3] I claim that arbitrarily-nested compound data structures (lists, dictionaries/hashes and all possible nestings) are simple things. Any book on Scheme will cover them in the earliest of chapters.  
+  
+[4] When I say "work right the first time" I usually mean syntactically or semantically, not algorithmically or without bugs. But there have been those times when even a complex algorithm I wrote worked the first time: it happens sometimes in Python and frighteningly often in Haskell (or OCaml). And while I'm talking about Haskell, the best thing is that it DOES change the way I think, giving me newer and better and higher ways to things (I didn't even really know were possible to do!) that you really CAN'T do in Perl, despite the big-time claim that Perl let's you do anything you want, even unintended things.