We are bobbing on a sea of data, using our electronic devices to stay mobile and afloat. Each device requires software in order to operate, and the sheer number of users imagining new ways to use these gadgets—and the ease of creating instructions that tell the hardware what to do—almost guarantees that software will always be a step ahead of the machines running it.
“Pretty much everyone is able to write software these days,” says Srini Devadas, a professor in MIT’s Department of Electrical Engineering and Computer Science. “They may not realize it, but formatting in a word processing program or writing commands and scripts in Excel is doing a kind of rudimentary programming.”
It’s second nature for digital natives to spend an afternoon updating and reconfiguring their Facebook presence, and they can easily share their creations with their friends—who modify them even further. Conversely, “designing hardware from scratch or even redesigning it is very difficult for the ordinary person,” says Devadas. “In order to build something like an iPad or even the integrated circuits that go into our devices requires design knowledge, raw materials, and a manufacturing technology.” Plus, Devadas add, “It’s harder to share hardware. If I build a radio, I’d have to give you the physical object. But I could email you—and 10,000 other people—a program I’ve written, and they could all improve it.”
One challenge Devadas regularly sets for his students is to improve the efficiency of software so that every increase in functionality does not require an upgrade in hardware. Devadas teaches a course on software engineering (where students do a bit more than post updates on FB or create spreadsheets), and encourages his students to think through the challenges of hardware performance, which can inhibit the proper display of their creations that include games. “The hardware lags because it’s not capable of running the functionality fast enough,” he says.
When it comes to gaming and a software solution just won’t cut it (or you’re not able to take Devadas’s class and figure it out), he suggests you employ a partial hardware solution: “Just pop out the graphics card and replace it with a new one,” he says. New cards provide enough processing power to achieve the high speed required in gaming.—Sarah Jensen
Thanks to 8-year-old Vignesh from India for this question.