In July, Google released a trial version of new software, called the
Google App Inventor, intended to let people with no previous programming
experience design applications for phones that use Google’s Android
operating system. The software has provoked much commentary in the
technology press, and Google has been trumpeting it as a way to give
people direct control of their own phones. But App Inventor is the
latest outgrowth of a tradition of MIT research that dates back at least
40 years.
The App Inventor project was led by Hal Abelson, the Class of 1922
Professor of Computer Science and Engineering, who spent a sabbatical
year at Google as a visiting professor. Instead of having to write
traditional computer code, users of App Inventor can create programs by
snapping together virtual, color-coded instruction “blocks.” For
instance, to add a button to an application, the user would drag the
button block into App Inventor’s workspace window and determine the
button’s visual properties by selecting from pull-down menus. Then, to
determine what the button will do, the user would snap a block that
defines a function — like emitting a noise, or making a phone call, or
changing the screen’s background color — into the button block.
The App Inventor blocks are based on the MIT master’s thesis of Ricarose
Roque, for which she built a general version of a programming interface
that Eric Klopfer, the director of MIT’s Teacher Education Program, had
developed for a simulation program called StarLogo. StarLogo, in turn,
began as the PhD thesis of Mitchel Resnick, who heads MIT’s Media Arts
and Sciences Program, and whose graduate advisors were Abelson and
Seymour Papert, a pioneer of educational computing.
Papert, who came to MIT in 1963, is most famous for inventing Logo, a
simple computer language designed to introduce young children to the
principles of programming. Initially, programs written in Logo would
guide a robot with a pen attached to its undercarriage — a “turtle” —
across a sheet of paper, executing a drawing. In the late 1960s, when
Abelson was a graduate student at MIT, he helped Papert begin testing
the system in Boston-area schools.
From Logo to Lego
“You really have to try hard to get into the mindset of that time,
because a computer in those days was something that cost several million
dollars,” Abelson says. “And the idea that you would take the most
advanced computing research equipment around anywhere, and you would let
fifth graders … start playing with it, it was just mind boggling. For
the first 10 years of that, people just thought we were nuts.”
But that changed in the 1980s, Abelson says, when personal computers
started invading elementary- and secondary-school classrooms. Many of
today’s software-company executives first learned the principles of
programming from a later version of Logo, in which a virtual turtle
executed drawings on a computer screen.
Resnick’s PhD thesis was an extension of Logo called StarLogo, which
enabled the interaction of hundreds or even thousands of turtles in
complex simulated environments. “I was particularly interested in issues
around emergent phenomena and decentralized systems,” Resnick says. “How
do bird flocks work? How do the individual actions of individual birds
lead to the behavior of a flock? Or how do ant colonies work? Or how do
traffic jams form? Or how do market economies work, where there’s lots
of individual buyers and sellers, but you get these larger-scale
patterns that develop? I was interested in helping people understand how
large-scale patterns arise from lots of local interactions. That’s
always been a very difficult thing for people to understand. So the idea
was to try to provide a way for people to play with those ideas by
giving very simple rules to lots of individual objects.”
After graduating, Resnick became a professor in the MIT Media Lab, where
he began developing a Logo-like system that would allow children to
program robots built from Lego bricks with electromechanically activated
moving parts. The project ultimately resulted in Lego’s Mindstorms kits.
But along the way, an undergraduate named Andy Begel, who’s now at
Microsoft Research, developed a graphical programming language — a
precursor to the App Inventor’s programming blocks — as a way to let
kids program their Lego robots more intuitively.
Crosstalk
Begel’s system influenced the software for Mindstorms, and Resnick and
Klopfer have continued to expand on its central ideas, for two different
projects. Klopfer’s is a 3-D adaptation of StarLogo called StarLogo TNG,
which can be used to build video games, among other things. Resnick’s is
Scratch, a successful educational system, launched in 2007, that allows
children to design their own interactive stories and games for the Web.
“We’ve been able to stay in touch about what’s going on, and we’re now
having a chance to revisit what we were doing and making version two of
both of our projects,” Klopfer says. “We made some different design
decisions along the way, and I think that was really great as research
projects, because we can really learn from each other’s successes and
failures.”
For
her master’s thesis, Roque decoupled Klopfer’s programming blocks from
StarLogo, so that they could be reused in other software systems — and
indeed, they were the basis for the App Inventor programming interface.
And because Scratch is so popular — hundreds of thousands of registered
users have used it create more than a million projects — members of
Resnick’s group have been consulting with Google about how to build an
online community around the system.
But beyond using actual code that was developed at MIT, Abelson says,
the Google App Builder project was also motivated by the same philosophy
that drove Papert’s “nutty” experiments in the 1960s. “It strikes me
that most of the people who are teaching introductory programming have
gotten out of step with the reality of how kids experience computing,”
Abelson says. “It’s not about sitting at a desktop computer. It’s about
these incredibly powerful computers that you now carry around with you
that can do location-aware things, and they can find your friends, and
they can make phone calls and do other stuff. App Inventor, as an
educational program, is about giving young people who are trying to
learn about computing power over the real computing that they’re using
in their lives.”