When I first saw Google Plus circles, I thought this was a great idea. On Facebook, I have a bunch of “friends”, most of whom are people I talk to only rarely, some of whom I haven’t spoken to in years.

With Google Plus, I can categorize these “friends” into different circles. How awesome is that? Most of the people I’ve had contact with on Plus are people I know through programming, so I made a “Geeks” circle and started filling it in. Right now that circle has 113 members, compared to 8 in friends.

This really appeals to the uptight organized engineer in me, but then I realized that this doesn’t solve any real problem.

I’ve never liked Facebook, and circles don’t make me like Plus any more. My problem with Facebook isn’t that I need to categorize the incoming stream of info based on my relationship with people. The problem is that the incoming stream of info is almost entirely uninteresting!

With circles, I now have multiple streams of totally uninteresting info. Here’s a sampling of what I see in my Geeks stream this morning:

  • Robert Rothenberg says that it’s raining.
  • Robert Rothenberg asks “Have you looked at the source code of a G+ page? It’s all JavaScipt, and dynamically creates the page from a data structure. Interesting….”
  • Piers Cawley still has to write some slides for OSCON.
  • Curtis Poe posted a video of his daughter.
  • Kang-min Liu (aka Gugod) posted something in Chinese.
  • Karen Pauley made some chili con carne.

I’ve categorized people based on my relationship to them, but what I really want is to categorize the things they write. Of the items above, only two of them are geek-related, and only one of them is really interesting to me as technical information.

So what did doing the work of putting people into these circles gain me? Absolutely nothing. I’m still left wading through a torrent of stuff to fish out the few interesting bits.

This is exactly the same problem I’ve always had with Facebook.

Of course, this problem is already solved. The solution is called “tags” or “categories”. I care more about the topic than the writer, though both are important. Just knowing who wrote something isn’t very helpful.

And yes, I know that circles do solve a real problem for some people. If I posted a lot of personal stuff on Facebook then circles might actually be useful for me.

Disclaimer: When I say that your content is “totally uninteresting”, I mean to it’s not what I am interested in. I’m sure Curtis’s daughter is totally adorable.

I’d like to offer my Intro to Moose class at the Pittsburgh Perl Workshop this coming October, but we’re not sure if there’s enough interest to justify it. If you think you’d like to take the class, please put your name on the Moose Class wiki page for PPW. This isn’t a binding commitment, but don’t sign up just cause you’re vaguely considering it. Some recent feedback about the class …

I thought Dave’s class was outstanding. Well prepared and highly valuable content. – Chris Fedde

It damn sure was a good use! It would’ve been a huge mistake not taking your class; Moose is a magnificent beast and I couldn’t have picked a better primer. – Brian Fraser

The class was great. There was a nice balance of material presented to hands-on experimentation, and alternating between lecture and exercises helped nail down concepts. – Philip Monsen

If I can get a minimum of 6 people signed up for $150 each I can justify doing this.

Way back when, the Perl (1, 2, 3, 4, 5) core was defined as “whatever Larry Wall says it is”. Since the advent of the Perl 6 project, Larry has spent less and less time on Perl 5, and he hasn’t been an active participant on the perl5-porters list for years. Absent Larry, I think the Perl 5 core would benefit from an explicit set of principles.

I don’t get to decide what those principles are, but I have some suggestions.


There is more than one way do it but sometimes consistency is not a bad thing either.

For a long time, TIMTOWTDI was the Perl motto. In the past few years, we’ve seen the community move towards agreeing on community standards. This agreement is by no means universal, but it’s better than nothing.

This principle says that you can’t argue against an addition to the core because it favors one way of doing things over another. That’s no longer a valid argument in Perl land. You can, of course, argue that the way being favored is not the best way.

Perl 5 DWIM, But Only When There’s Broad Agreement on WIM

(DWIM == Does What I Mean)

The smartmatch operator provides a perfect negative example. Its behavior in 5.12 and 5.14 is insanely complex (try reading the docs in perlsyn). There’s no way to achieve agreement on something this complicated. Ricardo Signes has proposed a simple alternative. It only has five cases. It’s not as smart, but that’s good!

Another way to phrase this might be that “Perl 5 is clever, but not too damn clever.”

Features Are Extensions

All new features should be written as extensions. In other words, new features should live in modules (though those modules may be XS). There’s been a lot of work by Zefram (and others?) to make it possible to extend Perl using Perl. That should become the standard mechanism for adding new features.

OO is Here, Deal With It

The Perl 5 core should embrace object-oriented programming. The more that object-orientation takes over the core, the better. Wouldn’t it be nice if things like stat(), open(), and $0 all returned/used objects?

Just Cause OO is Here Doesn’t Mean Functional and Imperative Aren’t

Perl 5 is a multi-paradigm language, and that’s great. We never want to change that. You should be able to write functional, imperative, and OO Perl, switching between the paradigms as appropriate.

Your Principle Here

These are my suggestions. What are yours? I think it would be fantastic if the community could agree on a few key principles. In my ideal world, discussions about changes to the core would always refer back to these principles, in the same way that we used to refer back to Larry.