Earlier quoted context omitted.
Pony and Rusts' solutions to the concurrency problem are almost identical - forbid shared mutability through the type system. In what way are they very different?
I am not an expert in Rust's mechanics and only looked at it superficially, but I got the impression that shared references can't be guaranteed (to not exist in mutable ways) all the way through an object graph. I am not surprised if I am wrong about that. It wasn't the main deciding factor for me... My primary factor was "Actor Model" and I was struggling with Erlang's lack of static types, so that put Pony in the f…
Pony – High-Performance Safe Actor Programming
61–70 of 159 posts
Re: Pony – High-Performance Safe Actor Programming
#62Earlier quoted context omitted.
Pony and Rusts' solutions to the concurrency problem are almost identical - forbid shared mutability through the type system. In what way are they very different?
I am not an expert in Rust's mechanics and only looked at it superficially, but I got the impression that shared references can't be guaranteed (to not exist in mutable ways) all the way through an object graph. I am not surprised if I am wrong about that. It wasn't the main deciding factor for me... My primary factor was "Actor Model" and I was struggling with Erlang's lack of static types, so that put Pony in the f…
Re: Pony – High-Performance Safe Actor Programming
#63I just spent 5 min going through the website reading about pony and its goals and use cases. I still have no idea what actual Pony code looks like and I'm not sure where to click to find it. I even clicked the link "learning pony." Of all the places to see at least a hello world, I'd like one there please. When I am checking out a language for the first time, I like to at least see a sample of what I'll be committing…
https://tutorial.ponylang.io/getting-started/hello-world.htm...
Re: Pony – High-Performance Safe Actor Programming
#64it's really frustrating seeing these programming languages websites where you have to click in a million place before you can even see what the code looks like
Do you have some examples of programming language websites you do like?
This is the best page I have seen so far.
Re: Pony – High-Performance Safe Actor Programming
#65How does Pony relate to Joule? They seem to be on a continuum, what with Actors, object capabilities etc.
Re: Pony – High-Performance Safe Actor Programming
#66Earlier quoted context omitted.
Pony and Rusts' solutions to the concurrency problem are almost identical - forbid shared mutability through the type system. In what way are they very different?
I am not an expert in Rust's mechanics and only looked at it superficially, but I got the impression that shared references can't be guaranteed (to not exist in mutable ways) all the way through an object graph. I am not surprised if I am wrong about that. It wasn't the main deciding factor for me... My primary factor was "Actor Model" and I was struggling with Erlang's lack of static types, so that put Pony in the f…
- Statically verified to be unique (&mut)
- Dynamically verified to be unique (RefCell)
- Behind a lock (Mutex, RwLock)
- Explicitly opt into weaker (but still consistent) guarantees (atomics)
- Some other abstraction built on those primitives (like channels)
Unsafe does exist, but it's something that the code must explicitly opt into, and they rules that must be followed are generally "the same" across the whole Rust ecosystem (rather than just accidentally stumbling into something that is OK in "normal" Scala but breaks some weird Akka rule).
In any case, the language enforces that you are self-consistent: if you use locks as your escape hatch for something then the code won't compile if you try to access it without an active lock.
Re: Pony – High-Performance Safe Actor Programming
#67Would Pony be a good choice for writing a backend for a web app? What's it like talking to a DB?
Most web apps generally need a lot of libraries to be "a good choice". Pony is lacking in libraries for "web development", so you'd need to do a lot of work that you wouldn't in other languages.
That's the case with most areas with Pony. You'll invest time in developing libraries you wouldn't in many other languages. In return, you get the nice list of "why pony" features, but, you are putting in a decent amount of work to get there.
That said if you release those libraries into the wild and get help maintaining them, the next time someone asks there will be less reason to say "you'll have to do some work".
Re: Pony – High-Performance Safe Actor Programming
#68Anyone know the judgement rules behind the interesting parts of Pony's type system? I'm about to crack the dissertation to see what's up but would love a concise description. https://www.ponylang.io/media/papers/a_prinicipled_design_of...
There is "Equivalence of ephemeral capabilities" for ephemeral indexing outside of iso and turn.
There is "Compatible capabilities with ephemeral modifiers" which shows ephemeral indexing does not matter for compatibility.
This is extended to types with "Compatible types" then "define the aliasing operator +, to give us the minimum compatible capability when a new alias to an object has been made" with "Aliasing" presenting the cases. There is "Unaliasing" and that's where I'm checking out.
Is there a general theory behind these kind of indexed judgement rules with case splitting?
Re: Pony – High-Performance Safe Actor Programming
#69Earlier quoted context omitted.
There still isn't anything there that Erlang doesn't already have, excepting the theoretically-strong reference capabilities...which is what got me watching pony for a couple years. Pony needs to have something that shows how it's references are more/differently useful in a multi-actor program. I suspect that's a tall order.
One thing that reference capabilities allow you to do is pass data between actors without copying. Erlang is very eager in copying almost everything you put in a message to a process (with the expection of big binaries, etc). Whether this is has a big impact on running systems remains to be seen, Erlang is very good at quickly collecting data. Another thing that I would say Pony has that Erlang doesn't is an easy FFI…
(Disclaimer, self-promotion):
It doesn't get easier than this: https://hexdocs.pm/zigler/Zig.html
(I'll be dropping direct c support in there in the next release)
Re: Pony – High-Performance Safe Actor Programming
#70I just spent 5 min going through the website reading about pony and its goals and use cases. I still have no idea what actual Pony code looks like and I'm not sure where to click to find it. I even clicked the link "learning pony." Of all the places to see at least a hello world, I'd like one there please. When I am checking out a language for the first time, I like to at least see a sample of what I'll be committing…
I agree, but for anyone who's looking, here's the Hello World page. https://tutorial.ponylang.io/getting-started/hello-world.htm...
> Pony doesn’t care about filenames other than that they end in .pony. But it might matter to you! By giving files good names, it can be easier to find the code you’re looking for later
I cannot imagine anyone is going to be learning to code from the first time from this Hello World page. Although, the rest of the page is very much not for beginners, so maybe this was a fluke.
Often with new programming languages I wish they would present themselves in the form "Here's what you need to know about this language if you're already a professional developer" instead of an actual tedious tutorial.