Pony – High-Performance Safe Actor Programming
71–80 of 159 posts
Re: Pony – High-Performance Safe Actor Programming
#72I 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...
Re: Pony – High-Performance Safe Actor Programming
#73Earlier quoted context omitted.
> It's also safe, much safer than rust. Can you give an example of this? How is Pony "much" safer than Rust?
As a member of the pony core team, I'm not comfortable saying Pony is safer than Rust. The approach of the two is different; each with their own trade-offs. Given how easy it is to use c-ffi from Pony, it can be hard with existing tooling to feel confident in what your Pony code might do. Once you call out via C-FFI, all safety guarantees are off. In this way, the c-ffi in Pony is as problematic for reasoning about s…
Re: Pony – High-Performance Safe Actor Programming
#74Earlier quoted context omitted.
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
#75As 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
#76it'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?
Re: Pony – High-Performance Safe Actor Programming
#77Earlier quoted context omitted.
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…
> Another thing that I would say Pony has that Erlang doesn't is an easy FFI mechanism (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)
I think the biggest hurdles when writing NIFs are:
* Interacting with Erlang terms from C/Rust/Zig. Admittedly both zigler and rustler help in this regard, by wrapping Erlang terms. Pony is able to expose raw pointers and structs to C, which I've felt easier to work with.
* Dealing with the Beam's preemptive scheduler. This isn't as big of a problem now with dirty schedulers but still a mismatch compared to normal Erlang code. Pony uses a cooperative scheduler everywhere, so you'll already be used to splitting long tasks in different steps by the time you need to use the FFI, which makes the transition easier.
Re: Pony – High-Performance Safe Actor Programming
#78Earlier quoted context omitted.
I agree, but for anyone who's looking, here's the Hello World page. https://tutorial.ponylang.io/getting-started/hello-world.htm...
Hmm > 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…
Re: Pony – High-Performance Safe Actor Programming
#79As 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.
EDIT: s/data races/race conditions
Re: Pony – High-Performance Safe Actor Programming
#80Earlier quoted context omitted.
This sounds a lot like someone learning Rust. Both languages solve similar problems with very different solutions that come with complexity overhead.
At least with Rust, very few domains involve so much parallelism that one benefits from the overhead that the borrow checker adds to the development process. And many times the borrow checker is completely inadequate at preventing race conditions (frequently the case with distributed computing). Of course, Rust can recoup those losses elsewhere, by having better tooling or competing in domains where performance matte…
The borrow checker (in safe rust) always[0] prevents data races. It can't, however, prevent race conditions (but neither can pony do[1])