Google, the company that made "don't be evil" its corporate motto, is shunning use of an open-source license variation that precludes use of software for evil purposes.

The matter illustrates the tensions between the sometimes free-wheeling ways of open-source programming world and the buttoned-down corporate realms where open-source software is no longer unusual. This particular issue bubbled up at Google Code, a site that hosts open-source projects from Google and others.

When he wrote JSMin, Douglas Crockford added this line to the open-source MIT License.
Douglas Crockford

Google only permits software governed by a limited list of widely used open-source licenses to be hosted at Google Code; one that's permitted is the MIT License. Douglas Crockford picked a variation of the MIT license for his JSMin program to shrink JavaScript programs so that Web browsers can download them faster, and Ryan Grove carried that license over for his variation called JSMin-PHP rewritten in the PHP language.

"As Google (and some others) interpret it, this additional requirement constitutes a vague use restriction and thus makes the license non-free. Chris [DiBona] explained that if I were to remove that line from the license and 'return to a proper open source license that we support,' then jsmin-php could stay on Google Code. Otherwise, he said, 'we can't host you,'" Grove said on his blog. "Of course, I can't change the license, because it's not my license. It's Douglas's license...All derivative works and copies of jsmin.c either include this license or are in violation of it."

Consequently, Grove moved JSMin-PHP to the GitHub collaborative programming site. "If you currently have a project on Google Code that is derived from or includes jsmin.c, you might want to consider migrating to a new host with less restrictive policies," Grove added.

How did this all come about? According to a July speech by Crockford, who works for Yahoo and describes himself as a heretic, the license was an artifact of the George Bush administration's war on "evildoers." He uses the licenses for all the projects he's created, he said.

"This was late in 2002, we'd just started the war on terror, and we were going after the evildoers with the president and the vice president, and I felt like I need to do my part," he joked. "So I added one more line to my license, which was that 'the software shall be used for good, not evil.'"

"About once a year I'll get a letter from a crank who says, 'I should have a right to use it for evil! I'm not going to use it until you change your license.' Or they'll write to me and say: 'How do I know if it's evil or not? I don't think it's evil, but someone else might think it's evil, so I'm not going to use it,'" Crockford said. His conclusion: "My license works, I'm stopping the evildoers."

He's willing to grant an exception, though, he said.

"Also about once a year, I get a letter from a lawyer, every year a different lawyer, at a company--I don't want to embarrass the company by saying their name, so I'll just say their initials: IBM--saying that they want to use something I wrote," he said. "They want to use something that I wrote in something that they wrote, and they were pretty sure they weren't going to use it for evil, but they couldn't say for sure about their customers. So could I give them a special license for that? Of course. So I wrote back... 'I give permission for IBM, its customers, partners, and minions, to use JSLint for evil.'"

These days, though, lawyers are a real force in the programming world, and I can see how the line, however jokingly it might have been added, might cause corporate indigestion. Perhaps Crockford has no intention of enforcing the license, but perhaps some contributor to a project farther down the path of derivative works might have a more humorless interpretation.

Even if a company, project, or individual does conclude the license isn't onerous, that extra line adds a lot of busywork to the collective and never-ending task of evaluating software. I'm all for humor, principled positions, and honest debate, but I prefer it to take place where it won't hobble some other software project's prospects.

I know I sound stuffy (or perhaps "risk-averse" and "disconnected from the community," as Aaron Boodman would have it), but I hate to see good work fall by the wayside for what seems to me a reason that's secondary at best.

About the author

Stephen Shankland has been a reporter at CNET since 1998 and covers browsers, Web development, digital photography and new technology. In the past he has been CNET's beat reporter for Google, Yahoo, Linux, open-source software, servers and supercomputers. He has a soft spot in his heart for standards groups and I/O interfaces.
See full bio