Live data from Hacker News

Pony – High-Performance Safe Actor Programming

ponylang.io

81–90 of 159 posts

Re: Pony – High-Performance Safe Actor Programming

#81
post #21

I still am wondering how error handling should be done in pony, it only tells you an error has happend, not what has caused it or what kind of error happend.

I tried using Pony for 2019's Advent of Code, and I ran into this problem. I ended up writing a whole blog post about the way that I tackled error-handling, which I don't think is the solution (especially since the Pony team is looking at new ways of expressing error-handling) but was sufficient for the programs I was writing: https://journal.infinitenegativeutility.com/pony-errors-and-...

Re: Pony – High-Performance Safe Actor Programming

#82
post #77

Earlier quoted context omitted.

> 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)

Zigler looks interesting! I've given it a look before, would be very nice if it could support Erlang too, but I imagine Elixir macros are doing a lot of work for you. 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 e…

re: preemptive scheduler:

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

(this is an old api, there is a new api that makes the modes completely interchangeable: https://www.youtube.com/watch?v=kpRK9BC0-I8)

Re: Pony – High-Performance Safe Actor Programming

#83
post #38
post #11

Earlier quoted context omitted.

That didn’t answer the question I expected it to answer (“why Pony and not Brando, Gielgud, Nicholson, Streep…?”

I am confused. Doing a search for "(Brando, Gielgud, Nicholson, Streep) programming language" turns up nothing.

I believe OP tried a joke, by naming famous actors - Pony being an actor programming language.

Re: Pony – High-Performance Safe Actor Programming

#85

Earlier quoted context omitted.

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…

> And many times the borrow checker is completely inadequate at preventing data races (frequently the case with distributed computing). The borrow checker (in safe rust) always[0] prevents data races. It can't, however, prevent race conditions (but neither can pony do[1]) [0] https://doc.rust-lang.org/nomicon/races.html [1] https://www.ponylang.io/faq/#data-race

Right, I should have said "race conditions"; it hadn't occurred to me that the two weren't synonymous. My point wasn't that Pony does prevent race conditions, but rather that non-data-race race conditions are much more common in my domain (distributed computing) or really any domain where multiprocess architectures are common so I don't benefit much from the static guarantees that Rust affords.

Re: Pony – High-Performance Safe Actor Programming

#86
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.

I think that the first sentence on the why Pony page says it all

"There’s plenty to love about Pony, but more than anything else, what we love most is that Pony makes it easy to write fast, safe, efficient, highly concurrent programs."

In Erlang you can write safe highly concurrent programs, but you might struggle with fast and efficient. Of course, how much fast and efficient you need depends on what you are trying to do.

Re: Pony – High-Performance Safe Actor Programming

#87
post #65

Does anyone remember the actor based programming language Joule [1]? It had a manual, and maybe some kind of private prototype, but never a public release as far as I know. How does Pony relate to Joule? They seem to be on a continuum, what with Actors, object capabilities etc. [1] http://www.cap-lore.com/Agorics/Library/joule.html

I recently read that a development branch of Java had Joule-based Capabilities, but that the SecurityManager model was ultimately preferred for simplicity. What a loss.

Re: Pony – High-Performance Safe Actor Programming

#88
post #78
post #70

Earlier quoted context omitted.

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…

That comment might be for programmers coming from languages where filenames do matter to the compiler, or languages like Java where the convention is so universally followed that many programmers don't know you can break it. Someone programming for the first time already "knows" that filenames don't matter, so it's probably not for them.

In Java, the “each public class is in its own file named after the class” rule is enforced by the compiler and there’s no switch to disable this behavior.

Re: Pony – High-Performance Safe Actor Programming

#89

Are Sylvan and Sebastian still involved with the language? The momemntum dropped the moment they left ...

Momentum dropped when Causality went out of business and it became a volunteer-driven project with no one working on it for pay.

Sylvan is still involved but not in a coding kind of way. He's still involved in a variety of Pony decisions, discussions, etc. It's a rather different role than what he had in the beginning when he was the primary coder on it.

There was an uptick in contributions that were driven by Wallaroo Labs that involved improvements that were needed for Wallaroo, beyond that, it's all volunteers.

If you'd be interested in contributing, swing by the Zulip. We love to get new folks involved.

Re: Pony – High-Performance Safe Actor Programming

#90
post #78

Earlier quoted context omitted.

That comment might be for programmers coming from languages where filenames do matter to the compiler, or languages like Java where the convention is so universally followed that many programmers don't know you can break it. Someone programming for the first time already "knows" that filenames don't matter, so it's probably not for them.

In Java, the “each public class is in its own file named after the class” rule is enforced by the compiler and there’s no switch to disable this behavior.

I guess that shows how uniformly the convention is followed that I wasn't aware of that! I remember finding a class in a PR that had been renamed without renaming the file, and we were surprised it compiled. It must not have been a public class.

    $ echo "class Bar { }" > Foo.java
    $ javac Foo.java
    $ ls
    Bar.class Foo.java
    $
Post reply on HN