Skip to Content

How the Apple II Taught Programmers To Economize

The guts of the Internet of Things are being synthesized by programmers who cut their teeth on the earliest PCs.

Imagine trying to program a virtual machine - a software instance that mimics all the characteristics of a physical computer - on a device with 2 kilobytes of RAM. (For those of you not used to thinking in these terms, that’s one two-millionth the number of kilobytes of RAM that the average computer ships with today.)

That’s what Thorsten Kramp had to do when creating a virtual machine that could run on a smartcard. He and his colleagues are now using the same expertise to program for another resource constrained environment: the tiny environmental sensors or “smart dust” that his employer, IBM, hopes businesses and individuals will deploy all over the world in order to realize the long-anticipated Internet of Things.

Memsic’s IRIS mote will be powered exclusively by IBM’s Mote Runner software, although Mote Runner isn’t exclusive on IRIS.

These “motes,” as they’re sometimes called, are no bigger than a key fob and run on small batteries or harvested (e.g. solar) energy. The ones Kramp has been working with, the Memsic IRIS motes, have 8 kb of RAM and 64 kb of flash or eprom storage.

Coincidentally, most commercially available motes have about the same specs as the 1977-era Apple II designed by Steve Wozniak himself.

“In a sense I never grew up,” says Kramp. “I started with an Apple II […] Ten years ago I came to IBM Zurich [a branch of IBM Research], and I worked on a virtual machine implementation on a smartcard.”

Over the course of a few years, Kramp and his team built up - or in some sense re-discovered - the skills required for extreme code economization. It’s the kind of programming not seen since the days of the original hackers in the Artificial Intelligence lab at MIT run by Marvin Minsky, whose exploits were made famous in Steven Levy’s Hackers.

This is the kind of bytecode-level programming that is unreadable by the overwhelming majority of programmers, and requires a complete and total understanding of the machine in question.

Underside of the Memsic IRIS mote

Which is the entire reason that Kramp decided to create a virtual machine for the motes that will power the Internet of Things in the first place: who wants to learn how to program in bytecode for every new mote that a manufacturer decides to create?

“We came a long way since the Apple II,” says Kramp. “By using different programming languages, the skill-set you have to develop is much smaller.”

IBM’s Mote Runner software platform, written from scratch so that it can work on such tiny devices, allows programmers to code for motes using Java, a widely-used language familiar to most programmers. It’s a far cry from the integer BASIC of the first Apple II - written by Steve Wozniak - or the upgraged BASIC of the Apple II plus, produced by Microsoft.

Keep Reading

Most Popular

Large language models can do jaw-dropping things. But nobody knows exactly why.

And that's a problem. Figuring it out is one of the biggest scientific puzzles of our time and a crucial step towards controlling more powerful future models.

The problem with plug-in hybrids? Their drivers.

Plug-in hybrids are often sold as a transition to EVs, but new data from Europe shows we’re still underestimating the emissions they produce.

Google DeepMind’s new generative model makes Super Mario–like games from scratch

Genie learns how to control games by watching hours and hours of video. It could help train next-gen robots too.

How scientists traced a mysterious covid case back to six toilets

When wastewater surveillance turns into a hunt for a single infected individual, the ethics get tricky.

Stay connected

Illustration by Rose Wong

Get the latest updates from
MIT Technology Review

Discover special offers, top stories, upcoming events, and more.

Thank you for submitting your email!

Explore more newsletters

It looks like something went wrong.

We’re having trouble saving your preferences. Try refreshing this page and updating them one more time. If you continue to get this message, reach out to us at customer-service@technologyreview.com with a list of newsletters you’d like to receive.