alt.hn

12/8/2025 at 3:03:09 PM

Nova Programming Language

https://nova-lang.net

by surprisetalk

12/8/2025 at 5:33:10 PM

ahem, by law programming languages must have code samples on the front page

by ajkjk

12/8/2025 at 6:02:02 PM

Yes, after wandering through a few pages trying to find an example that actually did something, I gave up and moved on.

by sema4hacker

12/9/2025 at 4:49:59 AM

This was especially confusing to me when I clicked on the "try" button and was dropped into a page with an empty text box. Most playgrounds I've seen before at least have a "hello world" there. There's a run button, but it's not particularly useful with an empty file!

by saghm

12/11/2025 at 11:04:48 PM

If this was released in April, I'd assume it was a joke: no va, no go... Not Go.

by butvacuum

12/8/2025 at 6:03:44 PM

The code block after "Welcome" is the code sample. Very literate.

by picometer

12/8/2025 at 6:20:03 PM

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?

by graypegg

12/8/2025 at 6:26:31 PM

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.

by casuallyblue

12/8/2025 at 7:21:07 PM

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.

by graypegg

12/8/2025 at 6:07:32 PM

A caption for that sample, indicating it is one, would help.

by macintux

12/8/2025 at 7:41:34 PM

It's there, but yes the home page is very confusing. I lost interest very fast.

by user2342

12/8/2025 at 9:24:20 PM

I found some example code on their github https://github.com/dan-online/Nova

by guywithahat

12/8/2025 at 11:01:33 PM

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

[0]: http://www.navgen.com/nova/index.html

[1]: https://research.nvidia.com/publication/2013-07_nova-functio...

by forgotpwd16

12/8/2025 at 11:51:25 PM

*homonymous (a synonym is the opposite of a homonym)

by xigoi

12/9/2025 at 5:36:28 AM

Are you sure that a synonym is the opposite of a homonym, rather than say, the logical inverse corollary of a homonym? I'd think "the opposite of a homonym" would just be a word spelled differently from the target word, no?

by anonym29

12/9/2025 at 10:24:51 AM

A synonym is a different word with the same meaning. A homonym is the same word with a different meaning.

by xigoi

12/11/2025 at 3:05:36 PM

A homonym is not the same word. Homonyms include both homographs, which are still two different words with different meanings, just spelled the same way (e.g lead[verb] and lead[noun]), and homophones, which are also still two different words with different meanings, just pronounced the same way (e.g. there and their). That said, homonyms also includes word pairs that are both homographs and homophones like "bat", being the animal, the verb, and the baseball equipment (presumably among other uses).

by anonym29

12/14/2025 at 12:35:29 PM

Apparently there are sevecal conflicting definitions. The ones I’m using are:

Homograph = same spelling, different meaning

Homophone = same pronunciation, different meaning

Homonym = same spelling and pronunciation, different meaning

by xigoi

12/14/2025 at 4:51:18 PM

Seems to be one of the cases that the academic definition has been simplified in public (quite like theory/hypothesis from science) use and, consequently, adopted by dictionaries making it canonical for many. So your definition is correct from theoretical linguistics perspective but dictionaries also give the broader umbrella definition GP mentions. Ironically dictionaries may've been the reason this distinction was blurred with early lexicographers grouping homographs (logically, spelling in text not relevant) and homophones under an homonym heading.

It's also interesting checking their (Greek originating) etymologies and morphologies. Homo- from omós meaning same, -graph/-phone/-onym from gráphō/phōné/ónoma (ō becoming represented by letter ω in modern Greek) meaning writing/sound/name. And, syn-, equivalent to prefix co-, is from syn (preposition) meaning jointly/together. So respectively, literal meanings, being same writing, same sound, same name, co-named.

Hence about hom/synonym, their difference comes from "name" and "word" being distinct concepts. More specifically, in (Aristotelian) philosophy "name" was tied to essence of things, synonym being "same name, same essence" *, homonym being "same name, different essence". In time "name" and "word" were conflated. Moreover synonym evolved semantically, only retaining the "same essence" as "same meaning", and homonym retained its form. Result being one term being about "many words to same meaning" and the other about "one word to many meanings"**.

*So by ancient philosophy my choice of synonym will've been accurate! But you're right they stand opposite, both then and now.

**And then there's the homonym/polysemy distinction for specifying unrelated/related meanings, essentially reviving Aristotelean essence, and the reason why in dictionaries some words (e.g. bank, see[0]) have multiple entries each with multiple meanings.

[0]: https://www.merriam-webster.com/dictionary/bank

by forgotpwd16

12/9/2025 at 10:15:00 AM

True, thanks. Had forgot this term even existed.

by forgotpwd16

12/8/2025 at 5:33:03 PM

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?

by BoiledCabbage

12/8/2025 at 5:35:11 PM

Prolog comes to mind with its facts and rules matching.

by MisterTea

12/9/2025 at 9:04:15 PM

Even more so it reminds of Dialog [0], a Prolog specialized for interactive fiction and sort of the Z-Machine object system.

There's also some cross-over with how (parts of) Inform 7 works under the hood.

[0] https://linusakesson.net/dialog/docs/index.html

by WorldMaker

12/9/2025 at 12:29:53 AM

I was thinking that this looks a lot like prolog or even make with rewrite terms

by tehologist

12/8/2025 at 6:12:00 PM

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.

by shrubble

12/9/2025 at 12:31:14 AM

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.

by BoiledCabbage

12/9/2025 at 1:19:21 AM

Did you mean the REFAL rewriting language?

by entaloneralie

12/8/2025 at 6:33:42 PM

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.

by jibal

12/8/2025 at 6:23:23 PM

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

[0] https://june.codes/

[1] https://wiki.xxiivv.com/site/modal

by graypegg

12/8/2025 at 9:13:03 PM

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

[0]: https://wiki.xxiivv.com/site/vera.html

by forgotpwd16

12/9/2025 at 1:06:32 PM

XL[0] or its derivative Tao3D[1]? Regardless I think XL is a fascinating language. Being a Lisp person I find it neat when a language manages to write its core language constructs in itself.

[0]: https://xlr.sourceforge.io [1]: https://tao3d.sourceforge.net

by MarsIronPI

12/8/2025 at 4:58:37 PM

Some code snippets here: https://nova-lang.net/introduction-to-nova/sight/

EDIT: seems to be open source, just isn't mentioned on the website https://forge.nouveau.community/nova

by ivanjermakov

12/8/2025 at 5:17:09 PM

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.

https://nova-lang.net/implementations/

by oersted

12/8/2025 at 5:37:54 PM

I like the idea of a "markdown for logic", with transpiliation to lots of different easy backends such as javascript.

Not convinced the language would actually be useful, but I like the ideas for portability.

by geenat

12/8/2025 at 4:38:55 PM

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.

by escanda

12/9/2025 at 5:40:07 AM

I'll give this a try but at first glance through the guides it appears to be missing a way to ergonomically output specific states. I haven't run it yet but I'm guessing it logs everything that happens which will get verbose unless asked for.

A while back there was a rewrite language that was posted (white on black theme site) that was similar but more geared towards coding problems and less on lit programming. I don't remember the name but it was equally as interesting. If anyone recalls what it was it'd be greatly appreciated.

Anyway if the creator is lurking here, examples demonstrating more practical, real world problems (even if still somewhat small) would go a long way.

by junon

12/9/2025 at 8:27:15 AM

> A while back there was a rewrite language that was posted (white on black theme site) that was similar but more geared towards coding problems and less on lit programming. I don't remember the name but it was equally as interesting. If anyone recalls what it was it'd be greatly appreciated.

https://wiki.xxiivv.com/site/pocket_rewriting.html

by incanus77

12/9/2025 at 5:03:41 PM

Yeah, I was like "rewrite language on a black & white site? I know this!" There can't be that many.

by incanus77

12/9/2025 at 12:50:30 PM

Oh very cool, not what I was thinking of but it definitely fits my description. The one I was thinking of was text/code based. Thanks, this looks fun too.

by junon

12/8/2025 at 5:00:41 PM

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.

by arniemiller

12/8/2025 at 11:52:19 PM

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

by keychera

12/8/2025 at 7:33:13 PM

What's it for?

by LennyHenrysNuts

12/8/2025 at 8:57:14 PM

Prolog-style programming

by Koshkin

12/8/2025 at 10:24:02 PM

Is this literate Prolog for Org Mode?

by seg_lol

12/8/2025 at 6:10:03 PM

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?)

by satiric

12/8/2025 at 6:16:59 PM

(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

by yumaikas

12/8/2025 at 9:23:17 PM

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?

by ModernMech

12/9/2025 at 4:15:24 AM

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.

by yumaikas

12/9/2025 at 6:17:07 AM

I think the focus on the state machine may be the problem. I don't know much about prolog, or why it doesn't really enjoy more status in the programming world, but I suspect that while it is good at repesenting states, it is not very useful for writing programs...

Case in point, the pong programs. Looking at the impl, vs a <50 line js impl, this looks more like an assembly language for state, not necessarily something that makes state more visible or readily apparent...

Having a nice dialect for a (is this formally provable?) state machine is nice, but I'm not convinced founding the language from state machines is the correct approach vs merely using a fluent library e.g. https://stately.ai/docs/xstate

Not saying that I'm correct, but would be interesting to hear more of the philosophy of why Nova, vs just a simplisitic implementation of some card game rules...

by smaudet

12/8/2025 at 6:40:37 PM

[flagged]

by 155231

12/9/2025 at 1:52:26 PM

[flagged]

by geldedus

12/8/2025 at 4:42:16 PM

[flagged]

by almosthere

12/8/2025 at 5:25:27 PM

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

https://news.ycombinator.com/newsguidelines.html

by airstrike

12/8/2025 at 6:39:07 PM

Even if that mattered, you could express it without being rude.

by jibal

12/8/2025 at 5:28:04 PM

Who would confuse a programming language and a text editor?

by gkbrk

12/8/2025 at 7:17:43 PM

[dead]

by throwaway613745

12/8/2025 at 4:44:42 PM

Most likely has a language server thus interoperable with most editors out there. Some config might be necessary though.

by escanda

12/8/2025 at 7:15:03 PM

No LSP yet, but we do have a tree-sitter grammar

by casuallyblue

12/9/2025 at 12:49:00 AM

[flagged]

by bobanrocky