Live data from Hacker News

How Eve unifies your entire programming stack

hackernoon.com

21–30 of 109 posts

Re: How Eve unifies your entire programming stack

#21
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's Lambda's, even Kx's Q in the way it handles temporal data.

My hypothesis that writing software can be greatly improved; There is a lack of programmers, yet most people are capable of creating spreadsheets (and writing formulas). Using spreadsheet is similar to programming, what makes programming much more complex is the different systems involved and lack of rapid feedback.

People have been trying to make programming easier/ accessible since the days of Hypercard, but no one has really cracked yet.

Edit: Downvote if you will (I've spent years on this), at least write a comment to say why.

Re: How Eve unifies your entire programming stack

#22

Earlier quoted context omitted.

Why does it need to be without overhead in order to be accurate that it unifies the entire stack?

Because to qualify as "the entire stack", you need to be able to talk to the kernel efficiently, which in practice means: call into C without overhead. I have no problem with what Eve is doing, but it's not "the entire stack" and with Eve's paradigm, never will be. And that's okay—just stop calling it "the entire stack".

Can Eve modify CPU microcode without any overhead? If it can't, then "your entire programming stack" is excluding a lot of stuff I can't be bothered to enumerate.

Also relevant: "To bake an apple pie from scratch, first one must blah blah universe blah" -- Sagan

"Entire stack" is relative to the interests of the audience, not a description of the entire dependency chain. If you're claiming that YOU go around modifying the kernel, then yes, a language that doesn't do that won't replace YOUR entire stack. (And, conversely, some people have, as their "entire stack", less layers than in this post (for example, maybe their web-app uses no dynamic server-side routes/state/etc, and so it's just static assets plus super-heavy frontend JS). For such a webapp, there's less unifying possible to do, because there were less layers to start with.)

But the stack they describe in TFA is a very common "entire stack" for a team to have to deal with. It's very common to just take all the C/C++ bits (kernel, libs, rdbms, probably some webserver, and so on) as given-and-immutable, and to work at the layers above that: DB-contents, backend, web-API, frontend, etc.

I have no claim about whether or not Eve solves these problems. I do think that their linguistic use of "unifies your entire programming stack" is entirely justified, in context.

Re: How Eve unifies your entire programming stack

#23
post #3
post #2

Yeah until I really see some practical applications written in Eve I don't think I'm ever going to really get it. It's nothing against Eve, it might be great, but nothing I've seen about it so far as really captured my imagination and I'm wondering if I'm just missing something.

[Eve member] Out of curiosity, what would you classify as a practical application? We're looking for some interesting examples to build to help show Eve to folks. EDIT: For instance, one of the examples we're throwing together now is an app that a food truck owner could use to put up their menu, manage a queue of orders (in person and online), alert people when their order is ready, accept payments, and post to socia…

Example apps are great. But what those example apps are, and what they mean, can vary a lot. Some things that would help, for me:

- Exhaustive inline documentation. Like, consider literate-programming as a model. I want to see thoughts, observations, etc. as I read through the code. I want to know how you think somebody should be thinking. I want notes around "well, because of the way the stdlib works this is O(n^3) when it could be O(n^2), but it's okay for our values of n, we can come back to this." Show me not just what's good, but what kinda isn't but is made up for by other stuff being awesome. Show me where the bodies are buried. Because otherwise, sticking to stacks where I already know and can risk-assess against is a better use of my time.

- Deployment advice. This doesn't mean "throw it in a Docker container", because that's not showing a grasp of the tools around you, but rather, say, open-ended integration with AWS, or Google, or whatever. Show me best practices for configuring it, as I already can see with Rails. And, as above, explain the thinking, explain the value of it, discuss alternatives and why you didn't go that route.

Ultimately, I want to see that whatever tools that I would move to next (I use Ruby for devops-type tasks and Dropwizard for the web) to demonstrate that the developers are intensely thoughtful about the people using their systems, rather than just technology.

HTH.

Re: How Eve unifies your entire programming stack

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

This is actually the most elegant aspect of Eve. You're always working with an abstract/fuzzy value that represents all possible values given some constraints, and only have to resolve a concrete instance when you absolutely need to. More often than not, were working with ordered sets, not single elements.

Yes. I'm with the idea of a relational language, and I "discover" the same idea. In most languages,the scalar is the default and the collection is the special case. However, more often than not, you want to operate in collections than scalar.

So, I have find that this kind of code make sense:

    for i in 1:
        print i
This help to generalize a lot of things.

Re: How Eve unifies your entire programming stack

#25
post #15
post #10

I'm excited for Eve and next-gen programming languages but as details emerge, it seems like it could easily have been a few libraries and an architecture pattern in most other functional programming languages. When I first learn about things like the continuation monad or CQRS, I have similar reinvent-the-world fantasies but it's often sufficient to expand my toolkit and change my style (in full disclojure ;-), my de…

I think your point is valid in general, but Eve's semantics are deeply rooted in Logic Programming. IMO that's a more fundamental change than what we can hope to get from layering a pattern/library/architecture on top of an existing database or programming language.

Just seems like it sells poor man's Prolog as a "fundamental change". Anyone to dismiss my confusion?

I mean, you can throw HTML around cobol/io/cl/sql/sed with the same wow-effect?

Re: How Eve unifies your entire programming stack

#26
post #25
post #15

Earlier quoted context omitted.

I think your point is valid in general, but Eve's semantics are deeply rooted in Logic Programming. IMO that's a more fundamental change than what we can hope to get from layering a pattern/library/architecture on top of an existing database or programming language.

Just seems like it sells poor man's Prolog as a "fundamental change". Anyone to dismiss my confusion? I mean, you can throw HTML around cobol/io/cl/sql/sed with the same wow-effect?

Check out this 2009 research paper that Eve is based on; it's an important new extension to logic programming: https://databeta.wordpress.com/2010/01/05/introducing-dedalu...

Also please let me know what you think about Part II (coming later this week). It's all about logic programming and CQRS.

Re: How Eve unifies your entire programming stack

#27
post #25
post #15

Earlier quoted context omitted.

I think your point is valid in general, but Eve's semantics are deeply rooted in Logic Programming. IMO that's a more fundamental change than what we can hope to get from layering a pattern/library/architecture on top of an existing database or programming language.

Just seems like it sells poor man's Prolog as a "fundamental change". Anyone to dismiss my confusion? I mean, you can throw HTML around cobol/io/cl/sql/sed with the same wow-effect?

Prolog itself has many issues, many of them rooted in its somewhat unrestricted use of terms. The nice thing about datalog is that it has very nice strong normalization as a natural property of term evaluation. While it's true that it doesn't do everything, this combined with controlled dataflow has long been an interesting area of PL research.

Eve is definitely not the first to have realized this but it's attention to making it fit in with modernized ideas around interactive computing are noteworthy. The translation of a lot of these ideas into this context requires a lot of careful thought so I wouldn't trivialize it as a lesser version of something.

Re: How Eve unifies your entire programming stack

#28
post #3
post #2

Yeah until I really see some practical applications written in Eve I don't think I'm ever going to really get it. It's nothing against Eve, it might be great, but nothing I've seen about it so far as really captured my imagination and I'm wondering if I'm just missing something.

[Eve member] Out of curiosity, what would you classify as a practical application? We're looking for some interesting examples to build to help show Eve to folks. EDIT: For instance, one of the examples we're throwing together now is an app that a food truck owner could use to put up their menu, manage a queue of orders (in person and online), alert people when their order is ready, accept payments, and post to socia…

That's a good example that shows the capability, but complete apps like that have been built with scheme, haskell, lisp, prolog, smalltalk, etc. I think what the original poster is asking tho they most likely won't admit it, is for a runaway profitable app. Once you have an app built with this that get's popular with millions of users or makes tons of money then people take it serious. The app you plan on throwing together is more than enough. If this works as has been written, it would become the secret weapon of the smart programmers.

Re: How Eve unifies your entire programming stack

#30
post #3
post #2

Yeah until I really see some practical applications written in Eve I don't think I'm ever going to really get it. It's nothing against Eve, it might be great, but nothing I've seen about it so far as really captured my imagination and I'm wondering if I'm just missing something.

[Eve member] Out of curiosity, what would you classify as a practical application? We're looking for some interesting examples to build to help show Eve to folks. EDIT: For instance, one of the examples we're throwing together now is an app that a food truck owner could use to put up their menu, manage a queue of orders (in person and online), alert people when their order is ready, accept payments, and post to socia…

A basic PDF reader?
Post reply on HN