Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!swrinde!zaphod.mps.ohio-state.edu!sample.eng.ohio-state.edu!purdue!cs.purdue.EDU From: spaf@cs.purdue.EDU (Gene Spafford) Newsgroups: comp.lang.perl Subject: Re: Ruminations on the future of Perl Message-ID: <15154@ector.cs.purdue.edu> Date: 29 Jun 91 22:47:52 GMT References: <1991Jun28.020603.1069@zardoz.club.cc.cmu.edu> <1991Jun28.212606.19054@convex.com> Sender: spaf@cs.purdue.EDU Organization: Department of Computer Science, Purdue University Lines: 94 I use Perl because I can quickly come up with a solution to programming problems that need a fast, simple hack that I may need to reconfigure later. I used to use C, but for a long time C has had too much overhead because of all the include files, declaring structs, etc. With some of the cruft in ANSI C, its worse. I've used ksh and awk for a while, but neither had all the functions I wanted. Then I found Perl. The "hackeritis" features that Rusty complains about are *exactly* why people like me like to use Perl -- if there was only one way to accomplish each task, the amount of memorization and understanding involved to accomplish any arbitrary problem would be huge. It's the same reason why people prefer C to Ada, for instance. It's also why a knowledgable mechanic treasures his pair of ViseGrips over his 7mm open-end box wrench. And its the same principle that gives us many hundreds of thousands of words in spoken language that few of us know or use, but we can still communicate effectively with a smaller set of less precise words. Larry is a "hacker's hacker" in the sense that he knows how to produce working code to do useful things. Perl is a tool that he developed to match the way he produces code. Not all of us have the same programming "idioms" in mind Larry does, and that may be why we view some of the features of Perl with curiosity, horror, or indifference. I've found as I've used Perl, however, and read the book, that I am developing new idioms and techniques, and the language helps me express them without undue difficulty. I don't mean to discourage people from talking about how Perl might be changed to be more efficient, or add new features, or otherwise change its nature. However, I caution everyone to consider that moves in that direction may lead to horrors like ANSI standards :-). The very concept of an ANSI committee to standardize Perl horrifies me. Before we take anyone's comments on changes too seriously, I'd suggest we ought to make them take this little quiz: 1) Have you read the Camel book at least twice? a) No b) Yes c) The what? Camels? 2) Can you understand 6 months of the various "Just another Perl hacker" signature programs Randal has used in his postings? a) No way b) Yes, and I can optimize some of them c) Randal who? 3) Your favorite compiled language of the following is a) Pascal b) C++ c) Ada 4) You think design-by-committee is a good thing a) Of course b) Hell no -- look at Ada c) Hell yes -- look at Ada 5) How many working, useful lines of Perl code have you written in the last 6 months: a) less than 10,000 b) more than 10,000 c) I have others write my code for me 6) How many of the following languages are you familiar with (written substantial amounts of code): APL, nawk, C++, Eiffel, Scheme, abc, Modula, SNOBOL, ML, SmallTalk, Prolog, Icon, .....(insert other appropriate languages here) a) 1 or 2 b) most of them c) There are languages with names like that? 7) How may compilers/interpreters have you every written or helped with? a) One in my compilers undergrad class, once b) Many c) I have others write my code for me 8) Approximately how many people are regularly using anything you designed and/or wrote? a) Me, and maybe a few friends b) Several hundred at a minimum c) I use the code written by others Anybody answering (a) to more than 2 questions is not yet qualified to discuss the future of Perl (or pretty much any language). Anybody answering (c) to any of them shouldn't be allowed to post to this group! :-) # Besides, why would you want to change a language that lets you # write a program like this? :-) exit unless eval q[sub then {substr($b,1)cmp substr($a,1);} print sort then split if ($\,$_,$,)=(qx,echo .,,q,Perl Just hacker another,,q, ,)];