ahem, by law programming languages must have code samples on the front page
sema4hacker 11 hours ago [-]
Yes, after wandering through a few pages trying to find an example that actually did something, I gave up and moved on.
picometer 10 hours ago [-]
The code block after "Welcome" is the code sample. Very literate.
graypegg 10 hours ago [-]
Is it meant to do something? It doesn't follow the same cause/effect syntax as the tutorial, and plopping that welcome block into https://playground.nova-lang.net/ doesn't seem to do anything. I assume it's the note taking part of the syntax?
casuallyblue 10 hours ago [-]
Its not necessarily meant to do anything on its own. The text there is the same cause/effect syntax, just with slightly different delimiters. If you were to include the fact it needs to execute for the rule to work on after the code, like: "|| - Welcome to Nova! -", then the rule would execute.
graypegg 9 hours ago [-]
OH! Ok that makes more sense. `:` from the tutorial is `-` or `~`, because it's the first char after the pipe.
I do lose track after that though, in my brain, It looks like the entire second part after the second pipe character should be just one long fact assigned to the stack between tildes, but I think it's adding each one of the bullet-prefixed lines to it.
This is an unrelated synonymous language. Besides this and submitted one, there're few others found online, one[0] being 20y+ old (first release 06/2003). There's also a research one on functional parallel programming[1], but no public implementation seems to exist. (Though conceptually Futhark is similar; maybe that Nova even influenced Futhark's creation.)
*homonymous (a synonym is the opposite of a homonym)
11 hours ago [-]
BoiledCabbage 11 hours ago [-]
While I'm not clear on how it scales to more broader problems, it's nice to see a somewhat novel idea in programming languages vs the same rehash of algol derived languages.
I do think I've seen something similar. A language mainly driven off of pattern matching, but I don't recall where. Does anyone know of prior art? Or is this completely novel?
shrubble 10 hours ago [-]
SNOBOL, SPITBOL and the Icon and Unicon languages are heavy with pattern matching.
There’s a book on “Snobol for the Humanities” but it doesn’t have a strong focus on UI; everything at the time it was written used a simple terminal interface like a REPL with no advanced terminal handling.
BoiledCabbage 4 hours ago [-]
I thought it was SNOBOL I was thinking of, but then I looked up the SNOBOL syntax and that wasn't it. Then I thought maybe REBOL but that wasn't it either. Following up from a comment below it was Eve that it seemed more similar to me (at least at first view).
And also replying to one more comment below. Modal on the developer June's website reminds me of Maude. If feel like term re-rewiting languages have a really cool idea in then that are just waiting to take off. Funny enough I think Maude also has a pattern matching system like Nova. although it's I believe an unordered bag of terms to match against instead of an ordered stack.
entaloneralie 3 hours ago [-]
Did you mean the REFAL rewriting language?
jibal 10 hours ago [-]
I wrote some SNOBOL IV programs back in the day and met Ralph Griswold when he visited the UCLA Computer Club. Fun language with very interesting ideas. Looking into Unicon is on my list of things to do.
MisterTea 11 hours ago [-]
Prolog comes to mind with its facts and rules matching.
tehologist 4 hours ago [-]
I was thinking that this looks a lot like prolog or even make with rewrite terms
graypegg 10 hours ago [-]
June's (developer from the team page on Nova's site) personal website [0] points to this other interesting looking pattern-matching-based language she made called Modal [1] which seems to work on a tree rather than named LIFO stacks
So that's why I found the username and language familiar. Was exploring this site few days ago. Besides this page, there's also one on Vera[0], what appears to be Nova's predecessor (at the end there's even link pointing to a defunct wiki under Nova's domain calling it Vera wiki).
Where did you get this? Of the three implementations I see here all three have available sources, Myte and Serpens don't have licenses, and Pyra has an Unlicense open-source license.
I guess this sometime replace org-mode extensively. The idea is sound. The implementation looks good.
For instance, I love org-mode export capabilities to standard formats such as pdfs and other kinds of documents. It makes it real easy to export some formulae or docs for some feature.
Plus org-mode agenda is just superior and awesome.
keychera 5 hours ago [-]
How does this compare to Rules engine/rete algorithm? I've been developing a game on top of a rules engine and I can't help but feel very familiar reading the 4 Nova core ideas
Nice. The learn page reminded me of https://learnxinyminutes.com/ which I really liked as a quick way to get a tour of a language.
satiric 10 hours ago [-]
This feels like prolog, although I don't remember much about prolog apart from writing about 3 lines to get a CS degree. What puts this apart from prolog? (And are there, you know, reasons for using the language?)
yumaikas 10 hours ago [-]
(Nova dev here)
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
ModernMech 7 hours ago [-]
When you say "friendlier" does that also mean "less powerful"? Prolog's execution engine is very capable, so does Nova give up some of that power in exchange for friendliness or does it somehow retain it?
yumaikas 18 minutes ago [-]
Depends on what you mean by power, I suppose. Nova is Turing complete, so there's that.
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.
seg_lol 6 hours ago [-]
Is this literate Prolog for Org Mode?
155231 10 hours ago [-]
iker
almosthere 12 hours ago [-]
Did you have 3 seconds to see that there is a Nova code editor out there? (edit: this comment is about name confusion)
airstrike 11 hours ago [-]
> Please don't complain about tangential annoyances—e.g. article or website formats, name collisions, or back-button breakage. They're too common to be interesting.
Who would confuse a programming language and a text editor?
throwaway613745 9 hours ago [-]
[dead]
jibal 10 hours ago [-]
Even if that mattered, you could express it without being rude.
escanda 12 hours ago [-]
Most likely has a language server thus interoperable with most editors out there. Some config might be necessary though.
casuallyblue 9 hours ago [-]
No LSP yet, but we do have a tree-sitter grammar
11 hours ago [-]
bobanrocky 4 hours ago [-]
The glory days of programming languages are coming to a close. Within the next 5 years, most non-specialized coding will be AI generated. The underlying programming language will likely be python or JS, some Java maybe
Rendered at 04:33:19 GMT+0000 (Coordinated Universal Time) with Vercel.
I do lose track after that though, in my brain, It looks like the entire second part after the second pipe character should be just one long fact assigned to the stack between tildes, but I think it's adding each one of the bullet-prefixed lines to it.
[0] https://nova-lang.net/introduction-to-nova/sight/#sometimes-...
[0]: http://www.navgen.com/nova/index.html
[1]: https://research.nvidia.com/publication/2013-07_nova-functio...
I do think I've seen something similar. A language mainly driven off of pattern matching, but I don't recall where. Does anyone know of prior art? Or is this completely novel?
There’s a book on “Snobol for the Humanities” but it doesn’t have a strong focus on UI; everything at the time it was written used a simple terminal interface like a REPL with no advanced terminal handling.
And also replying to one more comment below. Modal on the developer June's website reminds me of Maude. If feel like term re-rewiting languages have a really cool idea in then that are just waiting to take off. Funny enough I think Maude also has a pattern matching system like Nova. although it's I believe an unordered bag of terms to match against instead of an ordered stack.
[0] https://june.codes/
[1] https://wiki.xxiivv.com/site/modal
[0]: https://wiki.xxiivv.com/site/vera.html
EDIT: seems to be open source, just isn't mentioned on the website https://forge.nouveau.community/nova
https://nova-lang.net/implementations/
Not convinced the language would actually be useful, but I like the ideas for portability.
[0]: https://forge.nouveau.community/nouveau/serpens/src/branch/m...
[1]: https://forge.nouveau.community/yumaikas/myte/src/branch/mai...
For instance, I love org-mode export capabilities to standard formats such as pdfs and other kinds of documents. It makes it real easy to export some formulae or docs for some feature.
Plus org-mode agenda is just superior and awesome.
In https://nova-lang.net/implementations/
> Pyra: Runs on Lua
> Serpens: Runs on Python
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
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.
https://news.ycombinator.com/newsguidelines.html