Shared publicly  - 
New blog post: the limits of "software is speech".
I have submitted an essay to the Stanford Law Review for publication. I didn't tick the box for “exclusive”, so I think I can blog it as well. It's a reply to Andrew Tutt's essay on Software Speech. A...
Peter da Silva's profile photoMichael R. Bernstein's profile photoJoe Philipps's profile photoCédric Bonhomme's profile photo
Software is to speech as math is to art.  Software lacks the imprecision of a true language.  At best it is Orwellian.  The fencer foiled his adversary with a foil while wrapped in foil.  Can you write a program where the same term has different meanings, but the same syntax?  And have it understood?
Sure, James. Context matters. You can use the same variable names in different contexts and have the computer understand it perfectly and work correctly, but it actually makes it harder for a human to read the code.

Similarly, polymorphism and similar techniques can change the actions of verbs depending on the nouns they are handed, etc.
+Michael Bernstein I think you missed James's point.  He was talking about ambiguity.  Natural language is full of it.  Compilers can't deal with it. 
+Robert Marmorstein Sorry, but it's a silly point.  Expressive speech is Constitionally protected because it succeeds at communication, not because it fails.  Ambiguity may a feature for poetry, but it's a bug in political speech.
Untrue, Robert. Fuzzy logic languages and systems exist. They just aren't popular, largely because they're not as useful as you seem to think (although probabilistic machine learning techniques such as the Bayesian statistics that inform spam filters are).

And his example wasn't about ambiguity at all, it was about overloading the same label with multiple meanings. The actual meaning of 'foil' in each context isn't particularly ambiguous, since you can tell what the part of speech is meant from the context.
Eric, ambiguity isn't necessarily a bug from a politician's standpoint... ;-)
Actually my point was the rigidity of software code is like newspeak in 1984 (by Orwell).  The language took away flexibility in speech and damaged the ability of individuals to speak against the government.  Code as speech has dangers when trying to put structure on the unstructured.  It can be used as a form of oppression.

Good code is bad speech.
+James Schweitzer - Being able to say that in software is the whole point of Perl. The result demonstrates why it's a horrible horrible idea.
James, you're conflating accuracy with limited expressivity. And actually, there are languages like Perl that are even more flexible and expressive than English, with all the possibilities of idioms, dialects, and hidden private meanings. I actually hate that about Perl.
+James Schweitzer And /I/ disagree with your point about Newspeak damaging the ability of individuals to speak against their government. Yes, that was its intention, but as soon as the next generation grows up speaking Newspeak as their first language I think it would turn out to be immensely powerful, far, far more so than its designers (or, OK, acknowledging the true source of the hypothesis, George Orwell himself) could ever have anticipated. It would have the effect of making English, already a very powerful and flexible language into a regularly-structured agglutinative language. (I hope I'm getting my terminology right here.) Even though the vocabulary was drastically reduced to a few thousands of words, the restructuring proposed would allow a staggering number of new word combinations to arise.

'Duckspeak' was one such example, already used in the book (or it may have been 'ducktalk', my memory is not clear), but once the nuances of 'duckspeak' are understood, it's clearly trivial to derive dogspeak, bluespeak or any other foo-speak you care to, and for whichever of those combinations have usable meanings every native Newspeaker would instantly grasp them. Hence instead of 'speak', 'mutter', 'mumble', 'grumble', 'shout', 'declaim', etc. as now, yes, the base verb is 'speak' and 'speak' only, but then you have thousands of adjectives and even other nouns you can tag on, and still be understood. The language is regularised, yes, but vastly expanded at the same time. Orwell's theory that limiting vocabulary stunts intellectual expression may even be true, but Newspeak doesn't limit expression, as he believes, it vastly expands it.

I'd refer you to Stephen Pinker's The Language Instinct and related books. In particular, what Pinker says about how pidgins become creoles and then full-blown languages, and the conversion from pidgin to creole is driven by children learning to speak a pidgin used by their parents. Right from the word go, Newspeak has all the elements needed to become a really powerful and effective new language. It was intended to be a stunted pudgin, I grant you, but in spite of that it starts out almost a creole, and once the kids get their hands on it, look out! This is an unexpected consequence of the way language development works in children which I very much doubt writer Orwell appreciated, and it casts Newspeak in a drastically new light - certainly not one the author intended.

[Minor edits for clarity and to fix typos]
+Eric Raymond I see your point.  But we don't just protect political speech.  We also protect artistic expression (which may not succeed in communicating anything at all).  We defend the right to expression whether or not that expression is right or wrong -- or even unmeaningful. 
The view that software is speech doesn't only have impacts on DMCA if applied consistently, but also on software patents.
+Michael Bernstein Don Knuth talks about this in the "Art of Computer Programming".  Programming is an art in the sense that it is produces by artisans, just like shoes, or watches, or drinking glasses.  Programs can be beautiful, but we produce them to perform useful tasks. 
Some programs are just beautiful, like glass sculptures or clockwork toys.
+James Schweitzer , like overloaded operators and functions, in say C++?  The "context" for proper machine (or compiler) interpretation could be number of function arguments for example.

I like that example of foil taking on the meaning of a verb or two distinct nouns.

Not all speech or software is legal...slander, libel, fraud, DMCA.
Add a comment...