Monday, May 14, 2007
Pragmatic Practice in Law and Programming
Thanks to the Prawfsblawg army of thousands for having me here. I’ll try to keep this painless. Between the job market (thankfully) behind me and the actual teaching ahead, I’ve been reflecting a lot on just what it is that we do and ought to do in the legal academy. My particular angle (or perhaps gimmick) is that I come from the computer science homeworld, where things are sometimes a bit different than they are here on Space Station Law. I feel more than a little like an immigrant, identifying with both cultures but on the margins of each. One thing I’d like to talk about during my visit is how computer science looks from the legal perspective, and vice-versa.
Back in college, one of my friends characterized computer science as “ruthlessly pragmatic.” We were taking a dreadful course on operating systems at the time, and the classroom part of the course was less a set of lectures than a series of worked examples. This is how a clock-face scheduler works. This is how a linker rewrites addresses. This is the code for malloc; let’s walk through it line by line. There was some theory, but nothing whose applicability wouldn’t be obvious by the end of a 50-minute hour. The course was an extreme example, but he was on to something fairly general about the subject. Computer science is a pragmatic discipline; the field is driven by the needs of programmers. It has generated some of the most beautiful mathematical ideas ever invented, but almost all of them were devised to deal with pressing practical problems. Most working programmers either disdain the theory entirely or take up only what they need to know to solve the programming puzzle in front of them. Generations of computer science professors have struggled to move students from the first camp to the second.
So here, perhaps, is a way in which my two orbits are not so different. Practicing lawyers, like practicing programmers, are professional pragmatists. Both must make their cases (and case mods) out of the materials they have available; both starve or eat steak depending on whether their creations work. The day-to-day practice of law is unlikely ever to require much high theory. We can mourn that fact because it means that they look at us with suspicion, or celebrate it because it frees us to chase Truth and Beauty—and it will remain a fact either way.
That said, I think I bring with me from my programming days something of a faith in the utility of theory. I’m grateful to the professors who insisted that learning first-order logic and recurrence relations would make me a better programmer. It did. The mathematics became a grounding in careful modeling, a toolkit of ways to make sense of a challenge and look for a structured solution. The very pragmatism of our theory became a kind of virtue; the more pieces of it you knew well, the more effectively you could generate creative solutions and be confident that they’d work. (One of my proudest moments in the programming world involved using de Bruijn numbers to implement undo in our product.)
So too, I hope, in law. All of the talk of learning to “think like a lawyer,” all of our in-class excursions into policy arguments, all of the law-and-economics models, and all of the endless flood of new abstractions: the argument is that legal theory helps win cases and solve clients’ problems. It opens students’ eyes to new levers they can pull, to structured ways of making sense of a mess of facts, to the aesthetic difference between a good argument and a bad one, and to the nuances of every word they use. That’s not all we do, but in this complete breakfast of law teaching, it’s an important part.
TrackBack URL for this entry:
Listed below are links to weblogs that reference Pragmatic Practice in Law and Programming:
» Grimmelmann on Pragmatics and Theory in Law and Programming from Legal Profession Blog
Posted by Jeff Lipshaw James Grimmelmann (NYLS, right) has some interesting thoughts over at PrawfsBlawg on the similarities between theory and pragmatics for computer programmers and lawyers. Close readers of this blog will know that I have been think... [Read More]
Tracked on May 14, 2007 1:10:35 PM
» Beaching Whales from Pelican in Her Piety
Flipping through blogs this morning I came across Adams mention of Grimmelmanns posting over at PrawfsBlog. Perhaps its my background in moral philosophy or recently reading Tamanaha or currently reading Lem, but I find this analog... [Read More]
Tracked on May 15, 2007 7:37:56 AM
I read this post with interest, because I am a practicing lawyer married to a practicing computer scientist. Though there are aspects of our work that are analogous (in particular, my husband often engages in fact finding and knowledge gathering from experts to create rules, just as I engage in fact gathering ot build a case). But the huge difference is that when my husband completes a program, he can test it and it will either run or it doesn't. It's black and white. I may complete a wonderful brief and lose big time or turn in a piece of trash and pull out a win. There's no certainty in law, it's all dependent on judges or juries or negotiating skills. And it's that difference that often makes law unsatisfying and stressful. After all, you don't often hear about an unhappy computer scientist.
Posted by: Carolyn Elefant | May 14, 2007 11:40:38 AM
In my experience, there are different approaches to "theory" in CS, some less practically grounded than others. I got an undergrad degree from a CS department that (at least at the time) prided itself on its dedication to theory, and seemed to eye with a bit of disdain those "less theoretical types" working on problems with too much practical application. There was a lot of fundamental work in number theory, formal methods, correctness, and symbolic math, and we undergrads got lots of assignments to do in Haskell and Lisp, rarely in C or Perl (Java was just spreading at the time). There was much less work on operating systems, compilers, and robotics.
But is there a difference in the legal and CS academies in the level of respect the theoreticians have for practical application? My undergrad CS department seemed to share the subtle disdain for practice that I sometimes sense in the legal academy, but based on what you've said in your post, James, maybe my CS department was an outlier.
I'm looking forward to your visit, James.
Posted by: Paul Ohm | May 14, 2007 12:08:52 PM
I remember James when I invited him to join my research department as an intern at Bell Laboratories Research. I strongly suspect his comments are a correct reflection of not only the study & practice of both law and computer science, but perhaps a truth of human behavior in general. Theories empower one with a greater understanding of WHY x is x; thus enabling deeper semantics in execution. Such skill and performance are of significant value. It is a shame that they are not always achieved.
I suspect Nobel Laureate Herb Simon's contributions in economics (and many other fields such as computer science, cognitive science, etc...) suggests how humans are satisficing creatures, not optimizing creatures. Could this be a characteristic of pragmatic performance in the face of academic excellence?
Dr. Doug Riecken
Dept Head Commonsense Computing Research
IBM Watson Research Center
Posted by: Dr. Doug Riecken | May 14, 2007 3:50:55 PM
A college friend recently wrote a great example of what mathematical theory can do for working programmers. He also documents some of the disdain for theory I mention. His frustration just leaps off the page:
Today, regular expressions have also become a shining example of how ignoring good theory leads to bad programs. The regular expression implementations used by today's popular tools are significantly slower than the ones used in many of those thirty-year-old Unix tools.
Carolyn raises a good point, and one I'll return to in a later post. Paul is right that I lump an awful lot together under the moniker "theory," but what would blogging be without absurd overgeneralizations? And Doug, how did you come across this? You don't read legal academic blogs regularly, do you?
Posted by: James Grimmelmann | May 14, 2007 6:53:00 PM
"I’m grateful to the professors who insisted that learning first-order logic and recurrence relations would make me a better programmer." Interesting -- I've always thought that my two semesters of logic in college made me a better *lawyer*, for pretty much the same reason: it gave me "a toolkit of ways to make sense of a challenge and look for a structured solution."
Posted by: Bruce Boyden | May 15, 2007 1:51:17 PM
Thanks for this post. It is a topic I have thought about a little and have written on, very briefly, when I wrote about how and why free software developers use and understand the law.
After studying both the law and geeks from the "outside" I too was struck at the formal similarities between the 2 fields. As you point out there is a deep pragmatism that motivates the two and along with this, I think there is a way in which lawyers and software developers move within parameters of constraint and tradition, having to innovate in a piecemeal sort of way. So that the greatest legal or software hacks are innovations usually happen with very structured parameters (sort of like what Bruce above noted) and unlike lets say the humanities, they have to "work." Of course, testing the functionality of software is easier and more obvious than the law, but testing the functionality of the law, is more straightforward and easier, than lets say literature. So the law resides closer to the spectrum of a functional system than many other endeavors.
Because of the formal similarities,it helps explain (at least for me) the ease by which a lot of geeks learn and deal with (and even relish!!)the law. Of course, this does not mean they always get it right, but it helps make sensible a certain type of prevalence and dexterity that geeks and hackers hold toward the law.
Posted by: biella | Jun 6, 2007 12:37:24 PM