One of the more interesting parts (to me) about Eve wasn't the interactive programming or the literate programming, but that it included a database inside of the programming language. Most programming languages think of a database as a thing separate to it (I think Smalltalk is an exception).<p>Hence, they needed language constructs to make it easier to talk to databases. As a result, Eve was inspired by the Bloom language being researched at Berkeley, which was in turn inspired by an old language called Datalog. In it, they take constraints of a declarative language (like SQL) and use it to make distributed computing a lot easier.<p>"Our main data-structure was now a tree of tables. Rather than one big top-level function, we switched to a pipeline of functions. Each function pulled data out of the global store using a datalog query, ran some computation and wrote data back. Having less nesting reduced the impact of lexical scope and cursor passing. Using datalog allowed normalising the data store, avoiding all the issues that came from hierarchical models.<p>At this point we realised we weren't building a functional language anymore. Most of the programs were just datalog queries on normalised tables with a little scalar computation in the middle. We were familiar with Bloom and realised that it fit our needs much better than the functional pidgin we had built so far - no lexical scoping, no data-structures, no explicit ordering. In late March we began work on a Bloom interpreter."
<a href="http://incidentalcomplexity.com/2014/10/16/retrospective/" rel="nofollow">http://incidentalcomplexity.com/2014/10/16/retrospective/</a><p>Here's a talk by Peter Alvaro (doing research with Bloom) about it, and I had to watch it 4 to 6 times to really get everything out of it. He makes a shout out to Eve at the end (<a href="https://www.youtube.com/watch?v=R2Aa4PivG0g" rel="nofollow">https://www.youtube.com/watch?v=R2Aa4PivG0g</a>).<p>The Bloom guys are the same guys that released the paper to Anna, the KV store just 11 days ago. (<a href="https://news.ycombinator.com/item?id=16551072" rel="nofollow">https://news.ycombinator.com/item?id=16551072</a>)