Homework 6. Google Go feasibility

Motivation

You're working for Acme Data Miners (ADM), which specializes in quickly mining useful information about large quantities of data. For example, your company's software might look at your credit-card history, discover that you've bought a chrome-skull car accessory, decide that you're therefore probably not a good credit risk, and lower your credit limit. (See Charles Duhigg, "What does your credit-card company know about you?", New York Times, 2009-05-12.)

Currently your company's data analysis system is based on a lot of shell scripts that use pipes and temporary files. For example, it might use shell code like this:

tr -cs 'A-Za-z' '[\n*]' | sort -u | comm -23 - words

to do a simple spelling checker (see the CS 35L shell scripting assignment for discussion of this example). Your actual scripts are much more complicated than this, but this is an adequate (albeit small) example of what they're like.

Your company is doing well and you're getting a lot of work to do. You're running software on big machines with lots of processors. This works reasonably well on big machines but they're expensive (especially their network file system), and you want to do the runs more cheaply, on a cluster or perhaps with cloud computing.

Your boss has just read Darryl K. Taft's article about Google Go. He suggests that you look into the possibility of translating your company's scripts into Google Go. The idea is not to do this immediately, but to think about doing it in the medium term (over the next five to ten years, say).

Assignment

Investigate the suitability of writing this sort of data-analysis software in Google Go, by translating the simple spelling example into it. Specify any assumptions you make in your translation, and any gaps or incompletenesses in your resulting implementation.

Write a two-page executive summary assessing the suitability of Google Go for improving the performance of your company's software. The summary should be in 10-point font or larger. You can put references and appendixes on a later pages, if there's not enough room on two pages (the appendixes might be useful for containing source code that you wrote). Your summary should focus on the Google Go's effects on performance, cost-effectiveness, reliability, portability (to future hardware), flexibility, and ease of use, compared to using shell scripts. It should be suitable for software executives, that is, for readers who have some expertise in software, particularly in managing software developers, but who are not experts in shell scripts or Google Go. Please keep the resources for written reports in mind.

Submit

Submit a file hw6.pdf containing your summary.


© 2009 Paul Eggert. See copying rules.
$Id: hw6.html,v 1.30 2009/11/25 21:53:09 eggert Exp $