1. What is Bloom?  What is BOOM?
    • Bloom is a programming language for the cloud and other distributed computing systems. BOOM is the research project at UC Berkeley that is developing Bloom, as part of a larger agenda to make it easy to build distributed software systems.
  2. What is Bud?
    • Bud is the first prototype implementation of Bloom. It integrates Bloom into Ruby as a Domain-Specific Language for distributed systems. By embedding in Ruby, Bud programmers get the new advantages of the Bloom language alongside the benefits of years of software investment in Ruby libraries (gems) and tools.
  3. So is Bloom a dialect of Ruby?
    • No, Bloom is a language of its own, and is in fact Turing-complete. Bud is a Ruby-based implementation of Bloom.  We do expect in the foreseeable future that Bloom will be best “delivered” as an embedded DSL in other more traditional language environments.
  4. Do you plan to embed Bloom in my favorite language? Is that complicated?
    • As a small research group, we have no concrete plans for additional Bloom embeddings in the short term. We have done simple prototypes in the lab of Bloom embedded in a variety of languages, including Python, Scala, and Erlang (codename: Bloomerlang!). The results looked quite a bit like Bud, typically varying slightly in adopting the native syntax of each language’s support for collection types (comprehensions). So we think these embeddings are relatively straightforward, but not a priority for us at this time. If you’d like to take on the challenge, let us know!
  5. When will the Bud alpha be released? What aspects of Bud will be missing from the alpha?
    • We expect to release released the Bud alpha by early April, 2011. Known alpha limitations are listed in the Bud README, and include performance limitations and Ruby compatibility.
  6. Q: What is Dedalus and how does it relate to Bloom?
    • The formal basis of Bloom is a temporal logic programming language called Dedalus, described here. Dedalus simplifies many challenges in specifying and analyzing programs, but it is not intended for general use as a practical programming language. Dedalus grew out of our earlier work on Declarative Networking, including a language called Overlog, which was in turn based on a language from database theory called Datalog. (If you’re curious about the origin of the name Dedalus, see footnote 1 in the technical report.)
Fork me on GitHub
Set your Twitter account name in your settings to use the TwitterBar Section.