Live data from Hacker News

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

ponylang.io

181–190 of 284 posts

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

#181
post #36

> The standard way to avoid these problems is to use locks to prevent data updates from happening at the same time. This causes big performance hits […] No. Modern mutex implementations [1] are extremely efficient, require only 1 byte of memory (no heap allocation), and are almost free when there's no contention on the lock – certainly much faster and much lower latency than sending messages between actors. [1] Like…

Nit: you can’t have a 1-byte mutex unless you implement your own wait queues like parking_lot does. Any purely futex-based mutex (ie delegating all the blocking logic to futex syscalls) must be at least 4 bytes.

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

#182

Earlier quoted context omitted.

You say that but I will never use Rust because of it's awful syntax, I'll stick with C/C++ and be happy and not miss out on anything. I don't know much about erlang so I have no comments on it.

> and not miss out on anything I mean, you do you. No one is judging. The fact remains that Rust exists primarily because there are some features that C++ cannot reasonably provide

It could eventually provide some, if Safe C++ (nee Circle) proposal had gotten a warm welcome by the WG21 committee unfortunately they rather go with the mythical profiles approach.

Not only didn't they made it into C++26, it isn't clear what could land in C++29, this ignoring the assumptions regarding capabilities that static analysers are yet to provide nowadays.

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

#183

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

Checked exceptions like CLU, Modula-3 and C++, before Java came into the world.

Or checked result types as in many FP languages, which many seem to miss the similarity.

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

#184

"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.

In Rust and Swift they can have payloads and variants, which in Rust's case due to lack of ergonomics, there are plenty of macro crates to work around this.

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

#185

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…

What I haven't seen anyone mention yet is that syntax exists to concisely express semantics. If you want to give me an immediate feel for your interesting semantics, show me how you express them syntactically.

It may be easier to explain (for instance) Rust's borrow-checker in prose, but if you show me a snippet of code using `&mut`, it'll click for me intuitively that something conceptual and important is happening here. That's why I want an illustrative example at the top of the front page.

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

#186
post #184

Earlier quoted context omitted.

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.

In Rust and Swift they can have payloads and variants, which in Rust's case due to lack of ergonomics, there are plenty of macro crates to work around this.

Yeah, to be clear, it's similar to an option type rather than a result type.

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

#188

Earlier quoted context omitted.

Good faith argumentation, or really argumentation in general, went out the window when you started treating whether syntax matters (for this language and in general) as a universal truth / (binary) logical statement rather than just an opinion.

One of the greatest problems in argumentation over the internet is that people gravitate towards acting as if every statement is intended to define a universal truth so they can argue against that strawman.

I don't think (or rather, want to think) that people are being intentionally malicious. Instead, I think this is a scaling issue. Natural language being scaled in ways it isn't prepared to (e.g. over the internet to random strangers from all walks of life with very different intentions).

I've been looking for platforms where one can maybe more formally encode their thoughts, so that the argumentation and debating skill barrier is lowered / eliminated, along with manipulation. And I did find some, but they don't quite hit the spot, and even if they did, people aren't really on them, so it doesn't matter sadly.

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

#189
post #18
post #7

I gave it an honest look for 5 minutes and after still only having found a 3-line hello world I gave up (and came here to complain). It's great that you have all that philosophy behind it, all sounded great, but if you don't show me a compelling example in the first minute or two, not even in tutorial, then you'll fail to capture my interest.

I personally found the descriptions of the concepts and ideas more illuminating and interesting than a code example. If you're only looking to nitpick the superficial syntax, kinda like judging a person's character by how they dress, then I guess you're not in the target audience for this documentation.

I don't care about syntax. The concepts were too abstract though. I'm sure these descriptions make sense if you already know what it's about, but in that case you are hardly the target audience..

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

#190

Earlier quoted context omitted.

Could be they meant the "shitty behaviour" was the complaining, not the moving on.

I'm not necessarily a fan of the original wording "shitty behaviour", but I do find it disappointing that half of the comment section is people complaining about the lack of code examples. It's just not very interesting feedback and makes the discussion worse.

And half those comments have been misinterpeted to literally mean code. More concrete illustrations of the concepts would have been nice. Not everybody is well versed in what Erlang-like actors are, or capabilities, and how they play so nicely in the single-threaded actors. I know what a thread is. I know what type safety is. But what in Pony make that? How is Pony different from other languages that provide these things? If you require your audience to first read a book to know whether they are interested, then your audience will be much smaller than necessary.

Instead of dismissing these comments as rants and shitty behavior, maybe consider them as an indication how things could be improved. You can inore that (free) advice of course, just like people are free to ignore you. Your choice to make.

Post reply on HN