Live data from Hacker News

How Eve unifies your entire programming stack

hackernoon.com

71–80 of 109 posts

Re: How Eve unifies your entire programming stack

#71
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 get that this language is very 'human readable' I wonder why people say/think that. The language uses sigils like @ and #. Sigils automatically make a language non-"human readable" since they have no "human meaning". And no, "you just have to learn the meaning of the language constructs and then you can read it" is not "human readable" in a useful sense. From what I gather, in Eve the @ sign refers to databases.…

Eve is based on pattern-matching and is set-oriented. So

  all-checked = [#todo completed: true]
would match each of the records with both topic: 'todo' and completed: true. And the following commit block would once per matching record. But what is desired here is one value for all the matching records (an "aggregate" in Eve lingo).

Personally I think we would be much better off with a dedicated aggregate function instead of using if/else here. And count (which is an aggregate function), should have a default value for when no records match. Then could get rid of the if/else there also, and have something like:

  all-checked = all[#todo completed: true]
  none-checked = none[#todo completed: true]
  todo-count = count[given: [#todo completed: false], default: 0]
Disclaimer: I'm just an Eve user/contributor

Re: How Eve unifies your entire programming stack

#72
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.

My startup Velox.io ( https://velox.io , which is looking to go live in the next couple of months) is working on the same issue. Right now writing code is overly verbose (and often brittle). The author does make some good points around unifying API, Database and Application code. Most code is centred about moving data from A-B, with some logic applied to it. Eve done some interesting stuff, as has Linq from .net, AWS…

Is that true though? To me, the difference between a simple spreadsheet and say, a floppy bird, is that the spreadsheet requires one to know about rows and columns, and basic math (sum, average). It's a pretty simple abstraction that matches, say, a sheet of paper with a list scribbled on it.

Whereas, say, flappy bird, requires you to think about a lot of other abstractions one is less familiar with, and juggle those. User input, graphics. I think it's the complexity of abstraction and the difficulty of reasoning about it and juggling all the bits in your head, that makes it hard. I think that's a skill you really have to have or learn. Just because some people van add two cells doesn't mean they can easily create their own abstractions f.ex

Re: How Eve unifies your entire programming stack

#73
post #71

Earlier quoted context omitted.

> I get that this language is very 'human readable' I wonder why people say/think that. The language uses sigils like @ and #. Sigils automatically make a language non-"human readable" since they have no "human meaning". And no, "you just have to learn the meaning of the language constructs and then you can read it" is not "human readable" in a useful sense. From what I gather, in Eve the @ sign refers to databases.…

Eve is based on pattern-matching and is set-oriented. So all-checked = [#todo completed: true] would match each of the records with both topic: 'todo' and completed: true. And the following commit block would once per matching record. But what is desired here is one value for all the matching records (an "aggregate" in Eve lingo). Personally I think we would be much better off with a dedicated aggregate function inst…

Thinking about it, it is possible that this proposal would not work, because in the nothing-matches cases then the function would not be executed at all... But maybe this could work, by widening the matching pattern.

  all-checked = all[in: [#todo], where: [completed: true] ]
  none-checked = none[in: [#todo], where: [completed: true] ]
  todo-count = count[in: [#todo], where: [completed: false], default: 0]

Re: How Eve unifies your entire programming stack

#74
post #58
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.

Same here when they refer to front-end as a synonym for Web UIs, as if there wasn't quite a few of us doing 100% native UIs.

how much percent of front-end devs do 'only' native UIs?

I mean even most of the mobile people were web devs once...

Re: How Eve unifies your entire programming stack

#75
post #74
post #58

Earlier quoted context omitted.

Same here when they refer to front-end as a synonym for Web UIs, as if there wasn't quite a few of us doing 100% native UIs.

how much percent of front-end devs do 'only' native UIs? I mean even most of the mobile people were web devs once...

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.

Re: How Eve unifies your entire programming stack

#76
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 get that this language is very 'human readable' I wonder why people say/think that. The language uses sigils like @ and #. Sigils automatically make a language non-"human readable" since they have no "human meaning". And no, "you just have to learn the meaning of the language constructs and then you can read it" is not "human readable" in a useful sense. From what I gather, in Eve the @ sign refers to databases.…

maybe I should have said supposed to be human readable. I share your sentiment. I saw a comment on here once justifying that claim by saying something along the lines of "but if you look at the text and ignore the symbols you get the gist", which is not the original promise of Eve in my opinion [0]

Edit: found the source: [0] https://news.ycombinator.com/item?id=12819973

Re: How Eve unifies your entire programming stack

#77
I'm glad there are people rethinking how we develop programs. But as a web developer, the examples in Eve looks more complex then a naive implementation using vanilla CSS, HTML and JavaScript would look like, for example, how do you make something 10 pixels wider in Eve ?

Re: How Eve unifies your entire programming stack

#78
post #74
post #58

Earlier quoted context omitted.

Same here when they refer to front-end as a synonym for Web UIs, as if there wasn't quite a few of us doing 100% native UIs.

how much percent of front-end devs do 'only' native UIs? I mean even most of the mobile people were web devs once...

> 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.

Re: How Eve unifies your entire programming stack

#79
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…

It should not take you more than 1h to learn Eve...

Re: How Eve unifies your entire programming stack

#80
post #69

Earlier quoted context omitted.

> I get that this language is very 'human readable' I wonder why people say/think that. The language uses sigils like @ and #. Sigils automatically make a language non-"human readable" since they have no "human meaning". And no, "you just have to learn the meaning of the language constructs and then you can read it" is not "human readable" in a useful sense. From what I gather, in Eve the @ sign refers to databases.…

Yeah that's awful. In Ruby it'd be like: all_checked = todo.select(&:completed?) none_checked = todo.reject(&:completed?) todo_count = todo.count(&:completed?)

In C#

  var allChecked = todos.All(todo -> todo.IsCompleted);
  var noneChecked = todos.None(todo -> todo.IsCompleted);
  var todoCount = todos.Count(todo -> todo.IsCompleted);
Post reply on HN