Can programming put humans first? Developers of the Eve language want to find out.
In the Eve language and IDE, programs look more like Word documents than code files. “From code embedded in documents to a language without order, [Eve] presents an alternative take on what programming could be — one that focuses on us instead of the machine,” the project’s webpage reads.
Eve is based on the principle that everything is a record, as in a set of attribute/value pairs associated to an ID. A tutorial describes it as a pattern-matching language, with patterns of data matched by searching a database, followed by updating or creation of new data.
Modern programming still forces people into the role of “bit shifting machines,” Eve’s backers say, and focusing on the machine instead of the human factors of software engineering has had its consequences. “From inscrutable error messages to semantics that require years of study to understand, we’ve landed on a version of programming that is actively antagonistic toward our goal of creating usable and robust software,” Eve’s developers said.
Eve’s design is intended to give users freedom to organize programs based on how people think rather than how code is compiled. This way, developers can weave a narrative of what a program does and why it does it. “You can write a spec and then embed the blocks of code that make it work,” the developers said. “Someone new to the project can look at the table of contents to get a sense of what’s going on and then dig into a section to add something.”
The platform features a small number of operations to query and manipulate records. Blocks, meanwhile, specify how to act when specific patterns are seen; developers do not need to specify how they are updated, cached or stored.
Eve developers see code as a liability, not an asset. “Every line adds to the surface area of potential bugs and to the pile of things that must be understood and maintained,” they said. “As long as we aren’t obfuscating intent, our goal should be to have less code.”
Eve was drawing some pushback in a comments thread on Hacker News. “I think that Eve is tackling the wrong problem,” one commenter said. All languages are designed for humans and the challenge of programming is formulating thoughts. “Should languages create higher-level abstractions to allow humans to reason about programs more efficiently? Yes! But that’s not what this environment is about.”
Another commenter was more willing to give it the benefit of the doubt. “Eve very well may be a big productivity advance over current development environments, but I don’t see it eliminating programming as a profession anytime soon.”
Eve has been in development since 2014, according to a presentation attributed to developer Chris Granger. Current tools include a temporal query language, compiler, and a database.