I clearly remember the moment that became a perl programmer. I followed a fairly common programming path: BASIC and Pascal on the Apple II; Pascal, C, and COBOL; and Visual Basic, REXX and Java after college. Writting database front ends in VB and Java 8-12 hours day was enough to drive me out of the programming business and into a sysadmin position working with Novell, OS2 and Unixware servers. My only exposure to perl at this point was a poorly written "Teach Your Self Perl 5 in 21 Days" book and buggy "cargo cult" CGI scripts my users gave to put on our webserver. Remember Matt's Script Archive? Needless to say, I considered perl to be buggy, obfusciated, line noise.

After a couple of years, I went back to graduate school to persue a Masters degree in a non CS related field. My master's thesis involved analyzing 4.5 data points of time series data. I started anaylzing my thesis data using Mathematica and some programs I had written in Java. While I was in the early stages of the data analysis, I took a long weekend trip to New Orleans to visit a friend who was there on business. Since I knew that I would be spending quite a bit in airports and waiting for my friend to finish up meetings and the like, I borrowed an old laptop running Redhat Linux to work on my thesis. I copied my data to the laptop, but I didn't think to check to see if the it had a java compiler or a JVM installed. While waiting for my flight to New Orleans, I realized that the Redhat installation on the laptop had perl, python, tcl/tk, gcc, and a couple dozen variations of lisp and scheme, but no java compiler or JRE. I either had to find some other way to work or resign myself to hauling an extra 10 pounds of dead weight around the French Quarter. As I mentioned before, I wasn't fond of perl and I hadn't touched C since my undergraduate days, so I started writting some new data anaysis programs in Python. I ran into some problems early in the process and the documentation that I had on the laptop for Python wasn't terribly helpful. At this point I decided to give perl another chance. After writting a couple of "hello, worlds" and looking through the FAQ, I had a working data anaylsis program and my perception of perl had changed a bit -- perl wasn't a bad language, I probably wouldn't use it if I could use java, but it wasn't a bad language. The epiphany came a few days later after a night of too many hurricanes and too much gumbo. I was working on my thesis in Cafe du Monde drinking coffee and eating order after order of those fried, powdered sugar donut like things they sell when it struck me that the best way to describe patterns in my data was to describe them using perl's regular expressions. The text of my thesis is peppered with regular expressions and snippets of perl code. I have graphs where the axes are labeled with regular expressions. Perl is unique in its rich expressiveness. You can see this clearly in the poetry, obfusications, and JAPH signitures. For me perl was not only a better tool than Java or Python to deal with my data, it was a better language than English to describe my data. It was at this point that I became a perl programmer.

----
Coyote


In reply to A perl epiphany by Coyote
in thread Stepping in the Footprints of a Perl Programmer by magnus

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.