The company I work at has posted a new job opening for a senior developer. So if you’ve always wanted to work at a job with me (for some bizarre reason) now’s your chance. Alternatively, consider yourself warned.

Ok, here’s some real info about the position. You’d be a senior developer on a small tech team (me as team lead, two other devs, one sysadmin/dev, one CEO who needs to code less). The company is small, there’s flexibility in working hours, telecommuting is okay, and the pay is good. The code is mostly Perl with a little C and C++.

The downside is we have an cruftastic code base that needs a lot of cleanup. The upside is that we are actually allowed to clean it up! We’re also writing new code that sucks less, with tests, docs, code review, Moose, Web::Machine, Catalyst, and all that good stuff.

In discussions on Hacker News I’ve said several times that I think copyright should be abolished. Some people agree, but I often get a reply asking how I expect programmers, musicians, or authors to make a living in such a world.

Before I address that question, I’ll take a brief digression. While I’m all for abolishing copyright, that doesn’t mean I’m against all property rights. Physical property rights are a good thing. With a physical thing, the number of people who can derive value from it simultaneously is limited. If anyone could take my computer from me at any time, it would be worthless to me. Why pay money for it in the first place if I can’t control how it’s used?

Creative works covered by copyright are (mostly) not physical. I’m talking about things like songs or novels (as opposed to the physical paper book containing that novel). If you create a song and I copy it, you’ve lost nothing. Maybe you haven’t gained, but I certainly haven’t removed your ability to enjoy the song.

Whether or not you support copyright, I hope we can agree that physical things and data are fundamentally different.

Copyright laws were initially established to encourage creative people to create stuff. The thought was that protection from unauthorized copying would allow these creators to actually make a living creating things. Presumably, this leads to a better society, with more and better art, music, software, travel books, etc.

This made (some) sense when these laws were created, but modern technology has made such laws obsolete.

Here’s how a world without copyright might work.

The right to release (or not)

Just because copyright should be abolished doesn’t mean that there should be no rights for creators. The primary right in a world without copyright will be the right to choose whether to release a work. When you create a new work in private, no one but you has the right to make it public.

Releasing should be an intentional act. For example, if you perform a song in a club or on the street corner, you’ve released it. If you share your novel on the Internet, you’ve released it.

This right to release definitely needs some detail work. You should be able to share your novel with a friend without having that be considered a release. Maybe you just want some feedback. Maybe it’s just intended as a private work for the two of you. The line between public “performance” and private sharing is tricky. When in doubt, we should err on the side of the creator’s stated intention. If the creator says that she had no intention to release a work, that should count for a lot in a legal case.

Once something is released, that’s irrevocable. You can refuse to release changes to that work, but you can’t declare an existing work unrelased. That would be tantamount to enforcing copyright law, and those have been abolished.

Entertainment (music, tv/film, novels, art)

Let’s start with music. Music has been around a long time, long before the first copyright law (1710). If we abolish copyright, I think it’s obvious that music won’t disappear.

That doesn’t answer the question of how musicians can make money in a world without copyright.

Performers will still be able to make money performing. Copyright has nothing to do with the viability of charging for live performances. Yes, it will now be legal to record the performance and distribute that recording, but I don’t think that will hurt concerts. I regularly go to concerts to listen to music for which I have recordings. Concerts are an experience that combines music with the space its in, plus the fact that you’re there with other people. Recordings are not a substitute for this experience. If they were, concerts would have died out long ago as recording and playback technology advanced.

But what about the creation of new music? What incentive does an artist have to create an album if they can’t sell that album?

The model for new music creation in a world without copyright is Kickstarter.

Look at Amanda Palmer’s Kickstarter project for her new album. She’s raised $951,000 already! That’s more than enough to fund the creation of the album, cover the cost of backer reward creation and distribution, and pay for living expenses while all this is happening.

If she released this new album under a Creative Commons license, what would she lose? Well, she might lose the prospect of making some more money. But still, she’s already raised enough to complete the primary goal of creating a new album and supporting herself while she does so.

This is the world without copyright. Artists declare their intent to create a new work, and people who want that work to exist pay for it.

What about new artists? Well, that won’t be so different from how things work right now. I doubt Amanda made much money when she started out. She probably played a lot of free shows, or shows where she got paid almost nothing. She probably invested a lot of time in writing songs and practicing without any guarantee of making money. Now, after years of practice and refinement, she’s built up a solid fan base (which she deserves because she is awesome).

Artists will have to do the same work as they do now. You invest a lot of time and energy in the hope of building up a fan base willing to spend money on your work. Eventually, if you’re good and you work hard and you’re lucky, you can make a living being a full time artist.

There are some differences in a world without copyright. The income ceiling for a musician will be much lower. Right now, an artist like Lady Gaga or Justin Bieber can sell millions and millions of copies. If the artist makes just $1 per copy, they can become quite wealthy. Then there’s licensing fees for films, TV shows, commercials, covers, etc. It’s a nice chunk of change.

In a world without copyright, you get paid to create the work, and you can also make money from concerts. You don’t get paid per sale (there are no “sales”) and you don’t make money from licensing. You might also be able to make some extra money selling extra like shirts, posters, etc. Yes, others could copy them and sell them too, but in practice I doubt there’d be much incentive for this. This is especially true for concert merch, where buying it at the concert is part of the appeal.

If Lady Gaga couldn’t make millions and millions of dollars, would she still create albums? I have no idea. Would it be a loss to society? I don’t think so. While some musicians may be motivated solely by the desire to become incredibly wealthy, most aren’t. There are enough musicians who just want to make great music.

The biggest impact will probably be all the middlemen, like record companies, agents, marketing companies, Apple’s iTunes store, Amazon, etc. Some of these might disappear entirely, but not all. Inasmuch as they provide a valuable service, they’ll still exist. An up and coming musician will find value in marketing and advertising if it helps them find an audience willing to fund their next work and attend concerts. The professions that exist entirely to squeeze money out of legal restrictions on copying bits around will disappear.

The picture for film, TV shows (aka serialized films), and novels are similar. The highest paid performers and creators will be paid much less, but these things will all still exist. The higher cost and greater complexity of films and TV shows probably means that studios will still exist in some form. Putting together a crew and managing the creation of a TV show is incredibly complex. It also costs a lot of money to create even one show.

The studios will exist to fund the creation of pilots. Instead of pilots being approved or rejected by a few studio execs, they’ll now be put on the Internet for all to see. If people like the pilot, they’ll back the Kickstarter(-ish) project for episodes 2-10. If they like those, they’ll back episodes 11-20, and so on. The projects will priced at a point that funds the creation of the project itself, as well as providing some additional funds that can be put into further pilots.

Films will be a little different. You don’t really make a pilot. Instead, maybe you’ll create a trailer, or publish the script.

For both film and TV, directors and writers with a strong track record will be able to raise funds based on the strength of their name. I’d pay out of pocket for a new TV show from Joss Whedon without needing to see a pilot.

But the age of the film star being paid $20 million for six months of work will be over. The top film stars may make a few hundred thousand a year. The people who wanted to get into film solely to get rich will choose a different profession. Just as with music, there will still be plenty of people who want to do this work for love of the work itself.

Novels are a no-brainer. They’re incredibly cheap to produce. All you need to do is keep one author alive for the length of time it takes to write it. Let’s say that time is six months. Can an author raise $15,000 for one novel? $25,000? $50,000? Those all seem quite possible. If you can’t raise that much, you can write and hold down a part-time job. You won’t be the first author who’s had to do that.

What about non-fiction books, films, etc.? Some of these things are still essentially creative. A good documentary film is as much a work of art as it is reporting. Some non-fiction works are mostly functional, like restaurant guides or travel books. If customers find these useful, they will be funded. If they can’t be funded, something else will replace them. Maybe nobody wants to fund a travel book, but they’re okay with viewing ads on a site like Trip Advisor.


So what about other works of art? Most visual art involves the creation of a physical product like a sculpture or a painting. I don’t see a world without copyright affecting these much. If an artist makes money by selling physical objects now, copyright laws don’t affect them. Those few artists who make money from reproductions of their work will make less, but I suspect that’s a tiny minority.

In almost every visual art form, the original differs from an reproduction. An original oil painting is not the same as a print.

The only visual art where this isn’t the case is photography. With the advent of digital photography, there’s no such thing as “the original photo”. If people find value in photography as art, they will pay for photographic artists to create new works, just like with music, film, etc.

I can’t imagine there are many photographers making a living purely from art photography. I’d guess that most of them spend at least part of their time creating works for hire (portraits, journalism, etc.). These works for hire will be just as valuable in a world without copyright.


The existence of Free/Open Source Software shows us that people will create software and give it away, often without being paid. Besides free software, a lot of software is created as a work for hire. Companies have internal teams of programmers that create software for use inside that company as opposed to selling that software or offering it as a service.

The creation of software that you buy to install on your own computer will obviously change. Microsoft will no longer be able to sell you a “copy” of Windows 10. However, if enough people find value in Windows, maybe they’ll fund a project to create Windows 10.

Software as a service is an interesting case. Does making software available for people to use on equipment you control constitute a release? The purist in me wishes it would. I think the world would be a lot better off if companies like Google and Facebook had to release their software. But clearly this is an area that needs more thought.

Even if providing software as a service constitutes a release, there will still be a very large market for software. We will still want something like Google.

There’s more to creating software than just creating software. Google is a lot more than their code. They’re also the people who have the knowledge to build software at Google scale, to maintain their data centers with thousands (millions?) of computers, and to build new products that people want to use. If building all this were easy then Google would have lots of competitors. Simple having Google’s software won’t magically let some other company compete with them effectively.

Of course, Google can continue to run ads, which is their primary source of income. If people don’t want ads, they can fund the creation of an ad-free Google competitor. That’s no small task. I suspect that in a world without copyright, a company like Google will do just fine.

Even without copyright, software will still be a thriving business.


Journalism is already struggling in a world with copyright. We can already see journalism moving from “pay to read” to free online sites like Salon, Slate, etc. Many magazines and newspapers publish their content online as well.

Again, inasmuch as people find value in this content, they will pay for it one way or another. Either they’ll tolerate ads on sites or they’ll fund the site directly. I pay $60 a year to subscribe to Linux Weekly News, despite the fact that all of the content they publish is made freely available within a few weeks of initial publication. I do this because I find their content valuable, and I want them to continue creating it.

I imagine that the future of journalism will also involve micropayments. Companies like Flattr are working on exactly this idea. If I could easily arrange to pay Salon (and Slate and The Economist and a few other sites) a few dollars per year, I might do it. If a million other people join me, there’s a real business model there for the content producers.

I’m not sure what the future is for journalism, but I don’t think it’s about locking up content with strict copyright enforcement.

Paid to Produce

In a world without copyright, content producers are paid to do the work of producing content. They aren’t paid to grant me the right to flip some bits on my hard drive in a certain order.

A world without copyright is not a world without art, software, or journalism. It’s not a world without services for content providers either. If a service offers real value, that service will continue to exist. It that service simply charges digital rent, it will disappear.

Ultimately, I think a world without copyright will be a world with more creative works, not fewer. Middlemen also act as gatekeepers, and their incentives skew towards not taking risks. If you can raise the funds to produce your own album or film, you can make it, and you don’t need an record label or studio to bless your work. That part of the world without copyright is nearly here, if it’s not here already.

We may already be moving towards a world without copyright. People who don’t believe in the validity of copyright are acting on that belief. They’re copying creative works without paying for a license, releasing free software, creating listener-funded podcasts, and even starting political parties. It may be that twenty years from now we really will live in a world without copyright.

I’ve removed the per-category Atom feeds from the sidebar, and I’m going to stop categorizing new entries.

There are a couple reasons. First, the three categories are somewhat limiting. My next entry will not fall strictly into the AR-Veg, Personal, or Programming categories.

Second, the vast majority of my entries are about programming, and that will probably continue to be true. I realized that most anything I’d categorize as Personal is either trivial or something I don’t want to share on a blog. For the AR-Veg stuff, I plan to simply publish any future writing on that topic in my animal rights group’s email newsletter.

The existing pre-category Atom feed URIs will not redirect to the “everything” feed.

I recently uploaded a new distro to CPAN recently called Type. The concepts are largely on Moose’s built-in type system, but it’s a standalone distribution.

Right now this is all very alpha, and the current release is not intended for use by anyone. I’ve released so people can take a look at critique the design. I’ve tried to remedy some of the problems that Moose’s type system has. MooseX::Types fixes some of these problems but then introduces its own. Type addresses the problems of both.

My long-term goal is to replace Moose’s built-in system with Type. This will probably mean rewriting Type to not use Moose itself. The current release uses Moose because it made it easy to prototype the system.

Here’s the comparison with Moose and MooseX::Types from the Type distro’s docs:

Type names are strings, but they’re not global

Unlike Moose and MooseX::Types, type names are always local to the current package. There is no possibility of name collision between different modules, so you can safely use short types names for code.

Unlike MooseX::Types, types are strings, so there is no possibility of colliding with existing class or subroutine names.

No type auto-creation

Types are always retrieved using the t() subroutine. If you pass an unknown name to this subroutine it dies. This is different from Moose and MooseX::Types, which assume that unknown names are class names.

Exceptions are objects

The $type->validate_or_die() method throws a Type::Exception object on failure, not a string.

Anon types are explicit

With Moose and MooseX::Types, you use the same subroutine, subtype(), to declare both named and anonymous types. With Type, you use declare() for named types and anon() for anonymous types.

Class and object types are separate

Moose and MooseX::Types have class_type and duck_type. The former type requires an object, while the latter accepts a class name or object.

In Type, the distinction between accepting an object versus object or class is explicit. There are four declaration helpers, object_can_type, object_isa_type, any_can_type, and any_isa_type.

Overloading support is baked in

Perl’s overloading is broken as hell, but ignoring it makes Moose’s type system frustrating.

Types can either have a constraint or inline generator, not both

Moose and MooseX::Types types can be defined with a subroutine reference as the constraint, an inline generator subroutine, or both. This is purely for backwards compatibility, and it makes the internals more complicated than they need to be.

With Type, a constraint can have either a subroutine reference or an inline generator, not both.

Coercions can be inlined

I simply never got around to implementing this in Moose.

No crazy coercion features

Moose has some bizarre (and mostly) undocumented features relating to coercions and parameterizable types. This is a misfeature.

Your feedback is requested

The current distro has mostly complete docs, so it should give you a sense of what I’m aiming at.

I’d love to hear from the Perl community on this distribution. Do this seem like it’d help fix problems you’ve had with Moose types? Can you imagine using this distribution without using Moose? What’s on your wishlist?

For that coworker who won’t stop “optimizing” his or her code, I give you my rules of optimization:

  1. Don’t optimize
  2. Don’t optimize, I’m serious
  3. Don’t optimize without benchmarking first
  4. Don’t benchmark without profiling first
  5. See rule #1

Edit: A co-worker suggested a step 4.5 of “Take a coffee break”. I don’t like coffee, but I like the spirit of the suggestion.

At work we have some git repos that were converted from CVS originally created back in 2002 or so. A lot of the things in these repos is cruft and could be deleted. I wrote a little git command to report the most recent commit date for each thing in the current directory.

I wrote an article for LWN (Linux Weekly News) about the Perl 5 release process a couple weeks back. It was originally behind a paywall but it’s now readable by anyone.

Another article I wrote will be published later today. I’ll post a link here once it’s out from behind the paywall.

Please consider subscribing to LWN if you like this sort of thing, of course.

I feel that Perl 5 activity has increased over the past few years, but is that an illusion? I brought this topic up on the #p5p IRC channel and Nicholas Clark said, “everyone assumes growth. If you look at the ‘committers’ graph on I don’t think there’s been any marked growth (or reduction) in the past 10 years. Just a lot of noise”.

So is he right? I wanted to figure it out.

The Ohloh chart is very noisy. It shows the number of committers per month, which seems to swing back and forth rather dramatically. I used the Ohloh API to download the raw data and run it through a spreadsheet.

Instead of looking at each month, I looked at the average number of committers per year. I started with 2001, since before that year the data is even more wildly variable. Also, I know that the farther we go back in the commit history, the more guesses were made during the import to git.

Here’s the graph I created in Gnumeric:


It looks like there was a big dropoff in committers from 2001 to 2004, and we’ve seen an upwards trend since then. I’m not sure there’s enough data to draw any strong conclusions. My gut feeling that activity was up in the past few years was correct, but we don’t yet know whether that’s a fluke.

We still haven’t reached our historical highs, so I think Nick was right when you look at the overall history of Perl 5. Nevertheless, I’m hopeful that we’re in the midst of a positive trend.