Little Languages

Vol. 7 No. 1 – January 2009

Little Languages

A Conversation with Van Jacobson

The TCP/IP pioneer discusses the promise of content-centric networking with BBN chief scientist Craig Partridge.

A Conversation with Van Jacobson

Making the case for content-centric networking

To those with even a passing interest in the history of the Internet and TCP/IP networking, Van Jacobson will be a familiar name. During his 25 years at Lawrence Berkeley National Laboratory and subsequent leadership positions at Cisco Systems and Packet Design, Jacobson has helped invent and develop some of the key technologies on which the Internet is based. He is most well known for his pioneering contributions to the TCP/IP networking stack, his seminal work on alleviating congestion on the Internet, his leadership in developing the MBone (multicast backbone), and his development of several widely used IP networking tools, such as trace-route, pathchar, and tcpdump.

Now a Research Fellow at PARC (Palo Alto Research Center), Jacobson continues to do groundbreaking work. His latest work on CCN (content-centric networking) took the networking community by storm when his seminal 2006 talk, "A New Way to Look at Networking," was released on the Web as a Google Tech Talk).

Pride and Prejudice: (The Vasa)

What can software engineers learn from shipbuilders?

Pride and Prejudice (the Vasa)

A koder with attitude, KV answers your questions. Miss Manners he aint.

Dear KV,

I teach computer science to undergraduate students at a school in California, and one of my friends in the English department, of all places, made an interesting comment to me the other day. He wanted to know if my students had ever read Frankenstein and if I felt it would make them better engineers. I asked him why he thought I should assign this book, and he said he felt that a book could change the way in which people think about their relationship to the world, and in particular to technology. He wasnt being condescending; he was dead serious. Given the number of Frankenstein-like projects that seem to get built with information technology, perhaps its not a bad idea to teach these lessons to computer science undergraduates, to give them some notion that they have a social responsibility. Do you agree?

by George V. Neville-Neil

Purpose-Built Languages

While often breaking the rules of traditional language design, the growing ecosystem of purpose-built "little" languages is an essential part of systems development.

Purpose-Built Languages

While often breaking the rules of traditional language design, the growing ecosystem of purpose-built little languages is an essential part of systems development.

Mike Shapiro, Sun Microsystems

In my college computer science lab, two eternal debates flourished during breaks from long nights of coding and debugging: emacs versus vi?; and what is the best programming language? Later, as I began my career in industry, I noticed that the debate over programming languages was also going on in the hallways of Silicon Valley campuses. It was the 90s, and at Sun many of us were watching Java claim significant mindshare among developers, particularly those previously developing in C or C++.

I have always found the notion of best language to be too subjective and too dependent on the nature of the programming task at hand. Over my career, however, I have spent significant time pondering two related questions that I think are more fundamental. First, is software engineering at large being done on fewer languages over time? That is, is the set of computer languages converging? Second, what makes a particular language better or useful or more rapidly adopted for a particular task?

by Mike Shapiro

The Flaws of Nature

And the perils of indecision. The latest musings of Stan Kelly-Bootle.

The Flaws of Nature

And the perils of indecision

Stan Kelly-Bootle, Author

Multicolumnar ideas had been lurking like Greek temples in my so-called mind as 2008 came to an end. There are so many annual journalistic clich├ęs available, looking back at all our past-years mistakes and resolving never to repeat them in 2009. One annoyance that I must get off my chest here and now: Can we ban such empty constructions as X is much worse than you may think? Or Y is much simpler than many suppose? We may never have thought of X one way or the other, or made suppositions about the ease of Y, yet we tend to nod and move on as though some meaningful proposition has been asserted; and, worse, that some judgment has been validated beyond dispute. Lets learn to recognize these sneaky-weasely variations of proof by insinuation.

Those of you attracted to fine literature and literary programming may be interested in Vladimir Nabokovs devious proofs by rhyme (as well as proofs by anagram). For example, when discussing tribal antagonisms, he adds the warning: remember that stranger rhymes with danger. And so it does, but it also rhymes with manger, a place of rest for budding messiahs. The link also loses punch when you consider semantic drift: in Chaucers day danger meant aloofness! The counterexamples outnumber the examples. I invite CS pairs in both directions, such as Gates/mates and Knuth/truth. Yes, Nabokov is playfully weaving verbal conceits with no serious claim that strangers are dangerous because of a few shared syllables. Yet one must remain alert against endowing words and sounds with fanciful metalinguistic and a-historical baggage.

by Stan Kelly-Bootle

The Obama Campaign: A Programmer's Perspective

The Obama campaign has been praised for its innovative use of technology. What was the key to its success?

The Obama Campaign: A Programmer’s Perspective

What was the key to the Obama campaigns effectiveness in using information technology?

Benjamin Boer, Consultant

On January 3, 2008, I sat in the boiler room waiting for the caucus to commence. At 7 p.m. the doors had been open for about an hour: months of preparation were coming to fruition. The phone calls had been made, volunteers had been canvassing, and now the moment had come. Could Barack Obama win the Iowa caucus?

Doors closed and the first text message came from a precinct: it looked like a large attendance. Then came the second, the third, the fourth. Each was typed into our model, and a projection was starting to form. The fifth, the sixth, and now the seventh. The projection of attendance seemed solid. The Des Moines Registers poll had been correct: more than 240,000 people participated in the Iowa caucus. The numbers were astounding, and Barack Obama was going to win it. Simple technologiestext messaging combined with data analysis and PHPenabled the campaign to create a simple, yet effective, predictive dashboard.

by Benjamin Boer

Commentary: A Trip Without a Roadmap

Instead of simply imagining what your users want or need, it's always a good idea to first get their input.

ACM Case Study: RIA Development

Commentary: A Trip Without a Roadmap

Peter Christy, Internet Research Group

The associated account of the efforts made at SalesCentrix to develop a new RIA capability for an existing product is part of an effort by ACM to create something analogous to those case studies that have become so central to the modern business school experience. It's a formidable challenge. For one thing, most business school case studies at least include references to supporting documents. Often, even the underlying financials can offer some valuable clues. In this instance, however, the company in question has vanished, leaving us with nothing more than this case study to evaluate. Thus, it's impossible for me to distinguish between observations on the technical choices that were actually made by the company and the manner in which those choices have been represented in the case study. So if any of the original participants should have occasion to read this, I apologize in advance for any misunderstanding.—PC

Viewed broadly, programming projects fail far more often than they succeed. In some cases, failure is a useful step toward success, but all too often it is simply failure—effort wasted (apart from leaving the participants somewhat smarter than before, hopefully).

by Peter Christy

Case Study: Making the Move to AJAX

What a software-as-a-service provider learned from using an AJAX framework for RIA development

ACM Case Study: RIA Development

Featured Case Study: Making the Move to AJAX

What a software-as-a-service provider learned from using an AJAX framework for RIA development

Jeff Norwalk, Consultant

Small start-up companies often face a bewildering array of technical choices: how to deliver their application, what language to use, whether to employ existing components (either commercial or open source) or roll their own... and the list goes on. What's more, the decisions surrounding these choices typically need to be made quickly. This case study offers a realistic representation of the sorts of challenges a young start-up company faces when working to deploy a product on the Web. As with many startups, this is also a story that does not have a happy ending.

As fate would have it, SalesCentrix, the company at the center of this case study, was a venture that did not succeed. Work on the product discussed in this case study, AccountDynamics, was completed in 2006 while SalesCentrix was still a going concern. The company failed not long after that. Subsequently, the intellectual property rights to AccountDynamics were acquired by another fledgling organization in Vancouver, B.C. called Realm Dynamics, which ran into funding difficulties of its own in 2008.

by Jeff Norwalk

Debugging AJAX in Production

Lacking proper browser support, what steps can we take to debug production AJAX code?

ACM Case Study: RIA Development

Featured Article: Debugging AJAX in Production

Lacking proper browser support, what steps can we take to debug production AJAX code?

Eric Schrock, Sun Microsystems

The JavaScript language has a curious history. What began as a simple tool to let Web developers add dynamic elements to otherwise static Web pages has since evolved into the core of a complex platform for delivering Web-based applications. In the early days, the language's ability to handle failure silently was seen as a benefit. If an image rollover failed, it was better to preserve a seamless Web experience than to present the user with unsightly error dialogs.

This tolerance of failure has become a central design principle of modern browsers, where errors are silently logged to a hidden error console. Even when users are aware of the console, they find only a modicum of information, under the assumption that scripts are small and a single message indicating file and line number should be sufficient to identify the source of a problem.

by Eric Schrock