top | item 12817789

(no title)

zenobit256 | 9 years ago

Sorry, but what about this is "designed for humans"?

What do the keywords mean? What's the language paradigm? Why do I want this when it's essentially coalescing a lot of APIs into a language that you've provided no spec for?

Why would I want my language to work with slack?!

I'm not impressed. It just looks like another functional language with a bunch of addons tacked on to make things "easier" or "for humans".

Drop the buzzwords and get to the meat please.

discuss

order

lopatin|9 years ago

There's plenty of meat in the blog post, on the Github etc. I suspect it's for "humans" because it's literate, functional programming with a REPL and a natural approach to how data is managed. It's a lot more than just a functional programming language. When did it become cool to make uninformed claims about how worthless other people's work is?

zenobit256|9 years ago

So if this is "programming for humans", all of us are just writing in some alien language because we're aliens?

When did it become fashionable to call everybody else some variant of insane or delusioned and tout your own solution?

thefalcon|9 years ago

As a counterpoint: the example of the document containing blocks of code inside what looked more like a word document, to me, exactly explains visually what "designed for humans" means in this context, and I think it's well put.

blowski|9 years ago

While I like the idea, the problem with the demo is that it has about 10 files, with a bunch of small code blocks. What does it look like in a real-world application with 1000s lines in 100s of files?

zenobit256|9 years ago

I'm sorry, but that doesn't give the connotation that it's "designed for humans". Perhaps if they could give a clear indication of what that means other than "it's in a word document", I'd be more inclined to look at it a little harder.

bpicolo|9 years ago

You can do this with Jupyter notebooks.

empath75|9 years ago

Don't think of it as a replacement for javascript. Think of it as a replacement for excel.

zubairq|9 years ago

yes I totally agree. I work with data scientists and doctors needing small workflow applications and this would be perfect for them

CorySimmons|9 years ago

Hey! That "for humans" crap worked really well for making my grid system popular! :^)

zenobit256|9 years ago

Next thing you know, we'll be marketing it as a "fresh, humanely designed, organic, farm-raised" programming language. ;)

taneq|9 years ago

"Because it will pull investors" is a perfectly valid response around here. :)

BrandonM|9 years ago

I thought the video was a good example of "designed for humans". Did you watch it?

nickpsecurity|9 years ago

The meat is that most programming languages are not designed for humans. Many weren't designed at all so much as hacked together for context they were originally used in with terrible consequences for learning or effective use by average person. C and early PHP probably lead that. Many others were affected by committee thinking, backward compatibility, preference of their designer, or the biases of people who previously used hacked-together languages. There's few languages where someone or a group sat down to carefully engineer them to meet specific objectives with proven success in the field at doing those. Examples include ALGOL, COBOL, Ada, ML for theorem proving, BASIC/Pascal for learning imperative, and some LISP's.

So, if we're designing for humans, what does that mean? It means it should easily map to how humans solve problems so they can think like humans instead of bit movers (aka machines). BASIC, some 4GL's and COBOL were early attempts at this that largely succeeded because they looked like pseudo code users started with. Eve appears to take it further in a few ways.

They notice people write descriptions of the problem and solution then must code them. The coding style has same pattern. They notice people have a hard time managing formal specs, the specifics of computation, error handling, etc. So, they change the style to eliminate as much of that as possible while keeping rest high-level. They noticed declarative, data-oriented stuff like SQL or systems for business records were simple enough that laypeople picked it up and used it daily without huge problems. They built language primitives that were similarly declarative, simple, and composable. They noticed people like What You See Is What You Get so did that. Getting code/data for something onscreen, being able to instantly go to it, modify with computer doing bookkeeping of effects throughout program, and seeing results onscreen is something developers consistently love. Makes iterations & maintenance easier. They added it. Their video illustrated that changes on simple apps are painless and intuitive compared to text-based environments with limited GUI support. Their last piece of evidence was writing their toolchain in Eve with it being a few thousand lines of code. Shows great size vs functionality delivered ratio with the quip about JavaScript libraries being bigger illustrating it further.

So, there's your meat. Years of doing it the common way, which wasn't empirically justified to begin with, showed that people just don't get it without too much effort. Then they keep spending too much effort maintaining stuff. Languages like COBOL, BASIC, and Python showed changes to syntax & structure could dramatically improve learning or maintenance by even laypersons. Visual programming systems, even for kids like with Scratch, did even better at rapidly getting people productive. The closer it matched the human mind the easier it is for humans to work with. (shocker) So, they're just doing similar stuff with a mix of old and new techniques to potentially get even better results in terms of effective use of the tool with least, mental effort possible by many people as possible with better results in maintenance phase due to literate programming.

That's my take as a skeptic about their method who just read the article, watched the video, and saw the comment here by one of project's people. I may be off but it all at least looks sensible after studying the field for over a decade.

ljw1001|9 years ago

Smalltalk was very consciously, and conscientiously, designed for humans.

agumonkey|9 years ago

I guess if you approach it as a "programming language" it's odd. I understood nothing of the syntax nor the semantics. But you have to admit that the way it relates different dimensions of a "program" is much more approachable than any IDE out there, in a way that is more "humane" I guess.

zenobit256|9 years ago

In what way is this more "humane"?

Programming languages by design are for human consumption. In what way is this "special" or "designed" for them?

machiaweliczny|9 years ago

It's high-level language so it's closer to how people think than how machines operate.

EDIT: all program has to do is to 1) get data 2) transform data 3) output data

Anything that allows to express these 3 steps using less idioms is more "human" language IMO

oldmanjay|9 years ago

Fortunately for those of us who are interested in this, impressing you was never the point.