Programming and the Law

A recent blog post and its corresponding comments thread on Hacker News got me thinking about programming and the law. As a programmer and a lawyer, I’ve found that other programmers have a particular fascination about the law, discussing it often in drawn-out, thoughtful, and often strongly argumentative conversations.

That programmers enjoy the law does not surprise me for several reasons. FIrst, the law affects programmers from numerous angles: patents, copyrights, the DMCA, and electronic communications privacy come into play at various times. Second, I think that programmers, being masters of rule-based machines, enjoy thinking about the law because it, too, is something of a rule-based machine. Third, good programmers are smart people, and thinking about the law is an intellectually challenging exercise that appeals to smart people.

As mentioned above, the law shares similarities with programming, such as the rule-based nature of both. However, there are at least two substantial differences between programming and the law.

First, the law, compared to a programming language, is enormous. A programming language can be formally specified fairly succinctly: for example, Kernighan and Ritchie’s book on C is less than an inch thick. Compare this to the over three thousand volumes of the Federal Reporter, containing the case law that define the law of the United States (along with the statutes, administrative regulations, state law cases, local ordinances, and so on). Fortunes and fame have been found merely for summarizing the law of one area into a treatise of eleven volumes (see, e.g., Nimmer on Copyright).

Second, the law is less determinate and more context-dependent than a programming language. If you call a square root function in a computer program, it will behave the same whether the context is processing graphics or calculating missile trajectories. In contrast, the context in which a law is invoked can affect the manner in which the law is interpreted and applied—even if the context is not stated in the text of the law itself. This is what allows for what would otherwise be contradictions in the law. If one law seems to permit an activity and another law seems to prohibit it, judges will use the context of the cases before them to determine what law to apply.

Additionally, there is one similarity that programming and the law share, albeit a similarity that trips up people discussing the law. The law is a language, just like programming, chemistry, mathematics, or any other discipline. It has its own terminology and ways of expressing ideas.

These three principles explain many errors that programmers—and lots of other people, including lawyers—make in understanding the law. We often find a law that seems to work in our favor, stretch it to our set of facts, applying our own interpretations and logic, and draw an interpretation that may not be in line with actually prevailing interpretations and logic of the law. The problem is that the indeterminacy of the law makes it hard to draw logical implications from any particular law. And the sheer volume of it means that there are plenty of views on a subject, any or none of which could be controlling in a particular case.

The blog post mentioned above errs several times in this manner, with errors ranging from the silly to the substantial.

  • The silly: the post says draws a distinction between “copyright in... screen displays” and “copyright of screen displays,” ignoring the fact that, in copyright parlance, one holds copyright in a work (making the post's distinction meaningless).
  • The substantial: the post suggests that 37signals cannot take legal action because it has not registered its copyright in the look and feel of its website. This is correct, insofar as one cannot bring suit for infringement without a registered copyright. However, the post is getting copyright registration confused with copyright. An author gets a copyright the instant words are set to paper (or HTML is set to stable storage), whether or not the author chooses to register. Registration is a “formality” that can be performed any time prior to bringing the infringement suit, even after the infringement started. Hence, the post's guess that 37signals' recourse would be limited to an "angry letter" would seem to come from an erroneous understanding of copyright registration.

The Hacker News comments have pointed out far more examples of legal considerations not accounted for in the post.

Because of its size and indeterminacy relative to things like programming languages, the law is a complicated beast. But the upshot of that complexity is that it makes the law exciting. The thousands of volumes of the law are treasure troves of ideas, providing countless opportunities to make arguments and interpretations. It reminds me somewhat of Perl, whose “there’s more than one way to do it” philosophy can make it difficult to understand but gives the Perl hacker a certain degree of artistic and stylistic freedom, creating an intellectual challenge to turn out the elegant one-liner. It makes the law enjoyable to think about, and worthwhile, to me, to practice.

Please note: I AM a lawyer, and that subjects me to certain legal obligations. The above text is intended for the general public, and nothing I have said constitutes legal advice or should be understood as such or to create an attorney-client relationship between myself and any other party. Although I strive for accuracy to the greatest extent possible, I cannot provide any warranty or representation of correctness of anything I have said. Remember, advice is worth what you paid for it. If you are in need of legal advice for your particular situation, you should consult an attorney. My words are not the opinion of my employer or any organization with which I am affiliated, and they should not be construed as such. Please DO NOT EMAIL ME any confidential information about your startup or anything else. Any information you disclose to me will be considered nonconfidential.