This document is copyrighted by Shlomi Fish under the terms of the Open Publication License version 2.0 or greater, or alternatively under the Creative Commons Attribution Unported License version 3.0 (or at your option any greater version of it).
Copyright © 2003 Shlomi Fish
This document is copyrighted by Shlomi Fish under the terms of the Open Publication License version 2.0 or greater, or alternatively under the Creative Commons Attribution Unported License version 3.0 (or at your option any greater version of it).
Revision History | ||
---|---|---|
Revision 540 | 2003-04-18 | shlomif |
Removed a paragraph that is less than accurate, added a link to ESR’s CatB, and refactored a few things. | ||
Revision 536 | 2003-04-16 | shlomif |
Made the criticism against the lack of availability of the O’Reilly core Perl documentation less blunt, and added a suggestion for the www.perl.com site. Fixed some typos. | ||
Revision 535 | 2003-04-16 | shlomif |
First Advogato Version. |
“Shlomi, it takes 10 years to learn UNIX. I want you to learn it in a month”. My future supervisor in a web publishing house I switched jobs to, told me that and It’ll be a cold day in hell before I forget this quote. He also showed me Perl, telling me I can write a TCP/IP client in 5 lines and a TCP server in 10, which sounded very impressive and intriguing. So I set out to learn UNIX and Perl.
When I got to work I did not know UNIX as much as he could hope for, but with some help from the people around there I managed to get by. The year was 1996, it was the start of the Internet Boom and everybody and his mother wanted a web-site. Perl 5 was there, and it was practically the only thing you could use on UNIX to write CGI scripts, without completely losing your mind.
I only had a Windows 3.11 at home, and so started learning Perl from all the POD documents cramped into one Acrobat Reader file. “On dry”, as they say in Israel, without actually running it. I understood some of it as it reminded me of C and BASIC which I knew quite well. But still there were all these references to sed, awk, UNIX shells, and other things I did not know. Generally, they assumed you knew what they were talking about.
I started working there, and was able to get by with my little knowledge of Perl and UNIX which accumulated quite quickly. I remember asking my supervisor what regular expressions where all about and he told me: “they are a mechanism to find patterns in text”. That was the enlightenment that made me able to use them on a regular basis.
I fell in love with both UNIX and Perl. I was not much of a UNIX guru and wrote what I now write in shell in Perl, and simply kept asking my supervisor (who was then a true UNIX guru even in today’s standards), questions about how to do things. But I got by.
Since then, with some breaks, I extended my knowledge of both Perl and UNIX. (I was thrilled to find ActivePerl and use Perl effectively on Win32 as well). Gradually, I learned about Modules and Objects in Perl and then a lot of tips and shortcuts, and now use it very often. Even in the Technion, where I now study Electrical Engineering, Perl proved to be a life saver. It is my favourite language by far, and would not replace it with anything else.
That’s my story. Now let’s move to the story of Mel Jones (short for Melissa but might as well be Melvin), a Perl newbie who wishes to get hold of Perl. When thinking about the usability of computer systems, it is helpful to think about a few imaginary figures, which one is almost certain there are many similar that exist in real-life. Mel is one of them, but as you’ll see later she won’t be the only one.
Before I start let me say that I am indebted to Larry Wall, Tom Christiansen and all the other people who contributed to Perl and brought Perl so far. I did not come to bury Perl or the Perl world in this article. I simply came to pass some constructive criticism and suggestions to further aid its public acceptance. Perl is the nicest language I’ve seen so far, and I would highly recommend anyone to learn it.
(I am also grateful to the Python, Ruby, Tcl, PHP, etc. crew for working on languages which can provide a viable alternative to Perl in some cases and by some people. By all means, Perl is not suitable for anyone and for any purpose and I always appreciate a healthy competition.)