Ruby’s Benevolent Dictator

The Ruby Logo

The Ruby Logo

The first version of the Ruby programming language was developed by Yukihiro Matsumoto, better known as “Matz,” in 1995. Since then it has become especially popular for web development thanks to the advent of Rails by DHH. A variety of Ruby implementations have also sprung up, optimized for various uses. You may recall our recent discussion of RubyMotion as a well to develop iOS apps in Ruby. As with human languages, the spread and evolution of computer languages raises an interesting question: how different can two things be and still be the same?

To run with the human language example for a bit, consider the following. My native language is American English. (There are a number of regional variants within the US, so even the fact that American English is a useful category is telling.) I would recognize a British citizen with a cockney accent as a speaker of the same language, even though I would have trouble understanding him or her. I would not, however, recognize a French speaker as someone with whom I shared a language. The latter distinction exists despite the relative similarity between the languages–a shared alphabet, shared roots in Latin, and so on. So who decides whether two languages are the same?

In the case of human languages this is very much an emergent decision, worked out through the behavior of numerous individuals with little conscious thought for their coordination. This is where the human/computer language analogy fails us. The differences between computer languages are discrete, not continuous–there are measurable differences and similarities between any two language implementations, and intermediate steps between one implementation and another might not be viable. So who decides what is Ruby and what is not?

That is the question Brian Shirai raised in a series of posts and a conference talk. As of right now there is no clear process by which the community decides the future of Ruby, or what counts as a legitimate Ruby implementation. Matz is a benevolent dictator–but maybe not for life. His implementation is known to some as MRI–“Matz’s Ruby Implementation,” with the implication that this is just one of many.

Shirai is proposing a process by which the Ruby community could depersonalize such decisions by moving to a decision-making council. This depersonalization of power relations is at the heart of what it means to institutionalize. Shirai’s process consists of seven steps:

  1. Ruby Design Council made up of representatives from any significant Ruby implementation, where significant means able to run a base level of RubySpec (which is to be determined).
  2. A proposal for a Ruby change can be submitted by any member of the Ruby Design Council. If a member of the larger Ruby community wishes to submit a proposal, they must work with a member of the Council.
  3. The proposal must meet the following criteria:
    1. An explanation, written in English, of the change, what use cases or problems motivates the change, how existing libraries, frameworks, or applications may be affected.
    2. Complete documentation, written in English, describing all relevant aspects of the change, including documentation for any specific methods whose behavior changes or behavior of new methods that are added.
    3. RubySpecs that completely describe the behavior of the change.
  4. When the Council is presented with a proposal that meets the above criteria, any member can decide that the proposal fails to make a case that justifies the effort to implement the feature. Such veto must explain in depth why the proposed change is unsuitable for Ruby. The member submitting the proposal can address the deficiencies and resubmit.
  5. If a proposal is accepted for consideration, all Council members must implement the feature so that it passes the RubySpecs provided.
  6. Once all Council members have implemented the feature, the feature can be discussed in concrete terms. Any implementation, platform, or performance concerns can be addressed. Negative or positive impact on existing libraries, frameworks or applications can be clearly and precisely evaluated.
  7. Finally, a vote on the proposed change is taken. Each implementation gets one vote. Only changes that receive approval from all Council members become the definition of Ruby.

Step 3B is a particularly interesting one for students of politics. As you may have guessed, Matz is Japanese. (This is somewhat ironic since Ruby is the currently the most readable language for English speakers–see this example if you don’t believe me.) Many discussions about Ruby take place on Japanese message boards, and some non-Japanese developers have even learned Japanese so that they can participate in these discussions. English is the lingua franca of the international software development community, so Shirai’s proposal makes sense but it is not uncontroversial.

In Shirai’s own words this proposal would provide the Ruby community with a “technology for change.” That is exactly what political institutions are for–organizing the decision-making capacity of a community. This proposal and its eventual acceptance, rejection, or modification by the Ruby community will be interesting for students of politics to keep an eye on, and may be the topic of future posts.

Is e-Voting in Our Future?

Image Source: Pavel Podolyak

There are 96 million smartphones and wireless PDA’s in the US. As of 2012, none of them can be used to cast a ballot in a US election. In an age where you can do almost everything else online, though, some observers are asking when this might change.

Voting electronically from somewhere other than a polling place is technically known as i-voting. Australia allowed i-voting for its overseas defense personnel in 2007. Deployed troops with residency in California can also vote by e-mail. The Indian state of Gujarat introduced remote electronic voting in 2011, and about three-quarters of ballots were cast that way. The most famous example of internet voting is Estonia. The option was first available to Estonians in 2005, and has grown rapidly in popularity in subsequent biennial elections. France, Latvia, Sweden, and Switzerland have also tested out the idea.

Of course there are security issues to be worked out:

Viruses could be used to take over voters’ phones; rogue countries like Iran could commandeer computers and change results without our knowledge; government insiders could write software that decides who wins; denial-of-service attacks could take down the Internet on Election Day.

In 2010, researchers from the University of Michigan demonstrated this risk by attacking an internet voting pilot project in Washington, D.C.

But there may be an upside to balance out the risks: increased turnout. That has been the result in at least one of the Canadian cities that introduced i-voting:

In all, 80 Canadian cities and towns have experimented with Internet voting in municipal elections. The town of Markham, in Ontario, has offered online ballots in local elections since 2003.

An independent report by digital-strategy firm Delvinia showed that early voting increased 300% the first year Internet voting was allowed. Twenty-five percent of the people who voted online in 2003 said they didn’t vote in the prior local election, and overall turnout rose nearly 10% from 2006 to 2010, according to the report.

The link in the CNN piece appears to be broken, but you can read Delvinia’s internet voting reports here.

Internet voting still has its downsides, and current technology is a long way away from being able to provide the security necessary for widespread i-voting in the US. But with California’s existing system and New Jersey’s recent experiment, we are one step closer to the future.

What Did Manifest Destiny Look Like?

“Manifest Destiny was the belief widely held by Americans in the 19th century that the United States was destined to expand across the continent. The concept, born out of ‘a sense of mission to redeem the Old World’, was enabled by ‘the potentialities of a new earth for building a new heaven.'” (Wikipedia, citing Frederick Merk)

Now, Michael Porath has told the story of manifest destiny in a series of 141 maps. The main technical trick is that Porath designed the site in HTML5, so it has some nice interactive features. The maps appear on a single page in four columns but you can click any of them for a close-up with an explanation of the changes, or mouse-over a region of the map to see what political entity it was under at the time (e.g. unorganized territory, Spanish colony).

There are two additions that I think would help improve this project. The first is a sense of time scale–some of the maps are only a month apart (January and February 1861, for example) while others are separated by several decades (March 1921 and January 1959). Adding time would allow for a second feature: an animation that would show the areas of change and continuity over time. An excellent example of this is David Sparks’ choropleth maps of presidential voting over time.  I do not know whether this could still be done in Porath’s HTML5 setup, but it is often useful to think about changes to graphical displays (additions or subtractions) that would help to convey meaningful information. What other suggestions do you have for these maps?

What Are the Chances Your Vote Will Matter?

Only one vote matters. In the United States, the vote that gives a presidential candidate the majority in the state that tips the electoral college decides it all. Nevertheless, about 122 million US voters went to the polls for the 2008 Presidential election.

If the only benefit you get from voting is your candidate winning, this behavior is totally irrational. Voters spend precious time and effort traveling to the polls or arranging for mail-in ballots, with very small odds that this will make any difference in the final outcome. Of course, the simplest explanation is that this argument is wrong and voting can be rational, but you could also say that voting is self-expression.

In a recent paper (gated), Douglas VanDerwerken
takes a slightly different approach. He estimates a one in 2.5 million chance that his vote will matter this year, given that he lives in North Carolina (a competitive state in 2008, and likely in 2012 too).* But then he points out that, “Even if your vote does not have an effect on the election, it can certainly have an effect on you.” His broader message is that:

Statistics is not divorced from subjectivity, nor from morality. What you decide depends on your moral axioms.

We can use statistics to inform our objective calculations, and our subjective intuitions, but decision-making is not a “plug and chug” process. In summarizing data, the statistician makes important decisions about how to abstract away from reality and what message to send. When that information as inputs for further decision-making–which always involves trade-offs–the statistician bears some responsibility for the outcome. Once again we are reminded that statistics is a rhetorical practice. (See also here and here.)


*Full disclosure: Doug teaches the lab section of a Duke statistics course in which I am currently enrolled.

What is a “special interest”?

“How do you know a politician is lying?” goes the old joke. “Because his mouth is moving.”

Hans Noel, of Georgetown University, has a better answer:

How do you know a politician is being dishonest? He blames something on “special  interests.”

What is a special interest? Why, it is an interest opposed to the “general interest” or  collective will. But see items #2 and #3 above: There ain’t no such thing.

Special interests are labor and business. They are environmentalists and developers. They are pro-life and pro-choice activists. They are gays and they are fundamentalist Christians. They are you. They are me. It is hard to think of any political outcome that does not satisfy some interests and oppose others….

Yet the point remains: interests are just interests. They are not so special. The founders understood this. James Madison, in Federalist 10, worried extensively about the threats of “faction,” by which he did mean something like special interests. But Madison also understood that this was a natural feature of politics: “Liberty is to faction what air is to fire,” Madison wrote. Rather than insisting that no politician ever bend to the will of a faction, Madison advocated a system, our system, in which factions were set against each other. In a large and diverse republic, with a separation of powers, no one faction could control all of government without being checked by other factions.

This is point eight of a very good ten-point article here.

Another useful heuristic for judging a candidate’s political rhetoric is to ask yourself, “why does he/she want this job?” File this under “things to keep in mind in 2012.”