Should People Learn To Code? Yes ? If They Are Judges Ruling On Cases Involving Software

from the you-can't-fool-me dept

Recently Techdirt wrote about the heated debate on the subject of whether people should learn to code. We pointed out that some knowledge of that subject could be particularly useful in helping people understand why copyrighting APIs or patenting software is just crazy — whatever the abstract legal arguments, in practice both make programming much, much harder.

An obvious situation where such practical knowledge could be crucially important is in court cases dealing with software. Rather neatly, the long-running court case between Oracle and Google, where the former is accusing the latter’s Android of infringing on its code in various ways, has thrown up a perfect example of this.

It arose in an exchange between Judge Alsup and Oracle’s main lawyer, the high-profile David Boies, best known for representing the US Justice Department in the United States v. Microsoft case. Boies claimed that the fact that the jury had decided Google’s “rangeCheck” code had copied Oracle’s implementation of the same function was evidence that Google was trying to save time. The argument of Boies was that Google consciously copied those few lines from Oracle in order to accelerate development — and thus to start making money faster through daily activations of phones running its Android operating system.

But Judge Alsup was having none of it:

I have done, and still do, a significant amount of programming in other languages. I’ve written blocks of code like rangeCheck a hundred times before. I could do it, you could do it. The idea that someone would copy that when they could do it themselves just as fast, it was an accident. There’s no way you could say that was speeding them along to the marketplace. You’re one of the best lawyers in America, how could you even make that kind of argument?

This is a perfect example of a judge being able to draw on his personal experience of coding to dismiss what a clever lawyer probably thought was a clever argument.

Contrast this with another judge, talking this time about software patents, as recently reported on Techdirt:

Judge Michel seemed unaware of the depth of the software industry’s dissatisfaction with the patent system. He suggested the patent system’s critics were relatively marginal figures not representative of the views of the broader technology industry. And he didn’t seem to understand the dynamics of the patent arms race currently affecting the software industry.

“If software is less dependent on patents, fine then. Let software use patents less as they choose,” Michel said. “If other industries are terribly dependent on patents, then let’s not wreck the system just because software people are unhappy.”

No one who has tried to code in any depth could dismiss the problems caused by software patents so glibly — it would be hard, for example, to imagine Judge Alsup saying this.

Learning to code certainly isn’t a panacea, nor is it relevant for everyone. But for those professionals who must make important decisions about software — judges, for example — a basic programming literacy is indispensable. As it is, the tech industry must count itself lucky that the Oracle vs. Google case seems to have ended up in front of one of the few judges qualified to decide it.

Follow me @glynmoody on Twitter or identi.ca, and on Google+

Filed Under: , ,
Companies: google, oracle

Rate this comment as insightful
Rate this comment as funny
You have rated this comment as insightful
You have rated this comment as funny
Flag this comment as abusive/trolling/spam
You have flagged this comment
The first word has already been claimed
The last word has already been claimed
Insightful Lightbulb icon Funny Laughing icon Abusive/trolling/spam Flag icon Insightful badge Lightbulb icon Funny badge Laughing icon Comments icon

Comments on “Should People Learn To Code? Yes ? If They Are Judges Ruling On Cases Involving Software”

Subscribe: RSS Leave a comment
39 Comments
Anonymous Coward says:

“Should People Learn To Code?”

Yes! Very yes!

But not just “how to code”. Schools should have courses on basic computer science and kids should be taught from an early age how computers work, and how to unleash their power.

The goal of schools is to prepare kids for the future. How can we do that if kids these days have no clue of what goes on inside a computer?

In the past, we had the excuse that computers were a niche thing. Today, we have no excuse not to teach some basic computer science in schools.

Andrew (profile) says:

I haven’t seen the rangeCheck code, but, like Judge Alsup, I’m pretty confident I could write something similar in about 5 minutes — just like the hypothecated high school student. That Oracle’s counsel suggests he “probably couldn’t program that in six months” makes me question his competence to take part in this trial.

See also What color are your bits?, which I probably found via Techdirt (thanks!).

MattP says:

Re: Re:

I haven’t seen the code either but I can be relatively sure that varibles named i, idx or index were used in a loop for an index.

They probably ripped off Oracle too by naming variables min, minValue, minimumValue etc.

How dare they take an incredibly simple routine with minimal logic and then convolute it with meaningful variable names.

I bet if we dig deeper we’ll find out that Google took the concept of loops and methods and being the scum sucking pirates that they are used them throughout their program!

Anonymous Coward says:

Naivety

> You’re one of the best lawyers in America,
> how could you even make that kind of argument?

This judge must have seen thousands of lawyers argue equally stupid things, so I find it ingenuous that he should (presumably) feign surprise that Boies, when representing someone with practically no case, would grasp at straws.

Rich Kulawiec (profile) says:

There's a secondary reason for doing this

It’s a corollary to teaching people mathematics, science, natural languages, history, and other topics: it teaches them how to think. In the particular case of programming, it teaches them how to think rigorously,because sloppy thinking in this context simply doesn’t work.

Good programmers learn to be careful with their assumptions, skeptical of their success, and committed to testing — among other things. These are useful attributes for anyone to have, but they’re especially useful for people whose work involves complex decision-making.

Leigh Beadon (profile) says:

Re: There's a secondary reason for doing this

Programming also teaches you what computers can easily do, and what is challenging for them – which is something a lot of people badly need.

Nothing infuriates me more than when someone complains about a facial recognition tool being imperfect, then sits down to manually transpose some spreadsheet columns or rename a folder of files.

Marcel de Jong (profile) says:

Re: Re: There's a secondary reason for doing this

As for the renaming a folder of files, sometimes I have very specific wishes for the filenames, and none of the tools I have at my disposal (and I have plenty) fits the bill exactly.

I could create a bash script to do it, but by the time I’ve written that one, and concluded that it works the way I want it to, I’d been better off doing it by hand. 🙂

But I agree, that would be something best done automated.

Leigh Beadon (profile) says:

Re: Re: Re: There's a secondary reason for doing this

Well, just the fact that you can look at the task, consider how it would be automated versus how it would be done manually, and then make that determination, is precisely what I’m talking about 🙂

For sure, there are times when the challenge of automating is greater than just doing it manually – of course, multiply the number of files a bit, or make it a daily task, and then that balance shifts.

Marcel de Jong (profile) says:

Re: Re: Re:2 There's a secondary reason for doing this

Absolutely. And indeed, making that informed decision and knowing what a computer does/is capable of doing would be a boon to know for judges and politicians (or their experts) worldwide.

Sadly, more often than not, even when confronted with experts in the field, these politicians stick their fingers in their ears and shout: “LALALALALA, I DON’T WANNA LEARN!”

Miratus (profile) says:

Knowing how to code helps lawyers in many ways

As an IP/IT lawyer I am happy I started my lifelong programming hobby with the C-64 and kept at it, even when law studies, other hobbies and work made time scarce. Why? Not only do my clients (programmers or their employers) breathe a sigh of relief when they understand I might actually understand what (and how) they developed their software, but it trains the same skills a good contract writer needs: formulating use cases, functional design, good definitions, refactoring, structure and commenting. Even test-driven development works pretty well on contracts, in my experience.

The best part, though, was standing up in court in front of a non-technical judge and refuting the other side’s nonsense on how fast code is written (‘no way an experienced developer can write hundreds, yes hundreds of lines of code in a week’) by putting my laptop in front of the judge and rapidly whipping up an nice Mac program that printed the judge’s name in a window on screen, demonstrating that (with the auto-generated code) I had just written a few hundred lines of code in minutes. The judge: “I am sorry, gentlemen, but I am going to accept the technical facts of this case from this lawyer: if he can do this, then his professional programming client can probably do more: you obviously are trying to abuse my lack of hands-on coding experience with your grand statements, but now that I see how it is done and that even your expert witness cannot refute what has been demonstrated I suggest you pipe down.”

So yeah, learning to play with and understand code is VERY valuable to lawyers in the tech field, if not to most people.

Beta (profile) says:

Re: Knowing how to code helps lawyers in many ways

Oh, I have mixed feelings about this…

I’m all in favor of crushing a bad argument with an irrefutable demonstration. I’m all in favor of educating judges. And I’m glad you won. But the judge seems to have missed the two real lessons:

1) A non-technical judge should not accept an argument about a technical discipline without evidence, and

2) there’s really no limit to how fast a tech-savvy coder can generate lines of code. (Extra credit if the judge realizes that there’s no upper limit to how many lines of code can be used to perform a given task.)

John Fenderson (profile) says:

Re: Re: Knowing how to code helps lawyers in many ways

Yeah, I was thinking similar things. LOC is a very squishy way of measuring production. What kinds of lines are they — automated (like the judge did), freshly written, or fully tested & debugged?

The industry-average rate of code production varies wildly, from the tens to the thousands, depending on what exactly we’re talking about.

velox says:

Boies: Clinton's Lawyer

“high-profile David Boies, best known for representing the US Justice Department in the United States v. Microsoft case”

In the IT world, Boies is best known for US vs. Microsoft, but the world at large probably knows him better from another case. He was on national TV for days arguing Bush v. Gore in the Supreme Court conclusion to 2000 election. Boies was Gore’s lawyer.

Monday (profile) says:

Knowing Code

I truly think Miratus comment, May 21st, 2012 @ 5:21am, was/is the most insightful made so far. NOT knowing code at a Judgeship level, especially if they’re looking to advance their carreer through the trying of High Profile cases such as this, is akin to not knowing how to type when you’re in University. Yah, it’s gonna take you a few days instead of 10 hours to get that 20 page paper in if you type at 1000 words an hour instead of 2500 words an hour.
When it comes to code, you also have to remember how history has behaved in the past… Two people in different parts of the world came up with calculus at the same time… Three separate and equally secluded scientists were all coming up with the “Atomic Solution” at the same time. It is inevitable that these ‘code infringements’ are going to occur at some level; that’s just unconscious knowledge.
Coincidence is very convincing, but it is not a Guilty verdict…

Andrew F (profile) says:

rangeCheck

Went looking for the code, not sure if this is it, but here’s what I found at http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5103956:

private void RangeCheck(int index) {
????if (index >= size)
????????throw new IndexOutOfBoundsException(
????????????”Index: “+index+”, Size: “+size);
}

Yeah, that saved Google lots of time to copy.

Rabbit80 says:

Re: rangeCheck

private static void rangeCheck(int arrayLen, int fromIndex, int toIndex) {
if (fromIndex > toIndex)
throw new IllegalArgumentException(“fromIndex(” + fromIndex +
“) > toIndex(” + toIndex+”)”);
if (fromIndex < 0)
throw new ArrayIndexOutOfBoundsException(fromIndex);
if (toIndex > arrayLen)
throw new ArrayIndexOutOfBoundsException(toIndex);
}

Add Your Comment

Your email address will not be published. Required fields are marked *

Have a Techdirt Account? Sign in now. Want one? Register here

Comment Options:

Make this the or (get credits or sign in to see balance) what's this?

What's this?

Techdirt community members with Techdirt Credits can spotlight a comment as either the "First Word" or "Last Word" on a particular comment thread. Credits can be purchased at the Techdirt Insider Shop »

Follow Techdirt

Techdirt Daily Newsletter

Ctrl-Alt-Speech

A weekly news podcast from
Mike Masnick & Ben Whitelaw

Subscribe now to Ctrl-Alt-Speech »
Techdirt Deals
Techdirt Insider Discord
The latest chatter on the Techdirt Insider Discord channel...
Loading...