<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <title>Philip Durbin</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/philip_durbin/" />
    <link rel="self" type="application/atom+xml" href="http://blogs.perl.org/users/philip_durbin/atom.xml" />
    <id>tag:blogs.perl.org,2009-11-03:/users/philip_durbin//831</id>
    <updated>2013-05-12T22:04:47Z</updated>
    
    <generator uri="http://www.sixapart.com/movabletype/">Movable Type Pro 4.38</generator>

<entry>
    <title> Perl actually doesn&apos;t suck</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/philip_durbin/2013/05/perl-actually-doesnt-suck.html" />
    <id>tag:blogs.perl.org,2013:/users/philip_durbin//831.4670</id>

    <published>2013-05-12T21:59:23Z</published>
    <updated>2013-05-12T22:04:47Z</updated>

    <summary>I listened to http://devhell.info/post/2013-04-24/feline-tooth-extraction/ today and enjoyed hearing Chris Hartjes describe his recent experience with Perl. Quotes include: &quot;Perl actually doesn&apos;t suck&quot; &quot;all of our services at work because we&apos;re moving to Service Oriented Architecture are either being done in...</summary>
    <author>
        <name>Philip Durbin</name>
        <uri>http://greptilian.com</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/philip_durbin/">
        <![CDATA[<p>I listened to <a href="http://devhell.info/post/2013-04-24/feline-tooth-extraction/">http://devhell.info/post/2013-04-24/feline-tooth-extraction/</a> today and enjoyed hearing Chris Hartjes describe his recent experience with Perl. Quotes include:</p>

<p>"Perl actually doesn't suck"</p>

<p>"all of our services at work because we're moving to Service Oriented Architecture are either being done in Java or Perl"</p>

<p>"productive in Perl with a very short ramp up time"</p>

<p>For just the 5 minute clip: <a href="https://soundcloud.com/philipdurbin/perl-actually-doesnt-suck">https://soundcloud.com/philipdurbin/perl-actually-doesnt-suck</a></p>
]]>
        

    </content>
</entry>

<entry>
    <title>Andy Lester, brian d foy, Gisle Aas, and Adrian Howard featured in RSA Animate video - The Power of Networks</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/philip_durbin/2012/05/andy-lester-brian-d-foy-gisle-aas-and-adrian-howard-featured-in-rsa-animate-video---the-power-of-net.html" />
    <id>tag:blogs.perl.org,2012:/users/philip_durbin//831.3301</id>

    <published>2012-05-27T03:24:09Z</published>
    <updated>2012-05-27T14:24:48Z</updated>

    <summary>This image is from http://www.thersa.org/events/video/animate/rsa-animate-the-power-of-networks See also my tweet and Google+ post about this video. Update for Sun May 27 10am-ish EDT. . . Whoops, I should have included Stevan Little in the title of this post: He&apos;s unnamed Perl...</summary>
    <author>
        <name>Philip Durbin</name>
        <uri>http://greptilian.com</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/philip_durbin/">
        <![CDATA[<p>This image is from <a href="http://www.thersa.org/events/video/animate/rsa-animate-the-power-of-networks">http://www.thersa.org/events/video/animate/rsa-animate-the-power-of-networks</a></p>

<p><img alt="perl-mslima.jpg" src="http://blogs.perl.org/users/philip_durbin/images/perl-mslima.jpg" width="1024" height="677" class="mt-image-none" style="" /></p>

<p>See also my <a href="https://twitter.com/philipdurbin/status/206558731369058306">tweet</a> and <a href="https://plus.google.com/107770072576338242009/posts/CSHWJHRgoFb">Google+ post</a> about this video.</p>

<hr />

<p>Update for Sun May 27 10am-ish EDT. . . Whoops, I should have included Stevan Little in the title of this post:</p>

<p><img alt="cpan-explorer-authors.png" src="http://blogs.perl.org/users/philip_durbin/images/cpan-explorer-authors.png" width="800" height="600" class="mt-image-none" style="" /></p>

<p>He's unnamed Perl contributor in the first image I posted.  I'm listening to the <a href="http://www.thersa.org/events/audio-and-past-events/2011/the-power-of-networks-knowledge-in-an-age-of-infinite-interconnectedness">original audio of the lecture</a> from which the <a href="http://www.thersa.org/events/video/animate/rsa-animate-the-power-of-networks">RSA Animate video</a> is based and was able to find <a href="http://www.visualcomplexity.com/vc/project.cfm?id=685">http://www.visualcomplexity.com/vc/project.cfm?id=685</a> which links to <a href="http://cpan-explorer.org/category/authors/">http://cpan-explorer.org/category/authors/</a> which is where I found this second image.  See also slide 29 from the <a href="http://www.slideshare.net/manulima/the-power-of-networks-mapping-an-increasingly-complex-world">slides of the talk</a>.  The first image is obviously an illustration of the second image.  Very cool.  I love this stuff.  And I had never heard about <a href="http://cpan-explorer.org">http://cpan-explorer.org</a> which is just fabulous.</p>

<p>Also a made a <a href="https://plus.google.com/107770072576338242009/posts/T5vPBoG1K6a">second Google+ post</a> that links back to this one.</p>
]]>
        

    </content>
</entry>

<entry>
    <title>Ward Cunningham on Perl: fast to develop, fast to run, insightful</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/philip_durbin/2012/05/ward-cunningham-on-perl-fast-to-develop-fast-to-run-insightful.html" />
    <id>tag:blogs.perl.org,2012:/users/philip_durbin//831.3251</id>

    <published>2012-05-16T12:00:48Z</published>
    <updated>2012-05-16T12:01:13Z</updated>

    <summary>From an Interview With Ward Cunningham in Dr Dobb&apos;s Journal published May 15, 2012: That&apos;s when I picked up Perl. And it shocked me, just how well it worked for finding and plundering files because it had those reg exes...</summary>
    <author>
        <name>Philip Durbin</name>
        <uri>http://greptilian.com</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/philip_durbin/">
        <![CDATA[<p>From an <a href="http://www.drdobbs.com/architecture-and-design/240000393">Interview With Ward Cunningham</a> in Dr Dobb's Journal published May 15, 2012:</p>

<blockquote>
  <p>That's when I picked up Perl. And it shocked me, just how well it worked for finding and plundering files because it had those reg exes built in and stuff like that. And it was so fast. It was fast to compile, it was fast to develop, it was fast to run. I could not believe it was so fast. And I know people like to complain about it, but I also thought it showed a tremendous amount of insight. It was insight, and I looked at it and I said, "Who would have thought of making a language like that?" That's when I realized that open source was here to stay. There is no commercial endeavor that ever would have invented Perl.</p>

<p>But Perl was my escape from object-oriented programming, and I still use it today. Probably a day doesn't go by that I don't just pick up Perl right at the command line just because idiomatically I can write commands. I know there's a command in UNIX but rather than go the command page and try to remember the options, I just write it from scratch in Perl. You know, I go on and finish the line. I know Perl well enough that I can do that. I think if you write big programs you know stuff that I never bothered to learn about Perl. </p>
</blockquote>
]]>
        

    </content>
</entry>

<entry>
    <title>rjbs advises to avoid given/when</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/philip_durbin/2012/03/rjbs-advises-to-avoid-givenwhen.html" />
    <id>tag:blogs.perl.org,2012:/users/philip_durbin//831.2946</id>

    <published>2012-03-16T19:58:07Z</published>
    <updated>2012-03-16T22:38:25Z</updated>

    <summary>Having been liberated from Perl 5.8.8 only recently (and not completely, really), I&apos;ve never used given/when. rjbs explains some gotchas. From http://irclog.perlgeek.de/crimsonfu/2012-03-16#i_5305433 18:26 ironcamel so you are at least using the perl 5.10 syntax candy? 18:26 pdurbin maybe. i don&apos;t...</summary>
    <author>
        <name>Philip Durbin</name>
        <uri>http://greptilian.com</uri>
    </author>
    
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/philip_durbin/">
        <![CDATA[<p>Having been liberated from Perl 5.8.8 only recently (and not completely, really), I've never used <code>given/when</code>.  rjbs explains some gotchas.</p>

<p>From <a href="http://irclog.perlgeek.de/crimsonfu/2012-03-16#i_5305433">http://irclog.perlgeek.de/crimsonfu/2012-03-16#i_5305433</a></p>

<pre><code>18:26 ironcamel   so you are at least using the perl 5.10 syntax candy?
18:26 pdurbin     maybe. i don't know :)
18:26 ironcamel   given/when, say, state, and //
18:26 pdurbin     nope
18:27 pdurbin     too fancy for me
18:27 * ironcamel bonks pdurbin on the head
18:27 ironcamel   you should at least look into given/when, it is amazing
18:27 ironcamel   it has "pattern matching"
18:28 ironcamel   only other language i know that has that is scala
18:28 ironcamel   it has nothing to do with regex patterns
18:28 ironcamel   and say "foo" is same thing as print "foo\n"
18:28 pdurbin     "You know, I actually advise people to avoid given/when" --rjbs 2011-04-28
18:28 ironcamel   don't listen to him
18:29 ironcamel   listen to everything else he says, just ignore that bit
18:29 pdurbin     heh
18:29 pdurbin     i should ask him if i can publish this email
18:30 pdurbin     or has he written about it extensively already?
18:30 ironcamel   he wrote you that in an email?
18:30 pdurbin     yeah
18:31 ironcamel   what were you emailing him about?
18:31 pdurbin     plus a long explanation i don't understand
18:32 pdurbin     something for shuff: Bug #64302 for Dist-Zilla: Requiring EU:MM 6.31 excludes RHEL5 - https://rt.cpan.org/Public/Bug/Display.html?id=64302
18:32 ironcamel   i wonder if he wrote that before 5.10.1 was released
18:32 ironcamel   because 5.10.0 had some issues with given/when that were fixed
18:32 pdurbin     he wrote it 2011-04-28

-------- Original Message --------
Subject: Re: Bug #64302 for Dist-Zilla: Requiring EU:MM 6.31 excludes RHEL5
Date: Fri, 16 Mar 2012 15:16:30 -0400
From: Ricardo Signes &lt;rjbs@cpan.org&gt;
To: Philip Durbin &lt;philipdurbin@gmail.com&gt;

* Philip Durbin &lt;philipdurbin@gmail.com&gt; [2012-03-16T15:11:54]
&gt; i brought up your point about given/when today:
&gt; http://irclog.perlgeek.de/crimsonfu/2012-03-16#i_5305433
&gt;
&gt; do you mind if I publish these emails on my perl blog?
Not at all, go ahead.  Thanks for asking first.

-- rjbs 

-------- Original Message --------
Subject: Re: Bug #64302 for Dist-Zilla: Requiring EU:MM 6.31 excludes RHEL5
Date: Thu, 28 Apr 2011 17:06:41 -0400
From: Ricardo Signes &lt;rjbs@cpan.org&gt;
To: Philip Durbin &lt;philipdurbin@gmail.com&gt;

* Philip Durbin &lt;philipdurbin@gmail.com&gt; [2011-04-28T17:02:00]
&gt;&gt; You know, I actually advise people to avoid given/when... but that's a
&gt;&gt; different kettle of fish.
&gt; Hmm, no need to write up anything on my account, but if you're
&gt; already blogged about it, please share a link.
There are two problems.  One is that when() topicalizes $_, like for, but it
topicalizes the *lexical* $_ rather than the *dynamic* $_ like for does.

So:

  my $x = 'foo';

  given ($x) {
    when (/f/) {
      try   { die 'bar' }
      catch { warn "exception: $_" }
    }
  }

This will warn "exception: bar" because the closure passed to catch has closed
over lexical $_ instead of using the global.  You could write $::_, but who
remembers this sort of detail?  It's come up a few times as a bug report to
Try::Tiny.  Of course, there are other ways around the bug as presented above,
but you can imagine how it will manifest as a category of bugs.

The other is that ~~, the smart match used to test the given against when
cases, is ridiculously complex.  It has something like 27 possible behaviors,
several of which can recurse to re-dispatch to the 27-way choice again.

I don't think Perl needed ~~.  It needed an "in" operator.  A "switch"
statement might have been nice, but the one we got is too complex.

-- rjbs
</code></pre>

<p>Update: I'm sorry for the <a href="http://irclog.perlgeek.de/crimsonfu/2012-03-16#i_5306085">formatting</a> of this post. I'm not sure where to edit the css.  For now there's a more readable version at <a href="http://paste.perldancer.org/1uYeL1Fi6M5sL">http://paste.perldancer.org/1uYeL1Fi6M5sL</a></p>

<p>Also, there is more discussion here: <a href="http://irclog.perlgeek.de/crimsonfu/2012-03-16#i_5306245">http://irclog.perlgeek.de/crimsonfu/2012-03-16#i_5306245</a></p>
]]>
        

    </content>
</entry>

<entry>
    <title>Perl dropped and Go adopted due to concurrency issues in baconbird</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/philip_durbin/2011/10/perl-dropped-and-go-adopted-due-to-concurrency-issues-in-baconbird.html" />
    <id>tag:blogs.perl.org,2011:/users/philip_durbin//831.2310</id>

    <published>2011-10-19T03:44:30Z</published>
    <updated>2011-10-19T10:23:00Z</updated>

    <summary>A little part of my Perl soul died the other day when I read a tweet by Mark Jason Dominus: Perl didn&apos;t work for this guy, here&apos;s why. It was a really good article, should be required reading for #perl...</summary>
    <author>
        <name>Philip Durbin</name>
        <uri>http://greptilian.com</uri>
    </author>
    
    <category term="concurrency" label="concurrency" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/philip_durbin/">
        <![CDATA[<p>A little part of my Perl soul died the other day when I read a <a href="http://twitter.com/mjdominus/status/123841534599757824">tweet</a> by Mark Jason Dominus:</p>

<blockquote>
  <p>Perl didn't work for this guy, here's why. It was a really good article, should be required reading for #perl folks: <a href="http://synflood.at/blog/index.php?/archives/791-Rebooting-the-baconbird-project.html">synflood.at/blog/index.php...</a></p>
</blockquote>

<p>When <a href="http://synflood.at/">Andreas Krennmair</a> <a href="http://synflood.at/blog/index.php?/archives/786-Baconbird-0.1-released.html">announced</a> a new Twitter client called <a href="http://synflood.at/baconbird.html">baconbird</a> in late 2010 he sounded very enthusiastic about Perl, saying</p>

<blockquote>
  <p>The code itself is about 850 SLOCs of Perl code, the user interface is based on STFL, the Twitter backend uses Net::Twitter, and all the OO glue code in between uses the Moose object system. All in all it took me less than 2 weeks of my free time to develop the first version of it.</p>
</blockquote>

<p>I was excited to read this post because I really like his <a href="http://www.newsbeuter.org/">newsbeuter</a> feed reader (I've chatted once or twice with Andreas over IRC about it and helped <a href="https://github.com/repoforge/rpms/blob/master/specs/newsbeuter/newsbeuter.spec">package</a> it), and it was interesting to see him choose Perl over C++ for this new project.  I pulled in the baconbird dependencies and started using it right away.</p>

<p>Some months later Andreas wrote a blog post entitled <a href="http://synflood.at/blog/index.php?/archives/788-I-dont-want-my-programming-languages-to-be-hip.html">"I don't want my programming languages to be hip"</a> in which he praised the Perl community, saying</p>

<blockquote>
  <p>I just want a quiet, hype-free, pragmatic, down-to-earth knowledgable community. . . Exactly the things that I learned to despise about the culture revolving around Ruby and Rails are something that I haven't experienced in the Perl community at all so far. Libraries, framework, documentation and people had more time to mature, probably, while still being down-to-earth. I can expect good documentation, functioning software, friendly people and most importantly accurate words in announcements and discussions.</p>
</blockquote>

<p>Everything seemed peachy.  We had a happy Perl programmer on our hands.</p>

<p>Last week, however, within a year of baconbird's release, Andreas blogged about the <a href="http://synflood.at/blog/index.php?/archives/791-Rebooting-the-baconbird-project.html">problems he has been having with Perl</a>:</p>

<blockquote>
  <p>But first things first: my first poor choice was using Perl. Sure, Perl provided me with all the tools to come to meaningful results really quickly, through the vast amount of ready-to-use modules in the CPAN archive. And that's what's really great about it. What's not so great about Perl are the ideas of concurrency. You basically have to resort to event-based, async-I/O programming, which is not only painful by itself, but also extremely painful to integrate with my widget set of choice, STFL. And threads in Perl... don't do it, that's what everyone says. That meant that I couldn't do any of the Twitter communication asynchronously in the background, but had to do it in my primary thread of execution, essentially make it part of the subsequent calls of the input loop, if I wanted to retain sanity and a certain level of productivity. And that made baconbird really slow to use, and when Twitter's API was offline, baconbird practically hung. That made baconbird just a PITA to use, and I had to change something about it.</p>
</blockquote>

<p>That post is entitled "Rebooting the baconbird project" but his new Twitter client is a complete rewrite and has a new name: <a href="https://github.com/akrennmair/gockel">gockel</a>.  It's written in <a href="http://golang.org">Go</a>, which has a particular focus on concurrency, as I understand it.</p>

<p>So far I've been disappointed by the <a href="http://synflood.at/blog/index.php?/archives/791-Rebooting-the-baconbird-project.html#comments">comments</a> on Andreas's post.  I'm not skilled enough in Perl or concurrency to say anything about how to solve his problems, but maybe someone else will be inspired to <a href="http://synflood.at/blog/index.php?/archives/791-Rebooting-the-baconbird-project.html#comments">post an nice comment</a> with some suggestions.  As I quoted above, he isn't using an event-based model (so I take it <a href="http://search.cpan.org/dist/AnyEvent/">AnyEvent</a> is a non-starter) and he's really into <a href="http://www.clifford.at/stfl/">STFL</a> (newsbeuter uses this well), which seems to complicate matters.  Maybe Go is simply a better tool in his situation.  Maybe <a href="http://openparallel.com/2011/05/11/threading-perl-using-tbb-the-cpan-module-and-white-paper/">threads::tbb</a> could help.  I don't know.</p>
]]>
        

    </content>
</entry>

<entry>
    <title>John Siracusa discusses Perl on Hypercritical</title>
    <link rel="alternate" type="text/html" href="http://blogs.perl.org/users/philip_durbin/2011/05/john-siracusa-discusses-perl-on-hypercritical.html" />
    <id>tag:blogs.perl.org,2011:/users/philip_durbin//831.1726</id>

    <published>2011-05-03T12:43:05Z</published>
    <updated>2011-05-03T12:44:53Z</updated>

    <summary>In episode #15 of Hypercritical, John Siracusa presented Perl in (largely) a very positive light to what I assume is mostly a non-Perl audience. I&apos;m including my notes on the discussion below, but I recommend listening to the podcast yourself...</summary>
    <author>
        <name>Philip Durbin</name>
        <uri>http://greptilian.com</uri>
    </author>
    
    <category term="podcast" label="podcast" scheme="http://www.sixapart.com/ns/types#tag" />
    
    <content type="html" xml:lang="en" xml:base="http://blogs.perl.org/users/philip_durbin/">
        <![CDATA[<p>In <a href="http://5by5.tv/hypercritical/15">episode #15 of Hypercritical</a>, John Siracusa presented Perl in (largely) a very positive light to what I assume is mostly a non-Perl audience.</p>

<p>I'm including my notes on the discussion below, but I recommend listening to the podcast yourself to form your own impression: <a href="http://5by5.tv/hypercritical/15">http://5by5.tv/hypercritical/15</a></p>

<p>I couldn't find a discussion area linked from the episode page, but I noticed someone posted it to Hacker News as "<a href="http://news.ycombinator.com/item?id=2504033">John Siracusa and Dan Benjamin on high-level programming languages [podcast]</a>."</p>

<hr />

<p>Notes on Hypercritical #15</p>

<p>Geeks love a meritocracy, but languages often become popular for reasons other than their technical merit.  Why do languages become popular?  They are the official language of a platform.  They promise the ability to write once, run everywhere.  They enable a new type of application (i.e. CGI).  They allow you to use the hot new thing (Rails).  It's your only choice (JavaScript, Flash).</p>

<p>Most languages stink.</p>

<p>What should a high level language have?</p>
<ol>
<li>Memory management</li>
<li>Native Unicode strings</li>
<li>Native regular expressions</li>
<li>Native object system</li>
<li>Named parameters</li>
<li>Succinct syntax for common operations</li>
<li>Acknowledgement, at least, of concurrency</li>
</ol>

<p>Languages are slow to change, unless controlled by a single vendor (i.e. C#).</p>

<p>In considering the aesthetics of a language, many people find non-word characters ugly (but it depends on which languages you come from).  Sometimes the prettier language (or fighter jet) wins.</p>

<p>The major objection to Perl from non-Perl people is probably that Perl is ugly.  They may not like the dollar signs.  Perl was their first exposure to regular expressions.</p>

<p>John: "What objections do you have to Perl?"</p>

<p>Dan (playing devil's advocate, somewhat): "Legibility.  Where are the frameworks?  Where is the next generational thinking?  What can Perl do besides text parsing?  How is Perl used in the real world?"</p>

<p>People looked a Perl long ago and haven't looked again.  They dismiss it.</p>

<p>What's wrong with Perl?</p>

<ol>
<li>Unexpected default object system (build your own), but this is also a strength</li>
<li>No language specification (only perl can parse Perl)</li>
</ol>

<p>What's good about Perl?</p>

<ol>
<li>Perl has been a breeding ground for object system experimentation</li>
<li>Perl has the largest group of developers doing "advanced stuff" in a semi-popular language</li>
<li>Perl has practically every advanced feature found in other languages</li>
<li>Perl can and does incorporate computer science research, such as the 2002 paper "Traits: Composable Units of Behavior".  This is possible because Perl is a backwater and doesn't have popular API's or platforms tied to it.</li>
</ol>

<p>Other languages should go ahead and steal ideas from Perl, as Perl has from other languages.</p>

<p>Dan: In 2011, the popular apps to build are for the web, mobile, and desktop.  Why should someone learn Perl?</p>

<p>John: Language choice should depend on the task.  Use PHP for its ease of deployment.  Use Ruby if you want Rails (an aside: the main insight from Rails is convention over configuration).</p>

<p>What would you use Perl for these days?. . . [pause]</p>

<ol>
<li>You *could* write web applications in Perl, but it's not recommended.  Use whatever is popular (currently Ruby on Rails, something Python, PHP if necessary) in order to get more support, lots of books, etc.</li>
<li>You could rewrite your slow application in Perl because Perl offers great interfaces to fast C libraries.</li>
</ol>

<p>Reasons you might find yourself writing Perl</p>

<ol>
<li>You and your team already know Perl</li>
<li>You're working on a (perhaps legacy) application that was originally written in Perl and there is no reason to re-write it.</li>
<li>You're looking for experience in a different language and way of thinking.</li>
</ol>

<p>Perl people have a hippie/creative slant to them.  They are artsy/fartsy in a liberal arts sort of way.</p>]]>
        
    </content>
</entry>

</feed>
