Live data from Hacker News

Pony: An actor-model, capabilities-secure, high-performance programming language

ponylang.io

121–130 of 284 posts

Re: Pony: An actor-model, capabilities-secure, high-performance programming language

#121

August 15th and 16th there will be a talk on Pony at the Carolina Code Conference in Greenville, SC. https://carolina.codes

Was this meant to be a reply to the top-level story, and not a specific comment?

It seems really bizarre to respond to “there should be easily-accessible examples of code that demonstrate the language’s key features on the website” with “there’s a $200 conference in South Carolina where there will be a talk on it.” Honestly, it comes across as not just bizarre, but somewhat disrespectful (though I’m sure that was not your intention).

Re: Pony: An actor-model, capabilities-secure, high-performance programming language

#122

Earlier quoted context omitted.

The rust and golang versions are exactly the same. Printing hello world is the default of the industry for this sort of thing.

The Go playground actually has a dropdown menu with 15 examples, of which "Hello World" is merely the first; together they do a decent job of demonstrating the language's core features. The Rust playground defaults to "Hello World" but that's just because there has to be something there, it's not on the home page of the website or anything (though it used to be).

The golang playground added those through time though. It f pony gets adoption (and I don’t know why it would) they likely would go through the same transition.

Mainly my point is it’s weird to complain about hello world. It’s been the first program for languages for decades.

Re: Pony: An actor-model, capabilities-secure, high-performance programming language

#123

Earlier quoted context omitted.

That the logic you implement directly in Pony is deadlock-free. If you implement something that can represent arbitrary logic / represents deadlocks, then you get deadlocks again. This extends to every constraint-like language feature ever in any language.

Ok, partially evaluate the interpreter against a python always-deadlocking program. Now it no longer implement arbitrary logic, but it is a very specific program. Yet it deadlocks. So what does it means that Pony is deadlock free if it can implement deadlocking programs? A better, more rigorous claim would be that the pony runtime is deadlock free or that there are no primitive blocking operations.

Within the context of your Pony program you'll never be deadlocked. The virtual machine you implement capable of universal compute, and not enforcing this constraint, can be internally deadlocked, but this doesn't prevent your other Pony code from progressing necessarily - the deadlock is an internal state for that virtual machine, formally guaranteed to be confined to it.

I'd be hesitant to call this a "Pony runtime" property - to my understanding language runtimes just provide application bootstrapping and execution time standard library access. Pony code becomes machine code, managed by the OS as a process with some threads. This language property guarantees you that those threads will never "actually", "truly" deadlock. Code implemented on the Pony level can still progress if it chooses to do so, and Pony formally ensures it always has the option to choose so.

If your business requirements necessitate otherwise, that's a different matter, something you introduce and manage on your own.

Re: Pony: An actor-model, capabilities-secure, high-performance programming language

#124
post #55

Earlier quoted context omitted.

Having looked at some source examples, I'm pretty sure Pony has syntax errors just like every other parsed language.

We must not be communicating clearly, because that doesn't seem to me to have anything to do with what I wrote. I thought it was clear that the discussion was about the syntactic specifics of programming languages. I certainly wasn't claiming that Pony doesn't have a syntax, or that it's not important to use the correct syntax to write a Pony program.

People like to make themselves sound smart and important by finding the most trivial and low effort ways to discount and invalidate your point, instead of expending effort to respond to a more substantial argument that I could easily read from what you wrote. It's just the nature of online forums I think. It's easy (but incorrect) to conclude this place is full of jerks, because sometimes jerks are more likely to respond at all, and you don't get a baseline of how many people read your message but didn't reply at all.

Re: Pony: An actor-model, capabilities-secure, high-performance programming language

#125

> Deadlock-Free: This one is easy because Pony has no locks at all! So they definitely don’t deadlock, because they don’t exist! This really annoys me every time I read Pony description. What does deadlock free even mean here? Deadlock-free is typically the property of an algorithm, not a language. Does pony guarantees forward progress in all cases? Does it means that if I tried to implement a python interpreter in P…

It would be technically deadlock free because you'd have a state that is unable to progress forward but it wouldn't technically involve a synchronisation primitive. In my view a real deadlock would actually be easier to debug but I'm just a caveman.

Re: Pony: An actor-model, capabilities-secure, high-performance programming language

#126

I'm going to join the choir saying that languages need a concise description of what makes them special easily accessible — but while syntax is important, with a language like Pony (where the cool stuff is in the semantics), the cool semantics should be upfront. It seems, from some skimming of the first like 10 pages of the guide, that Pony is an object-oriented language with actors, and a built-in concept of mutabil…

I agree with you, but also, it is legitimately hard to explain concisely the unique aspects of Pony's semantics. My short attempt at it from a couple years ago: https://news.ycombinator.com/item?id=33980738

Thank you! This is quite illuminating. It's not enough for me to know precisely how the language works or how it feels to program in it, but it allows me to put the language in a box so that I know what concepts it introduces and what problems it tries to fix. :)

Re: Pony: An actor-model, capabilities-secure, high-performance programming language

#127
post #24

Earlier quoted context omitted.

Sure, if I go dig deep I'll find that. But I was talking about the sales pitch. Once it's necessary to go click links in a levels-down comment in the HN discussion section, you've already lost most folks.

They aren't selling anything, and they didn't write their documentation with HN in mind ... the OP is probably not associated with them.

>they didn't write their documentation with HN in mind

The programming language documentation wasn't written for an audience primarily composed of programmers? That would be an odd choice.

Re: Pony: An actor-model, capabilities-secure, high-performance programming language

#128

Earlier quoted context omitted.

I think Nim has a good homepage, with some bullet points explaining what the language is all about coupled with several code examples. I'm not saying Nim is better, but I visited the page the other day and thought it was neat. https://nim-lang.org/

The D language home page has something similar with a drop down with code examples https://dlang.org/

I was about to mention Dlangs website aswell, very well designed and clearly presents the language

Re: Pony: An actor-model, capabilities-secure, high-performance programming language

#129

"Exception-Safe¶ There are no runtime exceptions. All exceptions have defined semantics, and they are always caught." So checked Exceptions like Java?

The difference is that there's only one exception type and it can't carry payloads. This turns out not to be very different from an option type like in Rust or Swift, just with a bit of syntactic sugar around it.

Re: Pony: An actor-model, capabilities-secure, high-performance programming language

#130

Request to HN mods: that the link be changed from https://www.ponylang.io/discover/ to https://www.ponylang.io/ On the second link, as another commenter mentions, the "Try it in your browser" is one click away, near the top. On the first link, it's two clicks away, but the first of those clicks is a perhaps surprising backwards-lick to get back to the homepage... Unfortunately, many of the diehard language enthusiast…

Personally, I would say that if one is a real PL fanatic, one is more interested in the semantics than the syntax. :)

The problem with the linked docs on the Pony website is not that it doesn't explain the semantics (it does!) but that it seems to be written at a pace appropriate for someone who has no clue what static types even are. [1] Give a concise demonstration of the syntax and the semantics, even if that means that the latter will use terminology that not everyone will understand. Then the full tutorial is there for the details.

[1]: https://news.ycombinator.com/item?id=44722779

Post reply on HN