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>)
In case you missed it, this project is no longer being actively developed: <a href="https://groups.google.com/forum/#!msg/eve-talk/YFguOGkNrBo/EozaCfheAQAJ" rel="nofollow">https://groups.google.com/forum/#!msg/eve-talk/YFguOGkNrBo/E...</a>
Thoughts on why this project was dumped by investors:<p>I think the problem they really had from the beginning was they were pressuring themselves to innovate in an industry that is already decades old. You can't raise $2 mil and not feel the pressure to perform, and sadly this is not how innovation works. So instead they kept releasing prototypes that didn't really make sense or remotely scale:<p>- turning sql into graphs that made a 2 line statement take up the whole screen<p>- the database language that had no performance characteristics at all<p>- the bouncing ball demo that seems to only be made to create a bouncing ball, and yet doesn't add more understanding to the process anyway<p>- the imperative language written in 'english' (but of course only accepts the english words and specific grammar the software understands) and so on.<p>Not trying to be harsh, but this is probably a good thing. Once they take a break and move on to other things, a ton of ideas will no doubt come flooding in, just because they aren't under the same scrutiny and pressure anymore.
I was just reading about Light Table's denouement and how Eve was in a way its successor, and now I find Eve has gone about the same way. It looks like both projects foundered because the problems they addressed --- representing code in non-linear ways with changes live-propagating through the system's state --- are very, very hard, apparently harder than Chris et al. realized.<p>In retrospect, their harsh words about our current languages and tools representing a 1970s mindset come across as hubris.
This is no longer an active project...
<a href="https://twitter.com/with_eve/status/956258695049981952" rel="nofollow">https://twitter.com/with_eve/status/956258695049981952</a>
Odd that its not mentioned on their site though?
Eve was a great idea, I’d love to see a community take it up after the business behind it folded. (I think v0.2 was the last version with the whole stack that had been built to that point working; v0.3 had engine improvements but I don't think ever had the dev environment, and v0.4 was a complete rewrite in Rust that I don't think ever got to a releasable state, though there were some demos before they went mostly silent for a while and then closed up shop.)
I'm a huge advocate of bringing usability/ergonomic considerations to programming languages. That said, I have strong opinions about syntax decisions that hinder those goals.<p>For example, writing out words instead of using symbols is easier to understand at first glance, but it's much harder to skim (even after becoming familiar with the language). SQL is a really hard language to skim. Of course, the opposite end of the spectrum (C is close) is also hard to skim.
I love this idea. I've always thought the disconnect between documentation and code felt a bit repetitive.<p>Why not write a Markdown doc that compiles to code? Especially with a system like Rails, where so much can be auto-generated. Obviously this isn't for mission-critical or new ideas, but for putting your CRUD app into the world, it makes total sense.
Discussion from original release in 2016 (nearly 400 comments): <a href="https://news.ycombinator.com/item?id=12817468" rel="nofollow">https://news.ycombinator.com/item?id=12817468</a>
The IDE has some interesting ideas but I'm not convinced that the language itself is actually particularly intuitive. I would love to see a JavaScript IDE (Atom extension?) with features like<p>- "Prose-style", where comments are a first-class citizen and code lives inside blocks. Seems like this would go a long way to encourage thorough commenting.<p>- The checkbox-style thing, where you can easily mix different pieces from different files on the screen at once. That was incredibly slick. The general idea of abstracting code constructs away from the literal files they live in is something that's been bouncing around in my head for a while.<p>- The state export was pretty cool, though it's not clear to me that could easily be implemented without controlling the language itself.
> An IDE like Medium, not Vim<p>Sorry. You lost me here. If you don't understand <i>why</i> so many developers are so committed to Vim, then I don't believe you understand how actual developers (not beginners) interact with code well enough to replace it.
I think it's very strange that it isn't actively developed anymore. It had some really gushing reviews. What's keeping people from taking over the implementation?
The thing where this fall apart is try to get away from imperative, predictable code.<p>That will NEVER (ie, to be on mainstream) work for large scale software OR attract non-experts.<p>Try to make a "virtue" a "callback-hell" with other names is a futile idea (apart some specific scenarios). If is hard to debug, is hard to have a mental model of it, period.<p>---<p>The other parts of the idea sound well, but is not clear how the magic is made or how create the "data store".
One problem with literate programming: a large portion of the industry hates to document, and thinks that comments are EEEEVIL. Not me, but many.<p>I would love to see something like literate programming become more mainstream, though. Even little things like having to repeat parameter names in a block above a function/routine, rather than simply next to each parameter, seems like it’s harder than it ought to be.
The action-response mechanism reminds me of the Easel programming language:<p><a href="http://www.eslsyndetic.com/Documentation/overview_of_responses_and_their_uses.html" rel="nofollow">http://www.eslsyndetic.com/Documentation/overview_of_respons...</a><p>It was a cool model, if a bit ahead of its time. Good to see the idea living on.
I really don't understand projects like this. Why can't people just <i>learn to code</i>, in an actual programming language? To me this is like instead of teaching people to read and write you teach them to draw pictures and use emojis instead.