Live data from Hacker News

Pony – High-Performance Safe Actor Programming

ponylang.io

41–50 of 159 posts

Re: Pony – High-Performance Safe Actor Programming

#41

Pony actors look similar to the python ray package actor api. If anyone from the Pony teams sees this, are actors in Pony conceptually similar to actors created with ray?

I'm not familiar with the python ray package. If you are familiar with actors as they exist in erlang and elixir, there's a comparison of those to Pony that might help your understanding.

https://www.youtube.com/watch?v=_0m0_qtfzLs

Re: Pony – High-Performance Safe Actor Programming

#42

I've only done hobby stuff with pony, but love the idea of it, and would love an opportunity to use it in production. I've found the community welcoming and helpful in my limited interactions. The standard library code is pretty easy to read, which somewhat mitigates the dearth of tutorials, howtos on the internet. The reference capability stuff can be a bit hard to wrap your mind around, but mostly in a good way, an…

What sort of hobby projects have you found it a good match for out of interest?

Re: Pony – High-Performance Safe Actor Programming

#43
post #16

it'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?

Go is probably the best for this, it gives you a REPL on the homepage itself: https://golang.org/

Re: Pony – High-Performance Safe Actor Programming

#44

I like Elixir, Erlang. There is Lumen, an OS initiative to bring the BEAM to the browser (WASM). Does Pony have such ambitions (I mean, the Pony team)? My UC is an actor system in the browser and the ability to create a DSL created using the same language used in programming the actor system. Pony is not dynamic but statically typed? Maybe it can be overcome by substituting actors since any actor can create any other…

Since Pony uses LLVM, it should be possible to compile to WASM. Not sure if it's on the immediate roadmap of the Pony team. But I don't think the effort is as big as Lumen.

As far as graphics go, I'd say Pony is quite early stage for such elaborate API's like Skia.

Re: Pony – High-Performance Safe Actor Programming

#45
As a regular Pony user, and coding seriously in it for a few months, this is what I think;

I rather fight the Reference Capabilities (easily the hardest aspect of Pony and probably the number one reason people give up) than to spend endless amount of time CHASING concurrency problems, or even worse, HOPING that I didn't forget some lock/mutex/whatever and ending up having data corruption.

Pony is forcing me to do the right thing, and doesn't allow me to "I guess I could get away with X", and this reassurance is a huge boon.

It is hard to learn, and if you are not in the concurrency space, don't know what a thread is and don't care much for data integrity, then Pony is not for you. The effort you need to put in will not be appreciated by you.

If you have a strong opinion on how things must be done, Pony is not for you, because it won't allow you to follow your opinion all the time, because the opinion is not safe.

Pony is not for everyone, but for those that can think in the Pony model, then it is an incredible tool to ensure your code is correct, safe and performant.

Re: Pony – High-Performance Safe Actor Programming

#46

Pony actors look similar to the python ray package actor api. If anyone from the Pony teams sees this, are actors in Pony conceptually similar to actors created with ray?

I'm not familiar with the python ray package. If you are familiar with actors as they exist in erlang and elixir, there's a comparison of those to Pony that might help your understanding. https://www.youtube.com/watch?v=_0m0_qtfzLs

Thanks!

Turns out an easy google search answered my question as well... this post https://medium.com/distributed-computing-with-ray/ray-for-th... does say that ray uses the actor model, and ray is listed on The Actor Model wikipedia page as an Actor Model library.

Re: Pony – High-Performance Safe Actor Programming

#47
post #45

As a regular Pony user, and coding seriously in it for a few months, this is what I think; I rather fight the Reference Capabilities (easily the hardest aspect of Pony and probably the number one reason people give up) than to spend endless amount of time CHASING concurrency problems, or even worse, HOPING that I didn't forget some lock/mutex/whatever and ending up having data corruption. Pony is forcing me to do the…

And the Pony community has helped me out at every turn of confusion and getting my head twisted into the Pony model. Big kudos to them...

Re: Pony – High-Performance Safe Actor Programming

#48
post #45

As a regular Pony user, and coding seriously in it for a few months, this is what I think; I rather fight the Reference Capabilities (easily the hardest aspect of Pony and probably the number one reason people give up) than to spend endless amount of time CHASING concurrency problems, or even worse, HOPING that I didn't forget some lock/mutex/whatever and ending up having data corruption. Pony is forcing me to do the…

This sounds a lot like someone learning Rust. Both languages solve similar problems with very different solutions that come with complexity overhead.

Re: Pony – High-Performance Safe Actor Programming

#49

I've only done hobby stuff with pony, but love the idea of it, and would love an opportunity to use it in production. I've found the community welcoming and helpful in my limited interactions. The standard library code is pretty easy to read, which somewhat mitigates the dearth of tutorials, howtos on the internet. The reference capability stuff can be a bit hard to wrap your mind around, but mostly in a good way, an…

> If you come from an OO or procedural background, there will be a sharp learning curve.

Isn't Pony object oriented?

Re: Pony – High-Performance Safe Actor Programming

#50
post #4

For anyone wondering "Why Pony?" - they have a section called just that: https://www.ponylang.io/discover/#why-pony

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 mechanism. You can write NIFs for Erlang, but in my experience writing native code or wrapping C libraries has been much easier in Pony.

Post reply on HN