Top
Best
New

Posted by v0id_isgood 19 hours ago

Show HN: Wyzer Programming Language(github.com)
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!

195 points | 106 commentspage 5
kazinator 17 hours ago|
Compiler should be called Bud.

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

imthenitto 16 hours ago||
The pitch is "one ownership rule for memory, threads, and networks," but I think there are two rules in here and they pull against each other.

The resource rule as stated is linear: once you use a resource, you can't use it again. Perceus is not that. Perceus exists precisely because values are shared — it inserts dup/drop and then reuses the allocation in place when the count happens to be 1. If everything in the language were genuinely use-once, you wouldn't need refcounting at all; a linear type system gives you the frees statically. The fact that Perceus is in the design implies aliasing is allowed, which means "one owner" is a description of the socket/interrupt layer, not of memory.

That's fine as a design — but then the elevator pitch is "two rules that rhyme," and the FAQ's central claim ("you only need to learn one rule") is the thing I'd expect to break first under contact with real programs.

Related, and more concrete: Koka and Lean get away with RC partly because their data is overwhelmingly acyclic by construction. Your README shows var bindings and mutable struct fields. Mutation plus refcounting gives you cycles, and cycles leak. What's the plan — a cycle collector, weak references, a type-level acyclicity restriction, or accepting the leak? DESIGN.md would be a good place to state it outright, because it's the first question anyone with RC experience will ask.

petrizhang 4 hours ago||
[dead]
grayrocks 16 hours ago||
[dead]
hna8hjbqzy 14 hours ago||
[dead]
xyzsparetimexyz 14 hours ago||
Yawn
dwroberts 15 hours ago||
The tests I could find for ‘choreographed programming’ were 1-2 lines long and demonstrated absolutely nothing, certainly nothing as elaborate as the research text is stating.

This is just slop

vsilent 18 hours ago||
syntax reminds me rust labguage.
v0id_isgood 18 hours ago|
this is a pretty common observation and yeah it sure is inspired by rust's syntax a bit because i have been a rust dev since quite a long time so i'm much more in favor of it's design philosophy as well
thechao 16 hours ago||
> Wyzer supports standard if/else, while, and for loops. Note that loops don't need parentheses around the condition.

But why!? You know what'd be cool? If we started supporting control statements that were a bit more sophisticated!

``` do { } while (c) { if (x) break foo; } else { case foo : ...; default : ...; } ```

v0id_isgood 15 hours ago|
open an issue we can discuss about it there :D
gokaygurcan 16 hours ago|
> see a new programing language > look inside > it's rust

asking out of my own ignorance, what's so hard with rust that you cannot convince people and contribute to that directly instead of going on your way? i remember so few of these projects survived over the years. do you think it'll really become something other than your pet project?

999900000999 15 hours ago||
Rust is just hard.

It takes the fun out of this. I like JavaScript and Python. If I need to type system, there’s always type script and C#.

I don’t care about a bunch of memory management details, and if I ever want to I might as well use C++ and become a quant.

I learn a new programming language for one of two reasons, there’s a framework or engine that requires it. For example, Godot with GD script.

Or to make more money.

Python was a very happy mix of both, I learned it to work with ML libraries as a hobby and later found it pays a lot more.

DoesntMatter22 9 hours ago||
That's a really bad attitude. "You should work on the thing you dont like instead of the one you like because it might not be successful"
More comments...