

Eve: the dev diary of a programming environment aimed at non-programmers - gkuan
http://lambda-the-ultimate.org/node/5156

======
danso
From the Eve announcement [1]:

> _Eve is our way of bringing the power of computation to everyone, not by
> making everyone a programmer but by finding a better way for us to interact
> with computers._

The more I try to teach programming to non-programmers, the less I understand
the notion of what "programming for non-programmers" really means...in the
same way that "writing, but for people who can't write" is a bizarre concept.

Programming, and the notion that code is an explicit way to communicate with a
computer, isn't just an inconvenient technical detail that prevents amateurs
from reaching their full computational power...it is a true way of _thinking_
, and to not be able to do it limits you in the same way that being illiterate
prevents you from creating the next American Great Novel.

I've always believed that understanding a for-loop and if-statement are all
you need to really wield the benefits of computation...but I've found that I
constantly underestimate what an epiphany is to actually grok those concepts.
It's not just the ability to abstract a routine, but the concept of a block of
stored instructions and variables that is, as far as I can tell, pretty much
alien to anyone who is not a programmer. Or a mathematician.

I'm not saying that efforts like Eve should stop, or that they can't be
significantly helpful in bringing greater understanding to non-
programmers...I'm just saying its stated goal is incoherent and inherently
unattainable, like trying to build a scientific framework aimed at people who
refuse to learn math.

[1] [http://www.chris-granger.com/2014/10/01/beyond-light-
table/](http://www.chris-granger.com/2014/10/01/beyond-light-table/)

~~~
one-more-minute
This criticism comes up every time this kind of thing is discussed, but seems
to ignore the fact that regardless of the destination (programming is a way of
thinking, fine), the journey you take to get there is important too.

Environments like Excel aren't powerful because they make programming
fundamentally easier, but exactly because they _don 't_ require you to put
yourself through the process of trying to grok for loops and if statements,
patiently waiting for an epiphany to come, before you can do anything useful.
It's just a nicer route to the programmer way of thinking.

"Programming for non-programmers" just means reducing the set of concepts and
thinking processes you have to absorb before you can do something useful –
just like Excel does. The Eve guys may or may not achieve that, but I
definitely think it's a worthwhile goal to have.

~~~
ZenoArrow
I agree it's a worthwhile goal, but perhaps one that's better tackled from a
different direction...

Instead of asking how to make programming more accessible, why not ask... What
would an evolved Excel look like?

Take cell-based formulas for example. For all their benefits, there are a few
obvious issues with cell formulas in Excel.

First, it's not always obvious where they are. You can have formulas all over
an Excel spreadsheet and it's not easy to tell at a glance where they are, so
you don't know what parts of your spreadsheets are static and which parts are
dynamic.

Second, formulas can become unwieldy very quickly. Whilst Excel formulas are
very Lisp-like, the lack of user-defined functions within Excel (you can do it
other ways) means you often have large nested functions or resort to
suboptimal methods like storing intermediate steps of a calculation in other
cells to keep the formulas manageable. The language constructs aren't designed
to enable semantically-rich yet succinct formulas, though occasionally there
are useful tricks to extend beyond what is immediately obvious (such as the
ways SUMPRODUCT has been twisted beyond its original purpose). You want to
encourage elegant creativity, rather than relying on arcane tricks.

Lastly, plenty of scope to improve performance.

All three of these issues above are very much solvable, would allow non-
professional-programmers a far nicer tool to work with, whilst unlocking more
of their creativity and the potential of the machines they're using. Seems
like it would also be a reasonable base for further research into improving
the accessibility of programming, as you could learn which concepts stick in
people's heads and which ones don't.

~~~
karmakaze
Evolved Excel was Lotus Improv on NeXT

------
siscia
I would love to see Chris success, however IMHO the should be sure that their
assumption are correct.

There are any evidence that no programmers need/want to program ?

Some of you will say that Excel is programming and it is used every day. Fair
enough, but excel is suppose to be extremely narrow in scope, definitely not
as big as Eve, and honestly the vast majority of people do not use it to
program, they use it as extremely smart database... A crucial different from a
programming language/environment...

~~~
TheOtherHobbes
VBA is the counterexample. A lot of people who wouldn't usually think of
themselves as programmers used it - sometimes still use it - to hack together
useful scripts and processors.

Ironically, it's not particularly accessible or simple. It's certainly more
complicated than 80s-style BASIC.

And the number of VBA users compared to the number of Office users is not
huge.

Even so - VBA proves that if you make a development tool accessible enough
_and obviously useful enough_ at least some non-programmers will start writing
code for it.

The challenge for something like Eve is usefulness. What's the user benefit?
To date I'm not seeing one - which doesn't mean there isn't one, just that so
far it's not obvious to me.

I can certainly understand a vision that makes technology of all kinds far
more accessible and responsive. But asking users to make their own code
probably isn't the answer there - I think it's more likely to be some kind of
contextual inference/AI/NLP system that's smart enough to make good guesses
about what users want and handles the low level stuff for them.

~~~
kyllo
VBA also sucks a lot of people into programming proper. A few years ago I
started by recording macros and then reading the code they generated, then
writing my own code. I learned what a database was by making a sales lead
tracker in Access.

Fast forward to today and I am writing scripts and building apps in ruby,
python, JS, Java, Clojure and Haskell.

~~~
jordanlev
Same experience here, although it was 15 years ago! (And I made my lead
tracker in Excel itself -- didn't move on to Access until the next project.) I
still hold on to the first VBA for Excel programming book I got back then,
purely for the nostalgia. Fun times!

Isn't it incredible that VBA is still around (and probably unchanged since the
late 90's). Bummer that MS has let Access stagnate for the past decade.

------
pka
Sounds a lot like some form of FRP. What are the differences to Elm [1] and
its support for live editing and its time-travelling debugger?

[1] [http://elm-lang.org](http://elm-lang.org)

~~~
brandonbloom
Their model is quite unlike FRP. Although Eve is evolving, it would be
illustrative to study one of their influences: [http://www.bloom-
lang.net](http://www.bloom-lang.net)

