yumaikas
Joined 13 years ago
Joined 13 years ago
One big difference between Nova and -most- logic languages is that "forgetting" things is a normal part of operation. Nova is also forward chaining, rather than backtracking.
The end result ends up with Nova programs being something closer to an interpreter in a lot of cases, and writing inputs for said interpreter.
So, Nova doesn't do as much on your behalf as Prolog does, deliberately trying to be easier to reason about, and to have more predictable performance characteristics.
Nova's execution model is a lot friendlier to implement vs Prolog, for one.
One big reason reach for Nova are when I have something -very- state-machine shaped. It is quite good at that.
I'll try to come back later with more explanations
I don't quite have proper reactive/two-way data binds worked out, but grab/patch seem pretty nice as these things go. Also, the way this uses templates makes it very easy to move parts of the template around.
It's also largely injection safe because it's using innerText or value unless told otherwise.
Remote: yes
Willing to relocate: No
Technologies: C#, ASP.NET, React, Typescript, JavaScript, HTML, CSS, Tailwind, Godot, Lua, Elixir, Powershell, git, Golang
Résumé/CV: https://junglecoder.com/downloads/Resume/AndrewOwenFullstack...
email: [email protected]
The thing about Erlang behaviors is that they rely on several other pieces of Erlang to work well.
One big one is being able to be notified when another process goes down, or is aborted.
The other big one is being able to reason about state in the face of such failure.
Erlang decided to go with immutable data structures, shared nothing processes, and the OTP behaviors generally expect you to decompose the behavior of the various bits into functions that represent a single atomic step.
The more of those properties that you don't share with Erlang, the harder it will be to adopt OTP style semantics in your system.
What about blockchains would make them an effective stand-in for building trust over time? One is a ledger, the other is an interpersonal relationship, and the two really are not the same.
If I'm going to take a risk, I'd rather take a risk where there's some human expectation of managing bumps in the road, and which has some means of redress if sufficient malice is involved, instead of one where a smart contract bug means that I've lost a lot of money.
It's worth calling out that this is not an absolute value. It's definitely the predominant one, but businesses can and do exist where the core motive is to make sure that everyone working for the company shares in the success of the company equally.
And I think it is past time to be challenging that status quo
It also partly inspired my first efforts at building a scientific calculator (which would never be quite finished).
I definitely recommend it for folks who want to build context on the lower levels of computers, as a start into understanding CPUs, binary/hex, and other parts of how we tricked sand into thinking with lighting.