| | | | |
RSS Email
 
 

Perl Experts - Why They Are Passionate About Perl

Posted by Naveen Bala at 07:06PM Dec 12, 2007

AddThis Social Bookmark Button

Popularity of a language at the end of the day, comes down to the passion of the user community. A passionate and vibrant community helps language adoption and help increase its popularity. We wanted to talk to a select few experts, people who are experts in the language and ask their opinion. This is Part 1

Let me introduce you the Perl experts (if you dont know them already).

brian d foy (he is very particular about his name) - Publisher and editor of The Perl Review, co-author of books on Perl including Learning Perl and Intermediate Perl, founder of Perl Mongers, and a veteran of the Iraq War. His website.

Rafael Garcia-Suarez  - Current pumpking for Perl 5. He is a French software engineer and Unix system administrator, who lives in Lyon, France, with his wife, his kids and his goldfish. In his spare time, he contributes to the Perl programming language. His blog.

Greg McCarroll - His interests include distributed computing, web 2.0, america, perl. Here is his CPAN modules. (Author to Greg: Please complete your biography todo in drinkbroken). His website, his blog.

Frank Wiles - Co-author of the book Instant Perl Modules. Current maintainer of the Apache::DB, Apache::DProf, and Apache::SmallProf CPAN modules for debugging and profiling mod_perl applications. His blog.

Zbigniew Lukasiak - Perl and User Interface consulting. Manages Perl Alchemy. His other blog.

Bill Ward - Teaches Perl Programming for Bay View Training and at De Anza College.

Q: If you were to start afresh, would you learn Perl again?

brian: Certainly. Any good IT person should have a range of tools to choose from. Perl is an incredibly useful language and I do quite a bit of work in it. I don't recommend it for every task, but I recommend it for a lot of tasks.

Besides that, computer languages are really human languages. We use computer languages first to express our intent to other humans, and after that to instruct the computer to do certain things. Realizing that, not everyone is going to like every language and different people will feel differently about the same language. People should learn several languages to find the one in which they are most productive. That is hardly ever a technological measure so much as a social one, and even the languages someone doesn't like often help them program in the ones they do like.

If it comes down to just getting a good job, a good Perl programmer won't have any problem finding a job. It's wanting the job that you find that is the problem.

Rafael: Yes, most definitively.

Greg: Yes, more than ever I believe that Perl (and scripting languages in general) is a key technology -- for a long time Perl was regarded as a text processing language which was great for 'gluing' text based processes/data together. However, since Perl 5 was sent off into the wild we have seen an incredible growth in CPAN. Meaning that there are now interfaces to a large variety of systems, available in seconds to 'glue together'.

The meta-systems you can create from this can be incredibly powerful and offer benefits either to yourself or your company. And there will be a time where by the building of such systems become a standard by which companies will succeed or fail, we are already seeing PR companies offering services to monitor Google alerts for their clients -- I believe bespoke meta-systems are simply a continuation of this.

To give an example, if you are considering investing in a company why not mine a site like linked-in to discover the staff turnover of the company to give a measure of its stability, this is the sort of task that a glue/data manipulation language like Perl is perfect for.

Frank: Absolutely! In fact, I seriously doubt I would still be programming if it were not for how enjoyable Perl makes developing software.

However, Perl does suffer from a PR problem.  We tend to be a very insulated community, talking amongst ourselves. If I was an aspiring young programmer today, I might be swayed toward other languages such as Python because of this.  It doesn't take running across many "Perl is line noise", "Perl is unmaintainable software", "Perl is dead" web pages and seeing praise of Python/Rails online and in major media to make a novice head in another direction.  Irregardless of how misguided those comments might be. When you're a novice you can't as easily separate the wheat from the chaff.

Zbigniew: Yes.

Bill: Yes.  Although it isn't as widely used for Web programming as it once was, it is still the best tool for many other tasks, such as automating Linux/Unix system administration and specialized areas such as bioinformatics (the Human Genome Project uses Perl heavily).


Q:What do you think is the most important feature of the Perl language?

brian: The most attractive feature to me is the Comprehensive Perl Archive Network (http://search.cpan.org). It has over 10,000 freely-available and free-to-use Perl modules for just about any task. This archive has been around since 1995 and if someone has had a problem to solve, they've probably created a Perl module for it and uploaded it to CPAN. 

 Rafael: The CPAN. In other words, the Comprehensive Perl Archive Network, a repository of thousands of reusable, open source Perl modules, that cover almost everything, from DB interface to Web scraping and XML processing.

Greg: CPAN, don't get me wrong it's a great language but CPAN is it's silver bullet. Beyond CPAN, I'd suggest the functional programming aspects that map/grep/sort add in, the funny thing is Perl is no Haskell, Java or Lisp -- it doesn't have a single philosophy to force upon the programmer. It's also not proud, Perl will steal from any language that has a good idea, currently Perl 5 is happily stealing from Perl 6.

Frank: CPAN and the Perl community as a whole are the most important features by far.  Don't get me wrong, Perl is a great language on it's own, but CPAN is Perl's "killer app".  What other language out there has 10,000+ modules of easily re-usable code freely available at your finger tips?

Zbigniew: It's efficient and has lot's of really mature libraries (CPAN)

Bill: The fact that it does not require you to write a lot of "boilerplate" code to get things done - it stays out of your way and lets you get the job done without jumping through hoops.

 

Q: What Perl forums would you recommend?

brian: I'd recommend that Perl newcomers check out http://learn.perl.org.

Rafael: I don't use many forums besides specialized mailing lists. use.perl.org and perlbuzz.com are news sites that I follow.

Greg: I'd always recommend the local Perl Mongers usergroup, I'm blessed by living in London and being able to meet up with London.pm regularly, but there are local usergroups world wide, and they pretty much always go out of their way to welcome newcomers.

Frank: perlmonks.org is the best place to post a random question and receive some guidance.  Then there are the more task specific mailing lists such as the mod_perl mailing list ( perl.apache.org ) which is very active helping new mod_perl users.

IRC channels on irc.perl.org and irc.freenode.net are also great sources of help.

Zbigniew: PerlMonks and Perlbuzz and of course mailing lists for the libraries.

Bill: PerlMonks.

Q: What book would you recommend to a newbie?

brian: I'm a bit biased, but I like my own books: _Learning Perl_, _Intermediate Perl_, and _Mastering Perl_. There's also http://books.perl.org which lists most Perl books along  with some ratings, and there is a list of recommended Perl books in perlfaq2.

Rafael: "Learning Perl", without hesitation.

Greg: Learning Perl would be the obvious choice, but If I can cheat on this question as soon as a programmer is up to speed with Perl I'd really really recommend they look at MJD's Higher Order Perl -- in some ways I dislike his book as it means that anyone who reads it can in a very small time frame gain the competitive advantage that I had with a degree in computer science.

Frank: Damian Conway's "Perl Best Practices".  While many of the concepts are typically above the level of "newbie", reading over it will spark their memory when they advance to the level of using that particular technique/tool.  Bad habits are notoriously hard to break and not getting into them in the first place is always the best option.  I think this book is essential for newbies, even if they don't entirely understand it. Perl is such a flexible language, which is great, but with that flexibility comes great responsibility to use it appropriately.

Zbigniew: I am sure that the llama and camel books are excellent starting points.

Bill: Beginning Perl . There is also an updated version from Apress: http://www.apress.com/book/view/159059391X

 

Q: Name a programming language that you would like to learn? (if you had the time & resources, of course)

brian: Although I already know Smalltalk, I've been watching the development of Seaside and the next generation of Smalltalk tools and environments closely and hope to be able to do more with those soon.

Rafael: Haskell or any other purely functional language.

Greg: If I had that time I'd go design a language, not from a academic/syntax point of view, I'd simply go around every business that would let me through their doors and ask them about what they'd like to do with a programming language -- I worry that a lot of new languages come from academia and I wonder if there isn't a problem space beyond pure language theory that needs solving, although maybe Excel/Yahoo Pipes researchers are already looking at this problem.

Lastly I'd like to answer the invisible question 6, what website should your readers visit? Well I would recommend http://www.freerice.com/ , they can have some word fun and do something good for those less fortunate.

Frank: Well with Perl I get so much done that I often have time to play with new technologies, but if I had to pick another language to use, it would most likely be Python.  I have many friends in the Python world, and I trust their opinions that it really is a great language.  But honestly, I have never been shown a compelling reason, for me specifically, to leave Perl for other pastures.
Most of the reasons anyone ever cites in the flame wars of PHP vs that, and Rails vs this, etc. are rooted in syntax/style differences.  Programming by convention, forced styling, etc. Personally, I don't see these are compelling reasons to use them.  I can do all of those same things in Perl, it's just up to me to do them, rather than have it enforced on me by the language.

Zbigniew: Ruby, Prolog, Ocaml/Haskell/Erlang

Bill: Ruby (on Rails)


This is part of the "What Makes a Programming Language Popular" series where we compare Perl, PHP, Python and Ruby. See


 




Programming Language Book Sales to Predict Adoption and Retention

Posted by Naveen Bala at 06:28PM Dec 11, 2007

Comments[3]
AddThis Social Bookmark Button

Introductory programming language book sales indicate the amount of interest in adoption. Note that I have stressed the word interest. Comparing the introductory level books for Php, Perl, Python and Ruby will tell us how well the advocacy efforts of each language is doing to generate interest in that language.

Intermediate to Advanced level book sales indicates the retention of that interest. 

Tracking book sales as an indicator of the market, has been used by Mike Hendrickson of O'Reilly in State of the Computer Book Market.

My interest in comparing book sales is to compare the adoption and retention interest of each language. You can check Antonio's Comparison of programming languages for more languages and how they fare in terms of book sales.

 Unlike, O'Reilly, I do not have access to BookScan data, so I went with Amazon.com's sales rank. Amazon also has the feature to list books by programming language and by levels (Introductory, Intermediate-Advanced). Since Amazon.com's Sales Rank is not linear but a log scale, I used an estimator function to translate the sales rank to predict volumes sold. (This function holds well but at very low ranks, less than 10, this function over predicts. We wont have a problem as no programming language book will have a sales rank that high.)

 Predicted Sales Volume per Year = 10080 * EXP(-2.4629 * LOG10(Amazon Sales Rank))*365

NOTE TO READERS:  The Methodology I used to Predict is inherently flawed as I had captured the sales rank at one point of time and tried extrapolating it to annual sales. Authors like brian (Learning Perl) pointed out this flaw as they had the actual book sales data. So until I track sales ranks over a longer period of time and check to make sure that the predicted volume approximates actual sales, I am removing the  estimated book sales data and the sales rank. I am leaving behind the list of books that were the top 5 in Amazon in each category.

 Php Introductory Book Sales
 Perl Introductory Book Sales
 
 Name
 Beginning Php and Mysql5
 Php5/Mysql Programming
 
 Name
 Learning Perl 4ed
 Beginning Perl 2ed
Python Introductory Book Sales
Ruby Introductory Book Sales
 Name
 Python Programming: Intro to CS
 Python Programming for Absolute Beginner

 Name

 Ruby Programming for Absolute Beginner


I used the same methodology for Intermediate to Advanced level. Here, there was a better choice of books for all the languages.

 

 PHP Intermediate/Advanced Book Sales
 Perl Intermediate/Advanced Book Sales
 
 Name
Programming PHP
PHP and MySQL for Dynamic Web Sites:
PHP Solutions: Dynamic Web Design Made Easy
PHP 5 Objects, Patterns, and Practice
PHP Cookbook
 
 Name

 Learning Perl 4ed

 Programming Perl 3ed

 Perl Cookbook

 Python Intermediate/Advanced Book Sales
Ruby Intermediate/Advanced Book Sales
 
 Name

Learning Python

Python in a Nutshell

Programming Python

Python Cookbook
Core Python Programming
 
 Name
 Agile Web Development with Rails
 Programming Ruby: Pragmatic Programmmer Guide
 Railspace: Building a Social Network
 Ruby Cookbook
 Ajax on Rails


This is part of the "What Makes a Programming Language Popular" series where we compare Perl, PHP, Python and Ruby. See


 




How does Perl, Php, Python and Ruby compare in support resources?

Posted by Naveen Bala at 09:42PM Dec 10, 2007

AddThis Social Bookmark Button

Language popularity is dependent on support resources like forums, groups and blogs. When we analyze the popularity of a language, we need to compare the support resources for each language. 

Everyone of us, from a newbie to an experienced hack, have run into road blocks time and again and have turned to these support resources for solutions and pointers. The support structure for each language plays a critical role in making it easy to adopt a language and to increase its popularity with an increasing user base.

So, how does Perl, Php, Python and Ruby compare in terms of support resources?

 The first comparison we make is the general term visibility in each search engine.

Term Visibility 

This gives an idea as to the number of sites out there that at least mentions the language. Granted, this is a very poor way to compare the number of sites devoted to each language but due to a lack of my imagination, I am going to use this for a very gross comparison. The TIOBE Programming index uses +"<language> programming" as a way to calculate the popularity of a language. Instead of using the phrase, we will use <language> AND programming as I think this is a less restrictive way of finding sites devoted to a language and is good at eliminating noise (as much as possible).

 Sites for perl php ruby python comparison
  Sites from Each Search Engine in Thousands
  Google Yahoo MSN Normalized
 PHP 10466.2 105  1
 Perl 48.2 30.5 42.5 0.46
 Python 44.1 24.1 15.5 0.39
 Ruby 33.1 22.5 23.2 0.32

The normalized column is a weighted  normalization using search engine market share, Google: 63%, Yahoo 32% and Msn 5%.

 

For every 100 sites for PHP, there are 46 sites for Perl, 39 sites for Python and 32 sites for Ruby.

Usergroups that Meet in Person

Usergroups that meet in person provides an excellent opportunity for anyone interested in that language to learn from the experts. The number of usergroups also indicate the motivation and dedication of the user base. This is a definite indicator of the popularity of that language. We compared the officially listed usergroups that is located in North America (US, Canada and Mexico). We used the number of user groups listed in PerlMongers, Python.org, RubyGarden.org and PhpUserGroups.org .

 Perl Python Ruby Phy Usergroups                         User Group Comparison
 PerlPerlMongers
120 User Groups
 PythonPython.org
 44 User Groups
 RubyRubyGarden.org
 117 User Groups
 PHPPhpUserGroups.org
 101 User Groups

My 2 cents: Come on Python enthusiasts, you need to do better if you need to grow Python's popularity.

Most Popular Forums

We compared the membership numbers in the most popular online forums to get an idea of the size of the user base for each of the language. The membership is of course not restricted to the U.S and like the term visibility is a rough indicator of the size of the user base.

Popular Perl forums

 TekTips.com32,346 registered members
 comp.lang.perl.misc4660
 PerlGuru 3656

 

Popular Php Forums

 PhpFreaks55182 registered members
 PhpDn 33985
 comp.lang.php 7033

 Popular Python Forums

 comp.lang.python11433 registered members
 tek-tips2046
 

Popular Ruby Forums

 Ruby-Forum.org 9470 registered members
 Railsforum 7558
 comp.lang.ruby 6443
RubyForums.com2968
 tek-tips.com 544

Usenet group, comp.lang is the common forum across Perl, Php, Python and Ruby, so it makes sense to compare the memberships of the usenet group.

 

 

 Php Perl Ruby Python comp lang membership

 

 

 

 

 


This is part of the "What Makes a Programming Language Popular" series where we compare Perl, PHP, Python and Ruby. See


 




How Many Perl, Php, Python and Ruby Developers Are There?

Posted by Naveen Bala at 10:21PM Nov 20, 2007

AddThis Social Bookmark Button

Current Availability of Perl, Php, Python and Ruby Programmers

 

 Companies choose a programming language for many reasons, but one of the top ones would be the availability of developers in that language. You don't want to start a development project with a language and realize that there are only a handful of people out there, who know that language.

Availability of experienced and talented developers is a key requirement of corporate adoption and retention of a programming language.( see Corporate Popularity  What Makes a Programming Language Popular )

How do we estimate the number of programmers experienced in each language?.

Rather than absolute numbers, it would be sufficient to compare the relative numbers of developers experienced in a particular language from a large sample of developers. This ratio estimate will more or less hold good in the general population.

To get an unbiased, large sample, we turned to the top 3 search engines, Google, Yahoo and MSN  to find the number of resumes on the web with a particular skill.  The hypothesis is that the likelihood that a Perl programmer will put his/her resume online is the same as that of a Php programmer, so on and so forth.

The query we used to find resumes is

                   (intitle:resume OR inurl:resume) LanguageName -intitle:jobs -resumes -apply

in the three search engines.

 

 Php Perl Python Ruby Resumes

 

Observations:  In Google Php results are about 6 times more than the next skill, Perl. Where as in Yahoo the results between Php and Perl were nearly similar. MSN showed Php to be 5 times that of Perl. What this tells us is that there is a large variation between the relative number of resumes for each skill in each search engine.

Resumes in Search Engines

  GoogleYahoo
MSN
 Perl 170 24775.1 
 Python 54.2 68 23.9
 Ruby 34.1 19.2 11.5
 Php 1050 274 375


As seen above, there is a wide variation in the raw numbers from each of the search engines. We need a normalized set of numbers that can say that for every 100 php programmers, there are 40 Perl programmer, 20 Python and 10 Ruby programmers, or something like that.

The first thing we did is to normalize the skills in each search engine. Then we assumed the relative market share of the search engine (totally arbitrary, needed a weighting factor of the search engines) and computed relative numbers. The relative market share of Google vs Yahoo vs MSN is about 44:29:13. To those, who have a keen eye, the market share of the three search engines come only to 86 and not 100. We scaled the search engine weighting numbers so that we had 100.

 Php Perl Ruby Python Resumes in Search Engines

 Resumes in Search Engine - Normalized

  GoogleYahoo
Msn
Combined
 Perl 0.16 0.90.2 0.42 
 Python 0.05 0.25 0.06 0.12
 Ruby 0.03 0.07 0.03 0.04
 PHP 1 1 1 1

 

 

Conclusion: The combined search engine column estimates that for every 100 PHP developers, there are 42 Perl developers, there are 12 Python developers and 4 Ruby developers.


This is part of the "What Makes a Programming Language Popular" series where we compare Perl, PHP, Python and Ruby. See


 




Php, Perl, Python or Ruby Programmers - Who Earns More?

Posted by Naveen Bala at 08:38PM Nov 19, 2007

AddThis Social Bookmark Button

Salaries Offered for Perl, Php, Python and Ruby Positions

 

Future salary is a significant motivator for somebody to learn a new language (use it for a living). We used the OdinJobs Market Statistics tool to help us analyze which skill pays more. The market statistics tool helps analyze salaries offered in jobs targeting junior-mid level programmers and  senior/Lead/Architect developers.

First we compared how salaries varied between a jr-mid level position and a senior level position within a language. The results are below.

 Perl Median Salary

 Perl Median Salary Comparison

 Senior level architects and lead programmers using perl earn 10% more than the developers. This is a median salary, which means a lot of variation in salaries is squished into a single number. In all jobs that required perl, the median salary was $80,560. The variations in median salary also varies according to locations but this chart has been generated for the entire United States.


 PHP Median Salary Comparison

  Median Salary for All Php jobs: $66,200

  Median Salary for Php Architects: $71,000

  Median Salary for Php Developers: $64,540


 Php Median Salary

 

 Python Median Salary

 Python Median Salary Comparison


Median Salary for all Python Jobs: $75,720

Median Salary for Python Architects: $80,310

Median Salary for Python Developers: $74,790 


 Ruby Median Salary Comparison

Median Salary for all Ruby Jobs: $74,150

Median Salary for Ruby Architects: $82,890

Median Salary for Ruby Developers: $ 73,880

 Ruby Median Salary

 


 


This is part of the "What Makes a Programming Language Popular" series where we compare Perl, PHP, Python and Ruby. See


 




RECENT STORIES

Cool Fact Of The Week

Oracle DBA Career - Financially Rewarding But You Got to Enjoy It

Cool Fact Of The Week

Executive Resume Writing: Get the Top-Level Job You Deserve

Something Cool- Got iphone Apps?

Cool Fact Of The Week

Writing Resumes for Federal Jobs

What We Learned About IT People From The Show 24

Cool Fact Of The Week

Suspect Your Job May Be In Jeopardy's? Launch A Passive Job Search.


Archives

Search Corporate/Career Sites
keywords:
location:
Customize This for Your Website

Can You Make More Than Your Brother-in-law?
SkillLocation
Customize This for Your Website