Hellerstein’s group modified an old language called Datalog to enable it to write programs for the cloud. The problem, Hellerstein says, is figuring out how much of a program can happen simultaneously, and identifying times when it absolutely has to stop and gather information about the status of different tasks. The group is currently developing a language called Bloom to provide a “friendly way” for programmers to deal with the often complex syntax of the underlying system based on Datalog.
Hellerstein hopes that Bloom will help programmers write software for the cloud without having to step entirely away from familiar languages. Hellerstein’s group is designing Bloom as a library that can be used with popular languages such as Java and Python. Using Bloom within one of those languages would encourage programmers to design software that uses resources available in the cloud most efficiently. This also saves programmers from having to learn an entirely new language.
Georg Gottlob, a professor at the Oxford University Computing Laboratory and an expert on Datalog, says that using the language to handle Web-scale applications makes a lot of sense. When Datalog was invented, he says, “it came too early” to be used broadly due to the limited processing power at the time. With the proliferation of distributed computing, Gottlob says, the language has seen “a big Renaissance.”
“This is where the future is going,” says Elias Torres, who uses cloud computing tools at several startup companies. Several years ago, Torres was able to use a precursor of Bloom in a project to simplify a complex protocol for distributed systems. “It was enlightening, because I was able to focus on the data flowing through the system,” he says.
Nowadays, Torres says, “you need to understand how the data needs to be stored and organized and accessed in order to make progress.” Any Web application has to deal with an ever-growing magnitude of data, and Torres believes programmers will find tools like Bloom increasing useful.