logoalt Hacker News

Show HN: Wyzer Programming Language

60 pointsby v0id_isgoodtoday at 12:28 PM28 commentsview on HN

So i've been working on this project since a few days (or months i should say), it's called wyzer (meaning wiser) it's a statically typed, compiled, resource-oriented programming language with integrated distributed safety via choreographic programming and perceus memory model, The reason why i began this project is out of frustration from Rust, you see it does provide safety for your memory by the strict type checking but what it does not gurantee safety against are distributed deadlocks which is basically a few independent nodes or services wait permanently for resources or messages held by each other, forming a circular wait, the rest are cross-service correctness and protocol mismatch as well. If we are specific over here Wyzer works on mainly generalizing the concept of choreographic programming in a high level programming language because its the very few attempts of actually solving these gaps of safety. Instead of borrow checkers and lifetimes wyzer has linear/affine types and a perceus reference counting which is computationally much simpler for an LSP to understand as well

after 5 months of research and a few weeks of development i am soon going to release version 0.1.0 of it, if you would like to contribute to it you're most welcome!


Comments

vlovich123today at 2:45 PM

One thing I don’t understand is how you can guarantee the lack of a distributed deadlock. I’m sure it’s covered in the underlying research, but just conceptually it’s hard to picture.

What stops a choreography where Claire send a message to Bob but Bob is waiting for Alice and Alice is waiting for Claire?

Is it like Rust memory safety where not all valid programs are accepted but all invalid programs are rejected?

I think some examples of the distributed code in action on a trivial and non trivial distributed example is more compelling than a 3d donut render

show 1 reply
bckrtoday at 3:24 PM

I like the ideas a lot. The Readme needs some polish (I think it’s great that it reads as hand-written; an LLM could make suggestions that make it just 10% easier to read).

Is choreographic programming the same as session types?

hyperhellotoday at 2:04 PM

First of all, the syntax is very generic and conservative. I’m extremely positive about that. It just looks like C or Typescript or Java to me and I don’t see mysterious diacritical marks.

The next thing is, I need more examples. Read me documents can scroll forever and that’s fine. Add examples for every concept your language wants to cover to it. This is your chance to think things through and make the read me and the language astonishing.

And your AI disclaimer (or your AI’s disclaimer) makes sense.

show 2 replies
netniuqtoday at 3:24 PM

nice Rust-inspired syntax, although if the main selling point is choreography here, that isn't featured enough on web page or README. Needs more examples/explanation of how that works.

Promising insofar as all of the essentials seem to be right (for me): compiled, good type checker, no garbage checker etc.

jitltoday at 2:03 PM

Your README and docs don’t describe any of the interesting or unique things here. You cover `if` in README but not choreographic programming or perceus. Did i miss some big link?

Where’s the cool stuff?

show 1 reply
steeleduncantoday at 3:04 PM

    const MAX: u32 = 100;  // Compile-time constant
    let x: u32 = 10;       // Cannot be changed
If x cannot be changed, how does it differ (meaningfully) from a compile time constant in a safe language, ie in a case of no raw pointers
show 1 reply
pjmlptoday at 3:17 PM

No mention of the much more mature Chapel, with industry support, given the domain?

hmokiguesstoday at 2:48 PM

I saw this medium post from you https://medium.com/@atixwasfound/how-i-began-writing-my-own-...

In there it says you started this journey when you were 8 years old and that you are a 14 year old programmer

I'm not sure how I feel about this to be honest, I need to process that.

show 1 reply
andaitoday at 2:52 PM

Very interesting. Maybe this would benefit from concrete examples, of things that are difficult or impossible in other languages, but well supported in Wyzer? I see there's a few high level examples, but I'm thinking concrete scenarios with code snippets might be helpful.

pmarrecktoday at 3:04 PM

> prentensious quote

It's "pretentious."

(said pretentiously, lol)

Hey, at least we know AI didn't write it, lol

manithreetoday at 2:21 PM

docs.wyzer-lang.org doesn't resolve for me, and it's prominently linked from https://wyzer-lang.vercel.app/. Since I'm not familiar with wyzer or perceus, how would one write, say, a doubly linked list in wyzer?

show 1 reply
REDA_MAHtoday at 2:50 PM

The syntax is soooo promising but still we need more documentation. Good job anyway for doing such an amazing work with no ai

kazinatortoday at 3:10 PM

Compiler should be called Bud.

Made an error? Hold your beer, Bud's got your back: the Bud Wyzer compiler!

vsilenttoday at 1:57 PM

syntax reminds me rust labguage.

show 1 reply