Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!cs.utexas.edu!usc!henry.jpl.nasa.gov!elroy.jpl.nasa.gov!aero!aerospace.aero.org!faigin From: faigin@aerospace.aero.org (Daniel P. Faigin) Newsgroups: alt.sources.d Subject: Re: Perl (of course!) Message-ID: <62183@aerospace.AERO.ORG> Date: 29 Nov 89 20:42:07 GMT References: <4025@mhres.mh.nl> <5262@omepd.UUCP> Sender: news@aerospace.aero.org Reply-To: faigin@aerospace.aero.org (Daniel P. Faigin) Organization: The Aerospace Corporation, El Segundo, CA Lines: 69 In article <5262@omepd.UUCP> merlyn@iwarp.intel.com (Randal Schwartz) writes: >This is *exactly* the audience for Perl. When an "easy" combination of awk >and sed doesn't do it, but writing a C program (under multiple architectures) >is overkill, Perl seems to fit in quite nicely. It's also a lot more >flexible at launching and managing multiple processes than the same thing in >awk or sh. It also has this little report generator built in that I've made >minimal use of, but was the original intent of Perl. It's time to tell a story. Not that many people know why perl even exists (or that it was originally to be called gloria, in honor of Larry's wife). A long time ago, in a company that, sadly, no longer exists as it was, there existed a project. This project needed a good configuration management system. Now RCS is all fine and good, but it doesn't support Software Change Reports, Problem Reports, et al. The CM system also had to support running on 6 different Vax split over two coasts. Now, the system guru on this project was a nice fellow by the name of Larry Wall. He was my officemate. Larry decided that the best solution of the problem would be to use the news system to handle problem reports. In order to do this, he had to make some modifications to inews to support appending to articles (for approvals) and to support synchronization of article numbers. People could read problem reports with Rn, and (A)pprove or (D)isapprove them. Now, as with any CM system, reports are a necessity. Larry began to look at the problem. The problem was that awk couldn't handle going through multiple directories and multiple files, as are found in the news spool directory. Nor could it follow pointers from one file to another. Nor could it produce the nice reports that were required. Now, programmers are lazy and impatient (Larry's basic idiom). Larry wanted the easy solution, but awk simply wasn't it. He needed to get the reports (we were under deadline), but there was no easy way out. Hence, perl was born. Now, Perl version 1 was different in many ways from the perl of today. It used a different regular expression package for one thing (which bit me, as I developed many scripts that broke when Larry started on the net version). But it was perl. We knew, from the beginning that Perl wasn't portable, primarily because of its dependence on yacc (this was before bison was available, sometime in early 1986). We also knew it would be big. Larry later left the project to be the guru of R&D, which is where the beginning of the bells and whistles came into perl. This is also where Rn was ripped into shreds into anticipation of a future rewrite, which has been 3 years in the making. Larry got a phone call one day, and heard the magic words... "Voyager" and "JPL". He left our happy home, and went to JPL, where he has continued to enhance Perl. You all know the story from there. >| You *do* know that Perl is a complete programming language, right? >| Powerful enough that Larry Wall is supposedly writing the next version >| of RN in it? (I've never had the guts to ask him about this one, >| myself; I'd really rather not know) Yeh, he's planning to do it. When is another question. Now that he's added the fourth wall to his house, he may have some more time. Remember, programmers are lazy and impatient. Perl allows Larry to prototype the new Rn faster than writing it in C, and it can handle the text manipulation easier. Hence, he uses it. You should just see some of his ideas. Daniel (one of the three people there at perl's birth) Work :The Aerospace Corp M1/055 * POB 92957 * LA, CA 90009-2957 * 213/336-8228 Home :9758 Natick Avenue * Sepulveda CA 91343 * 818/892-8555 Email:faigin@aerospace.aero.org (or) Faigin@dockmaster.ncsc.mil Voicemail: 213/336-5454 Box#3149 * "Take what you like, and leave the rest" Brought to you by Super Global Mega Corp .com