<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Not this... &#187; php</title>
	<atom:link href="http://blog.timbunce.org/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.timbunce.org</link>
	<description>Listen. Reflect. Explore. Solve.</description>
	<lastBuildDate>Thu, 29 Jul 2010 00:00:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='blog.timbunce.org' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://www.gravatar.com/blavatar/eb188a9f7199a98e44133dc454d3873b?s=96&#038;d=http://s2.wp.com/i/buttonw-com.png</url>
		<title>Not this... &#187; php</title>
		<link>http://blog.timbunce.org</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://blog.timbunce.org/osd.xml" title="Not this..." />
	<atom:link rel='hub' href='http://blog.timbunce.org/?pushpress=hub'/>
		<item>
		<title>Customer Relationship Management (CRM) systems in Perl</title>
		<link>http://blog.timbunce.org/2009/07/06/customer-relationship-management-crm-systems-in-perl/</link>
		<comments>http://blog.timbunce.org/2009/07/06/customer-relationship-management-crm-systems-in-perl/#comments</comments>
		<pubDate>Mon, 06 Jul 2009 15:28:17 +0000</pubDate>
		<dc:creator>TimBunce</dc:creator>
				<category><![CDATA[software]]></category>
		<category><![CDATA[crm]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://timbunce.wordpress.com/?p=286</guid>
		<description><![CDATA[I&#8217;m looking for a CRM system implemented in Perl. As it turns out, so are the Perl Foundation. So I thought I&#8217;d summarize my interpretation of the comments on that thread, as much for my own benefit as yours, and see if this post flushes out any further information. We&#8217;ll start with the smaller/personal projects [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.timbunce.org&blog=2562816&post=286&subd=timbunce&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m looking for a CRM system implemented in Perl. As it turns out, <a href="http://news.perlfoundation.org/2008/01/i_need_a_crm_package.html">so are the Perl Foundation</a>.</p>
<p>So I thought I&#8217;d summarize my interpretation of the comments on that thread, as much for my own benefit as yours, and see if this post flushes out any further information.</p>
<p>We&#8217;ll start with the smaller/personal projects and work up from there&#8230;<br />
<span id="more-286"></span></p>
<h2>John Cappiello</h2>
<p>John mentioned that he was working on something. I sent John an email to ask for an update and he said it had &#8220;morphed away from a CRM into something not really overlapping much at all&#8221;.</p>
<h2>Gábor Szabó</h2>
<p>Gábor Szabó mentioned in the thred that he has &#8220;a simple CRM I use in-house that I plan to release as open source one day. It is written in Perl. While it is very minimalistic if you are interested I can show it and we can discuss what additional features TPF might need.&#8221;</p>
<h2><a href="http://www.hiivesystems.com">Affinity</a></h2>
<p>Affinity was mentioned in the thread, but I can&#8217;t find any <a href="http://www.google.com/search?q='open+source'+site:hiivesystems.com">references</a> to it being open source.</p>
<h2><a href="http://www.thinx.ch">CustomX</a></h2>
<p>The web pages are in German, so here&#8217;s a <a href="http://translate.google.com/translate_c?hl=en&amp;sl=de&amp;tl=en&amp;u=http://www.thinx.ch/topic7854/story20752.html&amp;rurl=translate.google.com&amp;usg=ALkJrhiQbWFGGcA08iaAz6pwcweciFno_g">translation to English</a> of their web site, which gets visually mangled in the process, and a much more readable translation of their 2006 <a href="http://translate.google.com/translate?hl=en&amp;sl=de&amp;tl=en&amp;u=http://download.contentx.ch/1/crm_whitepaper.pdf&amp;rurl=translate.google.com">whitepaper</a>.</p>
<p>It&#8217;s available under the Perl Artistic License. The base language is German. I don&#8217;t know what level of internationalization/locaization they support.</p>
<p>They currently use mod_perl v1 and say it&#8217;s &#8220;not tested&#8221; for v2, which seems to suggest a lack of maintenance. Databases supported include Postgres, Oracle, MySQL, and Informix. It&#8217;s extensible via plugins.</p>
<p>I couldn&#8217;t find any indication of a development community.</p>
<h2><a href="http://wice.de/produkt.html">Wice CRM Groupware</a></h2>
<p>Another German CRM system, so here&#8217;s a <a href="http://translate.google.com/translate?hl=en&amp;sl=de&amp;u=http://www.wice.de/">translation</a> of their home page. It&#8217;s in use by <a href="http://translate.google.com/translate?hl=en&amp;sl=de&amp;u=http://www.wice.de/partner.html">a range of companies</a>, and they even have a <a href="http://www.wice.de/20051114_Magazin_mit_Award.pdf">glossy magazine</a> (though it looks like a once-off produced in 2005).</p>
<p>&#8220;Wice is a LAMP system with Linux as operating system, Apache as web and application server, MySQL as the database and the system is developed as an Apache module in mode_perl.&#8221;</p>
<p>&#8220;We have Wice a plugin architecture, which we almost arbitrary adjustments, enhancements and interfaces can be realized [...] There are also numerous standard plugins, such as a web, an integrated CMS, or a Customer Self Service Center.&#8221;</p>
<p>The source code is not &#8216;free&#8217;, however. You get the source code only <a href="http://translate.google.com/translate?hl=en&amp;sl=de&amp;u=http://crm.blogg.de/eintrag.php%3Fid%3D245">when you licence the software</a>.</p>
<h2><a href="http://donor.com/">Donor.com</a></h2>
<p>&#8220;Our software has been serving non-profits for 30+ years. We have spent the past 5 years wrapping all of our C-based business logic with Perl to expose everything as Web Services (50 modules and 300+ methods so far). Our presentation layers are the WebGUI CMS (also Perl) and a cross-client GUI (Win/OSX/Linux) written in wxPerl. Our systems integrate everything from CRM, inventory management, event tracking, credit card processing, bulk email, direct mail, magazine subscriptions, sponsorships, etc. Almost everything in our system is configurable. We have not yet open-sourced all of our code, but we did just transition our ownership to a new 501(c)3, the DonorWare Foundation, to help facilitate that in the future.&#8221;</p>
<p>Jim Brandt replied to comment in the thread saying &#8220;I got another response from the folks who run donor.com. Turns out they are heavy perl users, so we&#8217;re looking at their system right now to see if it will meet our needs. I&#8217;ll post with more details once we know.&#8221; No news yet.</p>
<p>Josh Berkus expressed some <a href="http://lists.flossfoundations.org/pipermail/foundations-software/Week-of-Mon-20080929/thread.html#22">pros and cons</a> of using donor.com.</p>
<h2>Other Perl CRM Systems?</h2>
<p>What have I missed? Are there any other open source CRM systems out there implemented in Perl?</p>
<hr />
<p>For comparison, here are some details (mostly skimmed from Wikipedia) of open source CRM systems not implemented in perl&#8230;</p>
<h2><a href="http://en.wikipedia.org/wiki/CiviCRM">CiviCRM</a></h2>
<p>Designed to meet the needs of advocacy, non-profit and non-governmental groups. Implemented in PHP. The license for the current version is the GNU AGPL 3.</p>
<p>CiviCRM may be deployed either standalone or alongside Drupal and Joomla! content management systems. Both the Drupal and Joomla! professional associations use CiviCRM. The standalone version is intended to work alongside other CMSs.</p>
<p>CiviCRM is used by many large NGOs including Amnesty International, Creative Commons and the Wikimedia Foundation for their fundraising.</p>
<p>They&#8217;re currently considering a <a href="http://civicrm.org/node/589">new architecture</a>:</p>
<blockquote><p><em>In short, we propose using PHP Doctrine for the ORM layer [...] we propose using thin controllers which speak XML and JSON. All UI is subsequently pushed directly to HTML, JS and jQuery. The controllers and the UI are connected through authenticating RESTful interface.</em></p></blockquote>
<p>Link to the <a href="https://www.ohloh.net/p/civicrm"> CiviCRM project page</a> at Ohloh.net.</p>
<h2><a href="http://en.wikipedia.org/wiki/Vtiger_CRM">vtiger CRM</a></h2>
<p>An open source fork of SugerCRM. Implemented in PHP, initially released in 2003. Seems to be supported by AdventNet, who make a non-open source Java based CRM called Zoho. Licences: vtiger Public License 1.1 and SugarCRM Public License 1.1.2.</p>
<p>Hosted at <a href="http://sourceforge.net/projects/vtigercrm/">sourceforge</a>. Link to <a href="https://www.ohloh.net/p/civicrm"> vtiger project page</a> at Ohloh.net.</p>
<h2><a href="http://www.epesibim.com/">epesi BIM</a></h2>
<p>Implemented in PHP. Links to the developers <a href="http://www.epesi.org/index.php?title=Main_Page">wiki</a>, <a href="http://forum.epesibim.com/">forums</a>, and Ohloh.net <a href="https://www.ohloh.net/p/12690">project page</a>.</p>
<hr />
<p>A search on Ohloh.net for <a href="https://www.ohloh.net/p?q=tag%3Acrm">tag:crm</a> yields 649 projects with the CRM tag!</p>
<p>It turns out that Ohloh is a great way to look for projects. The Analysis Summary on each project page gives a useful overview of some key metrics: &#8220;Large, active development team&#8221;, &#8220;Few source code comments&#8221; etc.</p>
<p>Sorting the list in various ways and taking the projects (other than those above) that appear on the first page of each, gives this list, in no particular order:</p>
<h2><a href="https://www.ohloh.net/p/openerp">OpenERP</a></h2>
<p>&#8220;Python. Formerly known as TinyERP. OpenERP is an Open Source enterprise management software.	It covers and integrates most enterprise needs and processes: accounting, hr, sales, crm, purchase, stock, production, services management, project management, marketing campaign, management by affairs, &#8230; </p>
<p>Once in production, it automates and help you to control all activities: sales triggers manufacturing orders, accounting entries are updated by stock operations, incoming mails are tracked in the system, the integrated document management system helps your team to collaborate, &#8230;&#8221;</p>
<h2><a href="https://www.ohloh.net/p/162">Open For Business Project (Apache OFBiz)</a></h2>
<p>Java. &#8220;The Open For Business Project is a set of tools and enterprise applications including ERP, CRM, e-commerce, SCM, MRP, and CMMS/EAM. It uses a service oriented and events driven architecture and tools to automate all aspects of application development and maintenance.&#8221;</p>
<h2><a href="https://www.ohloh.net/p/omnierp">Omni ERP</a></h2>
<p>Python. &#8220;Omni ERP is an innovative business application platform; it is completely based in open source technologies and brings a whole new level of modularity and flexibility to the business solutions environment.<br />
It uses a new approach combining new software engineering techniques like plugin based architecture, inversion of control and aspect oriented programming with a refreshing new RIA UI to bring a new level of experience to the SME market&#8221;</p>
<h2><a href="https://www.ohloh.net/p/adempiere">ADempiere</a></h2>
<p>Java. &#8220;ADempiere Business Suite ERP/CRM/MFG/SCM/POS done the Bazaar way in an open and unabated fashion. Focus is on the Community that includes Subject Matter Specialists, Implementors and End-Users. We are a community fork of Compiere&#8221;</p>
<h2><a href="https://www.ohloh.net/p/erp5">ERP5</a></h2>
<p>Python. &#8220;ERP5 is a full featured high end Open Source / Libre Software solution published under GPL license and used for mission critial ERP / CRM / MRP / SCM / PDM applications by industrial organisations and government agencies.</p>
<p>It is distributed to linux community via packages for numerous distributions (Mandriva, Debian, Ubuntu,&#8230;) and a dedicated Live CD.&#8221;</p>
<h2><a href="https://www.ohloh.net/p/jfire">JFire</a></h2>
<p>Java. &#8220;JFire is an ERP, CRM, eBusiness, and SCM/SRM solution for business enterprises. It uses JavaEE, JDO, and Eclipse RCP, and is designed to be highly customizable. It is a complete and extensible solution that fulfills business needs like user management, online trade with business partners, points of sale, various distribution channels forming a distribution network, store management, etc.&#8221;</p>
<h2><a href="https://www.ohloh.net/p/5550">CK-ERP</a></h2>
<p>PHP. &#8220;CK-ERP is an open source accounting / MRP / ERP / CRM system that runs on top of multiple middlewares. It provides accounting and back office functionalities to SMEs and utilizes the underlying middleware to administer accounts/groups.</p>
<p>It comprises 22 modules &#8211; Administration, Multilingual Facility, Contact Management, Customer Relationship, Customer Self Service, Vendor Relationship, Material Requirement Planning, Warehouse, Inventory, Service, Accounting Ledger, Bank Reconciliation, Accounts Payable, Accounts Receivable, Purchase Order, Sales Order, Quotation, POS for Cashier, POS for Manager, Human Resources, Staff Self Service and Payroll.</p>
<p>Operating platform can either be LAMP or LAPP. Backend database engine can be anyone of MySQL, PostgreSQL and SQLite&#8221;. Oddly, their home page says &#8220;minimal documentation will be made available to users of CK-ERP&#8221; and their <a href="http://ck-erp.net/xoops/htdocs/modules/content/index.php?id=7">roadmap</a> is old.</p>
<h2><a href="https://www.ohloh.net/p/5061">Blue ERP</a></h2>
<p>PHP. &#8220;Blue ERP is an open source, web based ERP application. Its goal is to provide a flexible and user friendly interface that can work out of the box and be modified to suit specific needs easily.</p>
<p>The main goals of the projects are:* provide a feature full ERP application<br />
* be open in licence and in spirit &#8211; in blue ERP everything is open, especially the development<br />
* be user friendly by providing adequate documentation and assistance to users to encourage widespread adoption&#8221;</p>
<h2><a href="https://www.ohloh.net/p/5613">OTRS::ITSM</a></h2>
<p>After all the PHP systems, it&#8217;s nice to find one implemented in Perl! Though the description suggests it&#8217;s geared towards the needs of an IT Service organization.</p>
<p>&#8220;ITIL compliant Open Source IT Service Management Solution (ITSM). Requires the OTRS (Open Ticket Request System) framework.</p>
<p>Besides all OTRS features, new ones include Incident, Problem and Configuration Management, integrated Configuration Management Data Base; process spanning Communication management: within the IT Service organization, towards Customers/Users/Management and Suppliers/Providers; powerfull statistical features for (Trend-)Analysis, key figured Reporting, ITSM-Planning/-Controlling; flexible configuration, customizing and expandability regarding your individual requirements.&#8221;</p>
<hr />
<p>[That's quite enough "CRM" systems! Ed.]</p>
<br />Posted in software Tagged: crm, open source, perl, php <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/timbunce.wordpress.com/286/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/timbunce.wordpress.com/286/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/timbunce.wordpress.com/286/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/timbunce.wordpress.com/286/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/timbunce.wordpress.com/286/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/timbunce.wordpress.com/286/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/timbunce.wordpress.com/286/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/timbunce.wordpress.com/286/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/timbunce.wordpress.com/286/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/timbunce.wordpress.com/286/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.timbunce.org&blog=2562816&post=286&subd=timbunce&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://blog.timbunce.org/2009/07/06/customer-relationship-management-crm-systems-in-perl/feed/</wfw:commentRss>
		<slash:comments>21</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1cf82705f5ab43c73273ab5d690866b3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">TimBunce</media:title>
		</media:content>
	</item>
		<item>
		<title>Comparative Language Job Trend Graphs</title>
		<link>http://blog.timbunce.org/2008/02/12/comparative-language-job-trend-graphs/</link>
		<comments>http://blog.timbunce.org/2008/02/12/comparative-language-job-trend-graphs/#comments</comments>
		<pubDate>Tue, 12 Feb 2008 00:46:12 +0000</pubDate>
		<dc:creator>TimBunce</dc:creator>
				<category><![CDATA[software]]></category>
		<category><![CDATA[graphs]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[jobs]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[ruby]]></category>
		<category><![CDATA[trends]]></category>

		<guid isPermaLink="false">http://timbunce.wordpress.com/?p=15</guid>
		<description><![CDATA[I researched these comparative job trend graphs for my Keynote at the 2007 London Perl Workshop, and then added a few more for this blog post. The graphs are from indeed.com, a job data aggregator and search engine. They&#8217;re all live, so every time you visit this page they&#8217;ll be updated with the current trend [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.timbunce.org&blog=2562816&post=15&subd=timbunce&ref=&feed=1" />]]></description>
			<content:encoded><![CDATA[<p>I researched these comparative job trend graphs for my Keynote at the 2007 London Perl Workshop, and then added a few more for this blog post.</p>
<p>The graphs are from <a href="http://indeed.com">indeed.com</a>, a job data aggregator and search engine. They&#8217;re all <i>live</i>, so every time you visit this page they&#8217;ll be updated with the current trend data (though it seems the underlying data isn&#8217;t updated often). My notes between the graphs relate to how they looked when I wrote this post in February 2008 (and the graphs were all Feb 2005 thru Dec 2008).</p>
<p>First up, all jobs that even <span class="Apple-style-span" style="font-style:italic;">mention</span> perl, python or ruby anywhere in the description:<img src="http://www.indeed.com/trendgraph/jobgraph.png?q=%22perl%22%2C%22python%22%2C+%22ruby%22" height="300" width="540" /></p>
<p>The most amazing thing to me about this graph is that it indicates that 1% of <span class="Apple-style-span" style="font-style:italic;">all</span> jobs mention perl. Wow.</p>
<p>(Perhaps the profile of the jobs indeed.com is a little skewed towards technical jobs. If it is then I&#8217;m assuming it&#8217;s equally skewed for each of the programming languages. <b>Note</b>: An addendum below shows that ruby is getting ~17% boost through false positive matches from other jobs, like Ruby Tuesday restaurants. That applies to the graphs here that don&#8217;t qualify the search with an extra term like &#8216;software engineer&#8217;.)</p>
<p>Here&#8217;s a slightly more focussed version that compares languages mentioned in jobs for &#8220;software engineer&#8221; or &#8220;software developer&#8221; roles:</p>
<p><img src="http://www.indeed.com/trendgraph/jobgraph.png?q=perl+%27software+engineer%27%2C+python+%27software+engineer%27%2C+ruby+%27software+engineer%27%2C+perl+%27software+developer%27%2C+python+%27software+developer%27%2C+ruby+%27software+developer%27" alt="'software engineer' and 'software developer' roles mentioning perl or python or ruby" height="300" width="540" /></p>
<p>A similar pattern. The narrowing of the gap between Perl and the others languages looks like good evidence of Perl&#8217;s broad appeal as a general purpose tool beyond the pure &#8220;software engineering/development&#8221; roles.</p>
<p>I wanted to focus on jobs where developing software using a particular language was the <i>principle focus</i> of the job. So then I looked for &#8220;<i>foo</i> developer&#8221; jobs:</p>
<p><span class="Apple-style-span" style="font-family:Times;line-height:normal;"></span></p>
<p>
<div></div>
</p>
<p><img src="http://www.indeed.com/trendgraph/jobgraph.png?q=%22perl+developer%22%2C%22python+developer%22%2C+%22ruby+developer%22" alt="perl developer vs python developer vs ruby developer" height="300" width="540" /></p>
<p>That increases the gap between Perl and the others. Perhaps a reflection of Perl&#8217;s maturity &#8211; that it&#8217;s more entrenched so more likely to be used in the name of the role.</p>
<p>But do people use &#8220;foo <i>developer</i>&#8221; or &#8220;foo <i>programmer</i>&#8221; for job titles? Let&#8217;s take a look:</p>
<p><img src="http://www.indeed.com/trendgraph/jobgraph.png?q=%22python+developer%22%2C%22python+programmer%22%2C%22perl+developer%22%2C%22perl+programmer%22%2C+%22ruby+developer%22%2C%22ruby+programmer%22" height="300" width="540" /></p>
<p>So &#8220;foo <i>developer</i>&#8221; is the most popular, but &#8220;foo <i>programmer</i>&#8221; is still significant, especially for Perl. (It&#8217;s a pity there&#8217;s no easy way to combine the pairs of trend lines. That would raise Perl even further.)</p>
<p>To keep us dynamic language folk in our place, it&#8217;s worth comparing the trends above with those of more static languages:</p>
<p><img src="http://www.indeed.com/trendgraph/jobgraph.png?q=%22perl+developer%22%2C%22python+developer%22%2C+%22ruby+developer%22%2C+%22cobol+developer%22%2C+%22c+developer%22%2C+%22c%23+developer%22%2C+%22c%2B%2B+developer%22" alt="same as above but with C, c# and c++" height="300" width="540" /></p>
<p>C++ and C# dwarf the dynamic languages. C and cobol are still alive and well, just.</p>
<p>Then,  to give the C++ and C# folk some perspective, let&#8217;s add Java to the mix:</p>
<p><img src="http://www.indeed.com/trendgraph/jobgraph.png?q=%22perl+developer%22%2C%22python+developer%22%2C+%22ruby+developer%22%2C+%22java+developer%22%2C+%22c+developer%22%2C+%22c%23+developer%22%2C+%22c%2B%2B+developer%22" alt="same as above but with java" height="300" width="540" /></p>
<p>C++ and C# may dwarf the dynamic languages, but even they are dwarfed by Java.</p>
<p>Let&#8217;s take a slight detour now to look at web related work. (It&#8217;s a detour because this post isn&#8217;t about web related work, it&#8217;s about  the jobs market for the three main general purpose dynamic languages. People doing web work can tend to assume that everything is about web work.)</p>
<p>We&#8217;ll start by adding in two more specialist languages, PHP and JavaScript:</p>
<p><img src="http://www.indeed.com/trendgraph/jobgraph.png?q=%22perl+developer%22%2C%22python+developer%22%2C+%22ruby+developer%22%2C+%22javascript+developer%22%2C+%22php+developer%22" alt="php and javascript developer" height="300" width="540" /></p>
<p>I&#8217;m not surprised by the growth of PHP, though I&#8217;m sad that so many people are being introduced to &#8216;programming&#8217; through it. I&#8217;m  more surprised by the lack of height and growth in JavaScript. I presume that&#8217;s because it&#8217;s still rare for someone to be primarily a &#8220;JavaScript developer&#8221;. (That&#8217;ll change.) Let&#8217;s check that:</p>
<p><img src="http://www.indeed.com/trendgraph/jobgraph.png?q=perl%2C+python%2C+ruby%2C+php%2C+javascript%2C+%22web+developer%22" alt="perl, python, ruby, php, javascript, web-developer" height="300" width="540" /></p>
<p>That&#8217;s much closer to what I&#8217;d expected.  PHP is a popular skill, but is mentioned in less than half the jobs than Perl is. JavaScript, on the other hand, is in great and growing demand.</p>
<p>Let&#8217;s look at the &#8220;web developer&#8221; role specifically and see which of the languages we&#8217;re interested in are mentioned most frequently:</p>
<p><img src="http://www.indeed.com/trendgraph/jobgraph.png?q=perl+%22web+developer%22%2C+python+%22web+developer%22%2C+ruby+%22web+developer%22%2C+php+%22web+developer%22" height="300" width="540" /></p>
<p>I think this graph  captures the essence of why people think Perl is stagnant. It&#8217;s because Perl hasn&#8217;t been growing much in the &#8216;web developer&#8217; world. People in that world are the ones most likely to be blogging about it and, I&#8217;ve noticed, tend to generalize their perceptions.</p>
<p>(If you&#8217;re interested in PHP, Java, ASP and JavaScript and look <a href="http://www.indeed.com/jobtrends?q=perl+%22web+developer%22%2C+python+%22web+developer%22%2C+ruby+%22web+developer%22%2C+php+%22web+developer%22%2C+java+%22web+developer%22%2C+asp+%22web+developer%22%2C+javascript+%22web+developer%22&amp;l=">here</a> you&#8217;ll see that they all roughly follow the PHP line at about twice the height. JavaScript is at the top with accelerating growth.)</p>
<p>Finally, just to show I&#8217;m not completely biased about Perl, here are the relative trends:<img src="http://www.indeed.com/trendgraph/jobgraph.png?q=perl%2C+python%2C+ruby%2C+php%2C+javascript&amp;relative=1" alt="relative trends" height="300" width="540" /></p>
<p>This kind of graph reminds me of small companies that grow by a small absolute amount, say two employees growing to four, and then put out a press release saying they&#8217;re the &#8220;fastest growing company&#8221; in the area, or whatever. Dilbert <a href="http://dilbert.com/strips/comic/2008-04-19/">recognises the issue</a>. The graph looks striking now (Q1 2008)&nbsp;but means little. If it looks much like that in  two years time, then it&#8217;ll be more impressive.</p>
<p>Similarly, the fact that Perl is still growing its massive installed base over this period <i>is</i> impressive. (Seen most clearly by the second graph.) Perl 5 has been around for 14 years, and Perl itself for 21.</p>
<p>The Perl community hasn&#8217;t been great at generating &#8220;Buzz&#8221; that&#8217;s visible outside the community. It&#8217;s just quietly getting on with the job. Lots of jobs. That lack of buzz helps create the impression that the Perl community lacks vitality relative to other similar languages. Hopefully this post, and <a href="http://blog.timbunce.org/2008/01/30/perl-and-parrot-baseless-myths-and-startling-realities/">others</a>, go some small way towards correcting that.</p>
<p>p.s. For an alternative, more geographic view, take a look at the <a href="http://www.presicient.com/langjobs/usajobs.html">Dynamic Language Jobs Map</a> (<a href="http://use.perl.org/~renodino/journal/35632">about</a>).</p>
<p><b>Addendum</b>:</p>
<p>It turns out that approximately 14% of &#8220;ruby&#8221; jobs relate to restaurants &#8211; mostly the Ruby Tuesday chain. So I investigated how false positives affected the single-keyword searches I&#8217;ve used in some of the graphs. (I&#8217;m going to assume that &#8220;foo developer&#8221; is sufficiently immune from false positives.)</p>
<p>I searched for Perl and then added negative keywords (-foo -bar &#8230;) until I&#8217;d removed almost all of the likely software related jobs. I ended up with this list (which shows that indeed.com don&#8217;t use <a href="http://en.wikipedia.org/wiki/Stemming">stemming</a>, which is sad and dumb of them):</p>
<p>
<blockquote>perl -developer -developers -engineer -software -programmer -programmers -programming -development -java -database -sql -oracle -sybase -scripting -scripter -coder -linux -unix -protocol -C -C++ -javascript -computing</p></blockquote>
<p>Then I did the same search but with python or ruby instead of perl. Here are the results:</p>
<table width="227">
<tr>
<td align="right"><b>language</b><br />&nbsp;</td>
<td align="right"><b>all<br />
matches</b></td>
<td align="right"><b>filtered<br />
matches</b></td>
<td align="right"><b>inappropriate<br />
matches</b></td>
</tr>
<tr>
<td align="right">perl</td>
<td align="right">29987</td>
<td align="right">6</td>
<td align="right">0.02% false</td>
</tr>
<tr>
<td align="right">python</td>
<td align="right">7794</td>
<td align="right">20</td>
<td align="right">0.2% false</td>
</tr>
<tr>
<td align="right">ruby</td>
<td align="right">4624</td>
<td align="right">794</td>
<td align="right">17% false</td>
</tr>
</table>
<p>Ruby is well below python (and far below perl) in the first graph, yet that includes this 17% boost from inappropriate matches. You have to marvel at Ruby&#8217;s ability to gain mind-share, if not market-share.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/timbunce.wordpress.com/15/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/timbunce.wordpress.com/15/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/timbunce.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/timbunce.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/timbunce.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/timbunce.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/timbunce.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/timbunce.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/timbunce.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/timbunce.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/timbunce.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/timbunce.wordpress.com/15/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=blog.timbunce.org&blog=2562816&post=15&subd=timbunce&ref=&feed=1" />]]></content:encoded>
			<wfw:commentRss>http://blog.timbunce.org/2008/02/12/comparative-language-job-trend-graphs/feed/</wfw:commentRss>
		<slash:comments>32</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/1cf82705f5ab43c73273ab5d690866b3?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">TimBunce</media:title>
		</media:content>

		<media:content url="http://www.indeed.com/trendgraph/jobgraph.png?q=%22perl%22%2C%22python%22%2C+%22ruby%22" medium="image" />

		<media:content url="http://www.indeed.com/trendgraph/jobgraph.png?q=perl+%27software+engineer%27%2C+python+%27software+engineer%27%2C+ruby+%27software+engineer%27%2C+perl+%27software+developer%27%2C+python+%27software+developer%27%2C+ruby+%27software+developer%27" medium="image">
			<media:title type="html">'software engineer' and 'software developer' roles mentioning perl or python or ruby</media:title>
		</media:content>

		<media:content url="http://www.indeed.com/trendgraph/jobgraph.png?q=%22perl+developer%22%2C%22python+developer%22%2C+%22ruby+developer%22" medium="image">
			<media:title type="html">perl developer vs python developer vs ruby developer</media:title>
		</media:content>

		<media:content url="http://www.indeed.com/trendgraph/jobgraph.png?q=%22python+developer%22%2C%22python+programmer%22%2C%22perl+developer%22%2C%22perl+programmer%22%2C+%22ruby+developer%22%2C%22ruby+programmer%22" medium="image" />

		<media:content url="http://www.indeed.com/trendgraph/jobgraph.png?q=%22perl+developer%22%2C%22python+developer%22%2C+%22ruby+developer%22%2C+%22cobol+developer%22%2C+%22c+developer%22%2C+%22c%23+developer%22%2C+%22c%2B%2B+developer%22" medium="image">
			<media:title type="html">same as above but with C, c# and c++</media:title>
		</media:content>

		<media:content url="http://www.indeed.com/trendgraph/jobgraph.png?q=%22perl+developer%22%2C%22python+developer%22%2C+%22ruby+developer%22%2C+%22java+developer%22%2C+%22c+developer%22%2C+%22c%23+developer%22%2C+%22c%2B%2B+developer%22" medium="image">
			<media:title type="html">same as above but with java</media:title>
		</media:content>

		<media:content url="http://www.indeed.com/trendgraph/jobgraph.png?q=%22perl+developer%22%2C%22python+developer%22%2C+%22ruby+developer%22%2C+%22javascript+developer%22%2C+%22php+developer%22" medium="image">
			<media:title type="html">php and javascript developer</media:title>
		</media:content>

		<media:content url="http://www.indeed.com/trendgraph/jobgraph.png?q=perl%2C+python%2C+ruby%2C+php%2C+javascript%2C+%22web+developer%22" medium="image">
			<media:title type="html">perl, python, ruby, php, javascript, web-developer</media:title>
		</media:content>

		<media:content url="http://www.indeed.com/trendgraph/jobgraph.png?q=perl+%22web+developer%22%2C+python+%22web+developer%22%2C+ruby+%22web+developer%22%2C+php+%22web+developer%22" medium="image" />

		<media:content url="http://www.indeed.com/trendgraph/jobgraph.png?q=perl%2C+python%2C+ruby%2C+php%2C+javascript&#38;relative=1" medium="image">
			<media:title type="html">relative trends</media:title>
		</media:content>
	</item>
	</channel>
</rss>