The language, Dog, is designed to reduce the complexity of existing programming languages.
While
it takes just a few keystrokes and mouse clicks to post a tweet on
Twitter or “friend” someone on Facebook, it may require thousands of
lines of code to accomplish the task.
Dog,
a new programming language, could make it easier and more intuitive to
write all sorts of social applications—anything from peer-to-peer
question-and-answer sites to online dating. And because Dog incorporates
natural language, this may make it easier for newbies to learn to code,
too.
MIT Media Lab professor Sep Kamvar,
who developed Dog with the help of some graduate students, hopes to
release the language in a private beta version in the next few
months, and offer a public release of it in the spring.
Dog
emerged from Kamvar’s frustration with existing programming languages,
such as Java, which he felt were needlessly difficult to use to write
code governing social interactions. Things that were easy to describe in
English—such as a command to notify a person of something—had to be
thought of in terms of data storage and communication protocols when he
sat down to write it in code.
“I
had to write code at a lower level of abstraction than I had to think
about the interactions,” he says. “And so I thought it would be
interesting to start writing a programming language that allowed me to
write
at the same level of abstraction that I think.”
Kamvar
started working on Dog by defining specific challenges he has with
traditional programming languages when building social applications,
which include identifying people and talking and listening to them. He
came up with some ideas for solving these problems with a new
programming language—for example, to make it easier to identify people,
he made people a basic data type that the language could recognize, just
as other languages recognize strings of text or integers.
Then
he created a simple syntax around these ideas that uses natural
language (since the language deals with coordinating and
communicating with people) and focused on a small set of very clear
commands: ask, listen, notify, and compute. A sample line of code in a
simple social news feed application reads, “LISTEN TO PEOPLE FROM mit
VIA http FOR posts,” which would have the application monitor the Web
for updates from a group of MIT-affiliated people.
While
all these things can be done in other programming languages, Kamvar
contends it’s not generally very easy. And users can import functions
from other programming languages, Kamvar says, so interaction design and
social processes can be written in Dog while other functions can be
written in another language.
Over
the past year,
Kamvar and students have been developing the Dog compiler—the software
that turns code into a task that a computer will execute—and writing
demo programs in the language to test it out such as a Twitter-like news
feed. One is a peer-to-peer teaching-and-learning platform called Karma
that works within a user’s extended social network; it is expected to
be publicly available by next summer.
Dog
will be free and open source, so users will be able to add to it and
modify it as they wish. And while Dog is a server-side language, which
means it relies on sending data to a server in order to execute tasks,
the group is also building a client-side version.
Kamvar is likely to face some Dog skeptics, such as Robert Harper,
a computer science professor at Carnegie Mellon University who studies
programming language theory. While Harper says it makes sense to create
languages that are easier for non-coders to understand, he doesn’t see
programming for social computing as a niche that needs to be filled. And
though a language such as Dog may start out as being geared toward a
special type of coding, “you invariably get involved in more complex
issues, and if you’re using a language that’s coded to stereotypical
scenarios, it quickly breaks down,” he says.
While Kamvar
emphasizes that he doesn’t see Dog as natural language programming in
the vein of, for example, Wolfram Alpha or Inform 7, the inclusion of
natural language phrasing should make Dog more easily understood by
non-programmers, such as interaction designers or product managers at
startups, who often come up with ideas about what needs to be done but
then must wait for a software engineer to make those changes to the
company’s code.
More
generally, Dog could make it simpler for anyone to program or at least
understand what’s going on behind the scenes of a website. Despite the
attention paid to online code-learning startups like Codecademy, not
much attention has been focused on the fact that programming may just be
harder than it has to be, Kamvar says.
“Maybe
that attention should go toward designing programming languages that
are inherently more learnable, but still industrial strength,” he says.
No comments:
Post a Comment
Note: Only a member of this blog may post a comment.