Live data from Hacker News

Eve: Programming designed for humans

programming.witheve.com

281–290 of 401 posts

Re: Eve: Programming designed for humans

#281

Earlier quoted context omitted.

This milestone is very much about making a programming environment, so you're right, that's still code. Though to address this strawman, compare that to what you would write in Java or even Python. Some of the best comments we've gotten is when we've shown people eve code and told them to ignore the symbols, just read the words. Their eyes really open up and they tell us pretty exactly what the block is doing. No, it…

The "ignore the symbols and just read the words" idea is part of Ruby's promise as well. In practice, I don't personally find it very satisfying, because it's easy to write things that read like they do one thing, but actually do something else. So you have to train yourself to ignore what it says until you figure out what it does . I think the better metric to optimize for is how easy it is to go from seeing a piece…

> I think the better metric to optimize for is how easy it is to go from seeing a piece of code for the first time to having a mental model for what its runtime behavior will be

Actually yes, we've seen some evidence of this. In one instance, I was demonstrating the syntax of Eve to someone who really only had experience programming HTML, and he was able to point out a bug in my code without even running the program.

I believe this is because the syntax is very minimal, there are very few core language operations (only 9), and the underlying data model is completely consistent throughout the language (everything is a record). You can only query and update records. When you only have a few consistent tools, you can wield each one with greater confidence.

Also, in Eve if you want to know what a block does you can just ask for the output right next to the block, so there's no guessing. You can look at it as text, a table, a chart, or any number of visualizations you can come up with. When you have the output and the source code right next to each other, updating in real time, and recompiling automatically as your code changes, you can get a better sense for what each individual part does in a block of code. You can even point at a specific element and ask "What draws this". We hope that all of these features will encourage new users to feel the freedom to explore, make mistakes, and build their own mental model of how Eve works, without having to understand set theory.

Re: Eve: Programming designed for humans

#282

I think that Eve is tackling the wrong problem. Allow me an analogy: "Bronk, the math designed for humans." Instead of dense algebraic expressions like "3x+49", you get to write "thrice the value of x plus 49." You may consider this a straw man, but I think that if you look hard at existing programming languages, you'll see that they are all designed for humans, and that the challenge in programming is in formulating…

"..rather than specify programs precisely, we give examples to an approximate system and hope for the best."

I agree with this, as it has the most potential to bring an entirely new paradigm to software development.

I've been working on a research project like this, using genetic algorithms to write programs. Unit tests are used to guide the fitness. The AI discovers a solution program that satisfies the test cases.

Using Artificial Intelligence to Write Self-Modifying/Improving Programs

http://www.primaryobjects.com/2013/01/27/using-artificial-in...

Re: Eve: Programming designed for humans

#283
post #2

Hi All! Many of the folks here have been following us for a long time and we're really excited to finally pull everything together to show you all where our research has taken us. Eve is still very early [1], but it shows a lot of promise and I think this community especially will be interested in the ideas we've put together. As many of you were also big Light Table supporters, we wanted to talk about Eve's relation…

I've been following Eve for awhile and I'm impressed with the progress! A bug: that flappy bird program listing caused the page to flicker for me. It seems like the content is being repainted over and over. I'm on a Nexus 5x using the stock Chrome. Scrolling that block a ways off the screen made the flickering stop, but it came back when I scrolled back up. Hope this is helpful!

Thanks yeah, that helps. It's going to be a little shaky on mobile right now, but we'll be making the experience better in future builds.

Re: Eve: Programming designed for humans

#284
post #56

Earlier quoted context omitted.

Honestly I think this looks excellent for exposing children to programming.

I humbly disagree. My kid is going to get something totally straight forward imperative and easy to begin with, something in the realm of «one print "I am the best", two goto one». I strongly believe these are the basic building blocks which make everything else easy to understand, and they give you a good feeling about how the things work at the bare metal.

I think it's a shame that QBasic isn't bundled with Windows anymore. That was how I got started, on some old 486s in my chemistry/programming teacher's classroom, and it was really a fantastic integrated programming experience, very simple, but with room to do some really cool things. I remember that by the end of a year, a friend and I made a really terrible, but mostly working, version of Slime Volleyball, with graphics and even some basic MIDI sound effects.

Re: Eve: Programming designed for humans

#285
post #2

Hi All! Many of the folks here have been following us for a long time and we're really excited to finally pull everything together to show you all where our research has taken us. Eve is still very early [1], but it shows a lot of promise and I think this community especially will be interested in the ideas we've put together. As many of you were also big Light Table supporters, we wanted to talk about Eve's relation…

Are values/records in Eve immutable?

They are immutable after a search action, but you can mutate records and values after a bind or commit action. Here is one of the docs on the "add operator", which adds values to a record: http://docs.witheve.com/handbook/add/

The set operator sets a value on a record: http://docs.witheve.com/handbook/set/

These values can be literals, or even other records.

Re: Eve: Programming designed for humans

#286

I think that Eve is tackling the wrong problem. Allow me an analogy: "Bronk, the math designed for humans." Instead of dense algebraic expressions like "3x+49", you get to write "thrice the value of x plus 49." You may consider this a straw man, but I think that if you look hard at existing programming languages, you'll see that they are all designed for humans, and that the challenge in programming is in formulating…

There's still code here, the text is just for people, so I wonder if this is maybe a misunderstanding. The language presented is a variant of datalog and is as formal as any other language. If you're curious in the semantics, they boil down to Dedalus [1]. As a simple example of that, here's a clock: http://play.witheve.com/#/examples/clock.eve [1]: https://www2.eecs.berkeley.edu/Pubs/TechRpts/2009/EECS-2009-...

Documentation is, just like all things, only sometimes useful. I dont see much value in designing your entire platform around documentation. There are plenty of instances where heavy documentation is a complete waste of time.

Re: Eve: Programming designed for humans

#287
post #254

Earlier quoted context omitted.

That's what I was thinking. I'm a human, I like my Vim and C. The main limitation of a language like that is that, if you care about performance at all, you have to program for the machine first, not for humans. You're always writing for both to some extent. For me this is the main challenge of programming; writing code that executes efficiently and correctly, and that is legible to humans. I love Python and other hi…

I'm not so sure. Granted, I might write html in vim, but I'd prefer writing Markdown or ReStructuredText. We could have a (subset of) full html in the hn comments - but it'd likely get in the way, rather than be helpful. Medium is a nice way to publish some text with images. Note the "with images" part. Vim is a much better text editor, but I don't think it's a very good hypertext editor. I don't necessarily need WYS…

God bless you for being the only one on this comments page (as of right now) to mention HyperCard.

Re: Eve: Programming designed for humans

#288

The first question I always ask, and often the most deadly: How do you handle version control, and merge conflicts? If you don't have that figured out, none of the rest of this matters. Because a programming language designed for one developer isn't designed for building software.

What exactly is going to be the problem when all version control systems do is merge based on text differences? Also the block separation here could actually be used semantically and provide better merging than for existing languages.

I said handling merge conflicts, not handling merges.

The ergonomic presentation of a three way merges is not a solved problem in text-based programming languages, but you have to have something if you want more than one developer working on a single project.

Re: Eve: Programming designed for humans

#289
post #2

Hi All! Many of the folks here have been following us for a long time and we're really excited to finally pull everything together to show you all where our research has taken us. Eve is still very early [1], but it shows a lot of promise and I think this community especially will be interested in the ideas we've put together. As many of you were also big Light Table supporters, we wanted to talk about Eve's relation…

So your defense of literate program gives, as a defense, what I would think of as an attack on literate programming: Take this strawman for instance, how could you find the bug in the following code without the accompanying comment? // Print every other line of the array to the console for (var i = 0; i Because the problem with that is that now you have two competing sources of authority -- the comment, and the code.…

> Print every other line of the array to the console

The odd or even lines? I don't think English is going to replace programming languages anytime soon.

Re: Eve: Programming designed for humans

#290
post #143

Fantastic work. The 'story-like' literate programming is the direction in which programming will (should) move in the future imho. Visually, you could explore the idea of 'literal-visual' programming (just invented), something like: commit [#imageFor #student "student-icon.jpg"] Then have a button to toggle between rendering records as text and 'visual' records, in which "[#student ] is replaced with a pictogram. Now…

"The 'story-like' literate programming is the direction in which programming will (should) move in the future imho." Check out Inform 7, too.

I've tried to get into Inform 7, but I spend more time trying to finesse the natural-ish language around to get it to do what I want it to do, compared to the more archaic, C-like Inform 6.
Post reply on HN