Live data from Hacker News

How Eve unifies your entire programming stack

hackernoon.com

101–109 of 109 posts

Re: How Eve unifies your entire programming stack

#101
post #7
post #5

The part I'm most skeptical of is Eve's universal use of set-based semantics, whether it's needed or not. It seems like making sets and single values look different in the code would be more understandable than making everything look the same. Treating them as different types might be a good way to catch errors, too. But SQL is very successful so maybe they'll do okay anyway.

You can kinda roll your own "single value type": search a = [#singleton] b = [#singleton] a != b commit @error [#error #description: "Multiple values for singleton!"] I'm sure that's not the actual pattern you'll be using. My point is only that Eve provides a solid low-level foundation to implement higher-level patterns like a single-value type.

"My point is only that Eve provides a solid low-level foundation to implement higher-level patterns like a single-value type."

That's the problem. As long as single-value type is a higher level abstraction you are going in the opposite direction from "programming for everyone".

Re: How Eve unifies your entire programming stack

#102
post #99
post #75

Earlier quoted context omitted.

Everyone that does applications that require OS APIs, interaction with external devices, factories, embedded, air gaped desktops, care about the UI/UX of the user. Native UI isn't a synonym for mobiles.

The phrasing/example in article is very web-oriented. But can you imagine interacting with your native UI toolkit as an Eve database, similar to how @browser works? Or your external devices over a protocol, similar to how @http or @mqtt works?

Yes, it was called Lisp Machines,Mesa/Cedar and Smalltalk.

Re: How Eve unifies your entire programming stack

#103
post #62

I was keeping a close eye on Eve until it changed direction from programming for everyone to yet another lisp . Is there any writeup/discussion on why this happened? I do like learning about mind-expanding languages, and something resonated with me when the CardWiki interface was revealed. I get that this language is very 'human readable' but at the end of the day if I want to read or write it I will actually have to…

I just wanted to respond to your comment, even though I see you posted later in this thread that you re-read Chris' post in a different light.

In developing Eve, we faced a problem of getting involved in too many research projects. How do you make a new language and a new interface to that language at the same time? It was very hard, and in the end we realized it was a mistake to take this route. For instance, how do you version control and make unit tests for a card wiki UI?

Instead, we are developing the language first, getting that to a point where it's stable, well defined, and actually used by people. In order to do this, we needed an interface that was also well understood and defined, and the only choice there really is a textual syntax. This has several benefits:

1: we know how to make a textual interface. We've made many, and there really aren't too many questions there.

2: people know how to use textual interfaces and there are tons of tools out there to work with them

3: developers in particular, the people who will be using our language first, are comfortable with textual interfaces

4: we can still provide some innovation here, and make Eve exciting to work with for the people who want to use it this way.

The obvious drawback is that we're not making a huge leap in programming interfaces this way. But that's okay, since we're making progress in another direction that really is a prerequisite to bringing computation to everyone. When Eve the platform is better understood, we'll tackle the even bigger hurdle of an interface that appeals to more than just developers.

Re: How Eve unifies your entire programming stack

#104

Earlier quoted context omitted.

Did you guys notice that both of your examples use sigils? Try Avail[1]: allChecked = select element from todos list where [element is completed] allNotChecked = select element from todos list where [element is not completed] todoCount = count of element in todos list where [element is completed] I'm cheating a tiny little bit: `todos list` would probably need to be defined above as a method (I don't remember if one…

> Did you guys notice that both of your examples use sigils? As the person that initially mentioned sigils, I did not say that they are always evil. I just said that you cannot use them and at the same time claim that you have a human-centered fully intuitive programming language. I'm very fine with using -> symbols for anonymous functions... In fact, I'm fine with other sigils as well, if they are explained properly…

> I did not say that they are always evil.

Of course not; but they are not human-readable. I thought that the posters above me used Ruby and C# examples to say that they (Ruby and C#) may be human-readable. I'm not sure if that was the intention, so I just noted that -> and &: are also sigils.

> So you're doing something else, or your language is misleading me.

It's the former! However, it's what the two posters before me did in Ruby and C#. The fact that all three of us misinterpreted the Eve code is interesting in the context of this discussion...

Correct Avail code would look like this:

    areAllEntriesChecked ::= (count of element in todos where [element is checked])→boolean
Anyway, that's not "my language" at all, I just happen to know quite a bit of strange languages and wanted to share info on one with an interesting take on readability. They call it "articulate programming", which seems to be an evolution of Knuth's literate programming.

Re: How Eve unifies your entire programming stack

#105

Not convinced either way whether having the same interface for all of the stack is a good idea or not, but it did remind me of Joel Spolsky's blog post on leaky abstractions http://www.joelonsoftware.com/articles/LeakyAbstractions.htm...

Man, if Joel were blogging today he'd be dominating the HN front page...

The thing is, Eve isn't an abstraction layer over your existing layers, it's a set of choices you can make layer-by-layer to swap out the old "unique" way of doing things with Eve's more uniform way of doing things. The unique way was arbitrary anyway.

Like, if the whole world all decided to start speaking Esperanto, that wouldn't create too much of a leaky-abstraction issue.

The one issue I can see is how to scale when you use it as your database layer and make fancy queries. But every database's query engine has its own implementation challenges and I don't think Eve is special in that sense.

Re: How Eve unifies your entire programming stack

#106
post #7

Earlier quoted context omitted.

You can kinda roll your own "single value type": search a = [#singleton] b = [#singleton] a != b commit @error [#error #description: "Multiple values for singleton!"] I'm sure that's not the actual pattern you'll be using. My point is only that Eve provides a solid low-level foundation to implement higher-level patterns like a single-value type.

"My point is only that Eve provides a solid low-level foundation to implement higher-level patterns like a single-value type." That's the problem. As long as single-value type is a higher level abstraction you are going in the opposite direction from "programming for everyone".

I don't see the problem with having a beginner-oriented interface rest on an extra abstraction layer.

Eve : Markdown :: Eve-based tools for everyone : a WYSIWYG editor

Re: How Eve unifies your entire programming stack

#107
post #51

Title : "your entire programming stack". I feel sad when I find that web programmers think there are only web stacks and "programming" refers only to web programming. It is not entirely the case here, but the description of "a core system" as : - Database layer - Remote API layer - Application layer made me tick.

Yeah, this concern crossed my mind when writing the post.

Did you have a specific alternate "core system" you'd prefer I had written about?

Re: How Eve unifies your entire programming stack

#108

Earlier quoted context omitted.

> Did you guys notice that both of your examples use sigils? As the person that initially mentioned sigils, I did not say that they are always evil. I just said that you cannot use them and at the same time claim that you have a human-centered fully intuitive programming language. I'm very fine with using -> symbols for anonymous functions... In fact, I'm fine with other sigils as well, if they are explained properly…

> I did not say that they are always evil. Of course not; but they are not human-readable. I thought that the posters above me used Ruby and C# examples to say that they (Ruby and C#) may be human-readable. I'm not sure if that was the intention, so I just noted that -> and &: are also sigils. > So you're doing something else, or your language is misleading me. It's the former! However, it's what the two posters befo…

> However, it's what the two posters before me did in Ruby and C#.

Ha! You seem to be right about the Ruby, I missed that too. The C# looks correct to me, though: https://msdn.microsoft.com/en-us/library/bb548541(v=vs.110)....

Re: How Eve unifies your entire programming stack

#109
post #93

Earlier quoted context omitted.

> I mean even most of the mobile people were web devs once... What makes you think that? Most native UI developers I know have never been web devs.

I don't know if I'm right, but I only met web devs who've gone mobile when the hype started

You do realize there is a lot more to computing than "web" and "mobile", I hope?
Post reply on HN