In the Future, We'll All Program Our Own Robots
In the future, everyone will need to know how to write computer programs, researchers think. So they're creating coding languages that are easier for untrained people to use.
CREDIT: lamnao | Shutterstock.com
A future filled with smarter devices and robots means a future full of… programming. As people's devices get more complex, they'll need to do some things that are now mostly the domain of professional computer scientists. They might need to program in behaviors for personal robots, for example. Programming skills can also help people organize their digital music or picture collections and write their own apps for things they want their smartphones to do.
Now, several researchers are thinking about how to create programming languages that will bring coding to the masses. Two $10 million National Science Foundation grants in the U.S., given out April 3, will fund projects that include some research into more accessible programming. Such languages may spread in just three or four years, researchers say.
One way scientists hope to simplify programming is by packaging up nitty-gritty details into more natural, general commands. For someone to program a robot dog to walk now, she needs to specify such minutiae as the angles of the dog's joints and the coordination of its legs, explained Insup Lee, a computer scientist at the University of Pennsylvania. Lee is part of a National Science Foundation-funded project to create robots that people can personalize and program by themselves, then print and assemble at a specialty shop. He and his colleagues will work toward automating details, so people can give their robots more general instructions, such as "lift your legs in succession" or "move your body forward." "We are to raise the level of what we call abstraction for the programmer," Lee said.
Meanwhile, Rajeev Alur, another University of Pennsylvania computer scientist who is part of a project to make programming easier for experts and non-experts, is working on making languages more resilient against mistakes and vagueness. "Most of these programming languages have these very rigid guidelines. If you make one error, the whole thing could go wrong," Alur told InnovationNewsDaily. More forgiving languages will be less frustrating to write and less costly to debug.
The way Martin Rinard sees it, the problem with popular programming languages such as C or Java is that they're made to write anything a programmer can think of. Rinard is an MIT computer scientist working with Lee on printable robots. Current programming languages are flexible but so abstract, it's difficult for untrained people to use them because they are unaccustomed to solving problems that way, he said.
To make languages more accessible, researchers will need to create more specialized languages for specific tasks, such as analyzing stocks or organizing pictures, Rinard said. He pointed to Microsoft Excel formulas as an example of a specific programming language that many non-programmers can use.
The printable robot project has just started, so Rinard, Lee and their colleagues only have a general idea of what the language to animate the robots will look like. One thing the researchers do know: "It won't be the standard type, type, type, type, type language," Rinard told InnovationNewsDaily. They plan to have a visual interface, where there might be a picture of the robot on screen, surrounded by icons representing not only the physical pieces, but also the pieces of software people can add to their personal bot.
Alur envisions easy-to-use programming platforms would let people give the computer directions in several different ways. Users might be able to tell the computer some commands by typing it in natural English sentences, but other commands they could enter as examples, which the computer can learn and generalize from. People could choose what they think is easiest for different parts of the program, which isn't possible with languages now because they take commands all in one format.
Giving a computer instructions using pictures, natural sentences and examples sounds so easy, but does it still "count" as coding? Alur, Lee and Rinard define programming inclusively. "You're instructing a computer do something in a way you can use more than once," Rinard said. "It's a reusable set of steps."
Even physically showing a robot what you want it to do still captures the "essence of programming," Alur said. "Coding it up in a language is the way we currently do [programming] but it doesn't have to be that way."