
Perl is 26 Today - Mithaldu
http://www.modernperlbooks.com/mt/2013/12/perl-is-26-today.html
======
arc_of_descent
Been using Perl for almost 10 years now. I've used Perl for almost everything.
Web development using CGI::Application, developing my own web framework,
console apps (using the ncurses library), POE (Perl Object Environment), Web
socket stuff and more.

My main job currently involves maintaining and developing a huge code base in
Perl including three websites (soon to expand to much more). Perl just works.
I thoroughly enjoy coding in it. I've not spent too much time optimizing and
testing code though. mod_perl is pretty fast in itself (using Apache).

That being said Perl certainly lacks the in-built features which would make
meta programming a quick and easy job. Yes, I still have to start using Moose.
Perhaps in 2014!

Happy 26th Birthday Perl! Without you, I wouldn't have a job!

~~~
csmuk
I wouldn't have had a job between 2003-2004 which was untangling Perl and
rewriting it in C# :)

~~~
yapcguy
Are there any _new_ Perl jobs in 2014?

Is there growth in the actual number of Perl full-time positions or is it
declining?

Companies obviously need Perl programmers to maintain and enhance existing
systems, but we don't see or hear about any new start-ups using Perl as part
of their stack.

Fwiw: I don't use Perl anymore but was a fan and love Moose and CPAN.

~~~
wiredd
We're a growth stage startup hiring perl programmers to do new development in
the Los Angeles area. Perl isn't the only language we use (we have some
python), but it's widely used throughout our systems.

[https://www.ziprecruiter.com/hiring](https://www.ziprecruiter.com/hiring)

------
ChuckMcM
So when I went to Google I learned Python. I enjoyed the language and used it
a lot, it has a solid support base and pretty much anything you wanted to do
you could import a module to do it. When I went to Blekko they were a perl
shop, which was a bit intimidating at first, but after programming in it for
nearly 4 years now I find I can get from concept to first test faster in Perl
than I could in Python. And I hadn't realized how much the Python indentation
stuff bugged me until I got back into a scripting language with braces.

At the end of the day I find I prefer perl for quick things, and Python for
multithreaded things.

~~~
per06a2
I can't stand perl's philosophy:
[http://en.wikipedia.org/wiki/There%27s_more_than_one_way_to_...](http://en.wikipedia.org/wiki/There%27s_more_than_one_way_to_do_it)

Contrast with Python's philosophy:
[https://wiki.python.org/moin/TOOWTDI](https://wiki.python.org/moin/TOOWTDI)

Python's philosophy may be limiting for some people, but I'd rather have code
that I have a decent chance of reading and understanding the run-time behavior
of than a language that encourages extreme personalization.

The whole parsing thing doesn't help either:
[http://www.jeffreykegler.com/Home/perl-and-
undecidability](http://www.jeffreykegler.com/Home/perl-and-undecidability)

~~~
kamaal
So you can't stand any and all programming languages? Because you can do
anything in more than one way in all languages. And that's the whole point in
'programmability'.

And secondly its extremely rare that you will run into some obscure feature
which indulges in the whole parsing thing you mentioned.

------
agentultra
Yay Perl!

It was my first exposure to dynamic programming languages (unless you consider
BASIC one). I started out on BASIC on an Amiga 500 then C on my first DOS 386
computer (I just wanted to learn to make games). I came across Perl in my
final year of high-school when at a co-op placement with a local web
development shop. The school taught Pascal and a little-known language called,
_Turing_. Scalars were super-cool by that point.

It's amazing to see how far things have come and that Perl continues to get
better despite the downward trend in its popularity in recent years.

Here's to another 26! :)

------
athenot
Two main aspects of Perl that have always drawn me time and time again back to
it are (1) the get-it-done mentality (there's more than one way to do it, and
what really matters is completing the job) and (2) the huge repository of
modules that is CPAN.

Evaluating other environments along those lines yielded interesting
frustrations. In my opinion, the real contender is node.js, thanks to its
minimalist approach on many things, and NPM.

Note: I'll admit that Node forces you to be as async as possible, but it's for
a good cause so I can turn a blind eye on it. :)

------
arjn
Good old perl. Complicated, funny, odd and very useful. I've been using it
regularly for the last 6 years now.

~~~
nly
That moment when you realise you're older than Perl, and many of the same
adjectives apply to the both to you.

~~~
Surio
I chuckled aloud at that one, and (funnily enough) it rings true!

------
AugieDB
Was introduced to Perl in a programming languages course in college in
1996/1997\. Brought it to my first job, where it gained fame there for being
the language that took a 12 hour process and ran it in less than a minute.
(They had originally been trying to parse a huge log file with Visual Basic, I
believe it was. Perl was made for, well, extraction and reporting...)

Been programming in it full time ever since.

Thanks, Larry Wall, Randall Schwartz, Brian Foy, Nat Torkington, Tom
Christiansen, Damian Conway, etc. etc.

Count me in as another person introduced to O'Reilly via "Programming Perl."
Was "Perl Best Practices" the first such "Best Practices" book?

~~~
adharmad
One of my favorite Perl books, albeit a bit lesser-known is "Higher Order
Perl" by Mark Jason Dominus.

~~~
sateesh
And which is available online at:
[http://hop.perl.plover.com/book/](http://hop.perl.plover.com/book/)

------
swansw
For those wondering about startups using Perl for a large part of their
codebase, DuckDuckGo is certainly one. There maybe others too but mostly it's
for server side scripting.

~~~
freyfogle
Here's a new site that features start-ups using perl
[http://www.builtinperl.com](http://www.builtinperl.com)

------
taude
Favorite Perl story (despite it being the first language I used to program the
web back in college).

I once had to work on a an ASP (MSFT Active Server Pages circa 2001?) website
that was written with ActivePerl [1]. Their technologist chose it, then left
the company, and they had a hard time finding someone to work on it.

Also, the Programming Perl book was my first O'Reily book that I read/used,
checkout out from campus library.

Ahh...memories.

[1]
[http://www.activestate.com/activeperl](http://www.activestate.com/activeperl)

~~~
tootie
I think that Learning Perl and Programming Perl were the books that put
O'Reilly on the map. Lerning Perl was the best intro to programming book of
it's generation for sure.

------
Surio
I am a Perl user and I do like it very much (warts and all). This article
reminded me of another self-deprecatory Perl article:
[http://ebb.org/bkuhn/blog/2012/12/18/perl-
cobol.html](http://ebb.org/bkuhn/blog/2012/12/18/perl-cobol.html)

And yes, as the article says, Here's to 26 more! :-)

~~~
lmm
That's an interesting article but seems to be missing the actual why of it. He
still likes perl because... culture? Some people are still writing software in
perl or cobol, sure - and some of that is good software that solves real
problems. But the reason we think of the average programmer in one of these
obsolete languages as "some sort of second-class technology citizen" is that,
well, they are. Compared to the rest of us they spend more time working around
language deficiencies, inadequate tooling and all the rest of it, and less
time making interesting things.

Right now I'm a huge Scala fan. I've had that experience of feeling that I
never want to program in any other language again (and every other language
I've gone to, even those I used to like, feels clumsy and tedious by
comparison). But I hope that in 25 years' time I'll have moved on to something
even better. Language design isn't done, and languages are getting better all
the time.

~~~
virtualsue
I run into many Scala fans amongst Java developers. It's the current shiny
thing in that technology area. Good old Java (of a similar age to Perl) is
usually what they're making their living doing...

~~~
stevan_little
Actually Perl 5 is older then Java by about a year (yes, Perl had OO support
before Java even left the lab). But Perl itself is much older then Java, by
several years.

------
pera
I love Perl, it's the only language (afaik) that let you do the same thing in
a hundred different ways, and this provides infinite fun when you program
since you can discover or think something new every single time. And that's
why we have perl poetry, perl golf, and fantastic obfuscated codes. Happy 26!

    
    
       no less can I say;
       require strict, close attention
       while you ... write haiku

------
onion2k
I used to be a Perl developer a very long time ago. Writing CGI based web apps
was fun, and felt much 'tighter' than today's world of PHP, Ruby, JS, etc.
That said though, I don't miss it. :)

Perhaps my favourite memory of the Perl scene was the announcement of Parrot -
an April Fools joke that detailed a project to built a bridge between Perl and
Python - that then got built. Brilliant.

------
AlexanderDhoore
I'm a relatively new programmer. Been programming for around 4 years. I tried
Perl, but felt like the world had moved on, so I never really committed to it.

With PHP, Python, Ruby and Javascript... space seems tight for another
scripting language. Languages like Lua have something special. What's special
about Perl?

Edit: I don't want to be hateful. The more the merrier obviously.

~~~
collyw
I moved from Perl to Python 3 years ago.

Its true. Perl feels like a very powerful base language, moving to Python felt
like you were taking a bit away (I know in reality you can probably achieve
much the same things). Python on the other hand doesn't require you to
implement your own basic functions (max, min , trim / strip ) as they are
included already. Python stops me from shooting myself in the foot as often,
by not allowing me to do stuff that is too clever too early.

I do miss being able to reference / deference variables explicitly though.
Other great things are, CPAN, regular expression support (that never feels as
nice in Python), one liners for doing stuff quickly on the command line. I
even quite like the sigils, as an easy way to recognize the types of variable
you are dealing with (though it is confusing at first). Working with strings
feels a lot more natural in Perl than Python.

~~~
vorg
> I moved from Perl to Python 3 years ago

But Perl-like ambiguity still seeps into your English. Was that Python 3, or 3
years ago?

~~~
collyw
It's all implicit. Python 3 wasn't available "years ago", so I must have been
moving to Python 2, 3 years ago.

(Ok, I just checked, Python 3 has been around longer than I thought).

------
cliveholloway
Favorite Perl snippet (from Joseph Hall's EPP book)

    
    
        [$x => $y]->[$x <= $y]
    

Holy shit - just realized I first touched Perl 15 years ago!

~~~
BCM43
What does that do?

~~~
arc_of_descent
It prints the greater variable between $x and $y.

[$x => $y] creates an array reference. => is just a fancy syntax for a comma.
So its actually [$x, $y].

[$x => $y]-> dereferences the array ref.

$x <= $y is a boolean expression which return 0 or 1. Accordingly the array
index is chosen.

Sorry if I'm unable to explain properly! Here's a script.

    
    
        #!/usr/bin/perl
        use strict; 
        use warnings;
    
        my $x = 8;
        my $y = 9;
    
        print [ $x => $y ]->[ $x <= $y ];

~~~
geophile
\- Why not just write ',' instead of '=>'? Is there an actual reason for this
other syntax to exist and to be used?

\- Why does the array have to be explicitly dereferenced? Isn't it obvious
from context?

\- Why count on the mapping from boolean to int being false = 0, true = 1?
Pretty much everything other language that has such a mapping does false = 0,
true != 0.

In one line, a vivid reminder of why I find perl so awful.

~~~
drivers99
This is obviously written to be clever/cute, not readable. If you just wanted
the max of something, you could just write: $x > $y ? $x : $y; (This is the
ternary operator borrowed from C, which still is a little confusing.) You
could also just use an if / else statement, or write your own min/max
functions. Or you can use min() and max() functions imported from List::Util
module which can return the min/max from an entire list:
[http://timmurphy.org/2012/02/01/min-and-max-functions-in-
per...](http://timmurphy.org/2012/02/01/min-and-max-functions-in-perl/)

------
virtualsue
Many happy returns of the day. Good old Perl. I'd be happy to use other
languages, but I tend to get plenty of offers to continue using this one. :-)

------
rikacomet
I recently turned into a Perl user. Though I must say, documentation about
Perl with CGI, and pre-made scripts are a let down. I browsed many O-Reilly
books on Perl, CGI is one of the least explanative topics. Some modules have
very obscure explanation on CPAN, I don't mean any offense.

If not for Perl Monks, my enthusiasm might have been lost midway.

~~~
mxey
CGI is not the way to go today. If you want to build web pages with Perl,
check out [http://mojolicio.us](http://mojolicio.us)

~~~
rikacomet
Might I ask, in a nutshell.. why not CGI?

~~~
untothebreach
(classic) CGI requires a full application start-up every time a request comes
in, and so is very slow. If you have to use CGI, use FCGI (fast cgi) to solve
that problem.

However, in recent years PSGI has started to become the standand in the
community. As far as I know, it is modeled after Python's WSGI. All of the
"major" perl web frameworks support it, the three big ones I can think of are
Mojolicious[1], Dancer[2], and Catalyst[3].

1:
[https://metacpan.org/pod/Mojolicious](https://metacpan.org/pod/Mojolicious)

2: [https://metacpan.org/pod/Dancer](https://metacpan.org/pod/Dancer)

3: [https://metacpan.org/pod/catalyst](https://metacpan.org/pod/catalyst)

~~~
rikacomet
I will look into these, thanks! I knew about FCGI, but didn't knew about PSGI.
Much appreciated.

~~~
untothebreach
I probably should have included this link too: the PSGI spec itself
([https://metacpan.org/pod/release/MIYAGAWA/PSGI-1.102/PSGI.po...](https://metacpan.org/pod/release/MIYAGAWA/PSGI-1.102/PSGI.pod))

------
arca_vorago
My favorite perl story: Had been working on parsing through huge flat text
files with it, had over 40 lines going and just could not get it to work
correctly. I took a step back, rethought what I was trying to do, and wrote a
one liner awk that just worked.

Side note: I have noticed that in bioinformatics, perl is largely being
replaced with python in tool usage.

~~~
Mithaldu
> I have noticed that in bioinformatics, perl is largely being replaced with
> python in tool usage.

Which has honestly little to do with the language and more with the fact that
the bioinformatics-related Perl books are the worst programming teaching books
i have ever seen. (Honestly, a lot of the flak on perl goes back to old and
outdated books.)

~~~
arca_vorago
I would also venture that much of the transitions are feedback loops. So
person A makes a new shiny in python for no reasons relating to superiority of
language for job x, but because person A is good with it. Well, if what he
makes is good, people start using it. Then it breaks, and they have to fix it,
or maybe get an idea to fork it. Suddenly, person A's software just encouraged
20 people to hop into python for no real concrete reason. On the bio side,
bio-python is just much more intuitive imho, vs bio-perl.

------
sanskritabelt
I haven't been a regular perl programmer for coming up on 10 years now
(switched to python), but I still miss the easy regexes, and I'll pull it out
when I have to do awk/sed like things.

------
indubitably
And Perl 6 is 27.

------
majidazimi
hahaha. Perl is 2 years older than me.

~~~
ChuckMcM
You don't even want to know how old FORTRAN is :-)

------
amerika_blog
Perl is the ultimate hacker's language.

It was for the 90s and 00s what Microsoft BASIC was to the 1980s.

However, I think it's also coming back. Most of the "inefficiencies" it got
tagged with were relics of the server model at the time, like CGI.

Now many are seeing that mastery of a general-purpose language is better than
knowledge of specialized methods in a specialized language.

The first is flexible; the latter is not.

~~~
untothebreach
I also think that things like Modern Perl[1] are helping to move the community
away from the "line-noise" style of Perl that it was (in)famous for back in
the day.

1: [http://modernperlbooks.com](http://modernperlbooks.com)

------
amerika_blog
Still the best all-purpose language. Trend languages like Ruby and Haskell are
flashes in the pan.

~~~
dons
Not sure I want to do BlackScholes and MC or solving SAT problems or data
structures in perl..

But text processing , hell yeah. perl -pei ftw!

The legacy is perl REs

~~~
Mithaldu
You can probably do those with PDL.pm :)

[http://pdl.perl.org/?page=screenshots/index](http://pdl.perl.org/?page=screenshots/index)

------
toadi
Been programming perl for over 8 years. Moved on like most of the perl
developers to ruby :)

