frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

Coverage.py Regex Pragmas

https://nedbatchelder.com/blog/202507/coveragepy_regex_pragmas.html
1•xrayarx•42s ago•0 comments

Cucumber lets you write automated tests in plain language

https://cucumber.io/
1•nateb2022•3m ago•0 comments

Code Context – Make Claude Code 10x more powerful

https://github.com/zilliztech/code-context
1•redskyluan•3m ago•1 comments

iPhone Helps India Overtake China as the Leading Manufacturer for US Smartphones

https://www.macrumors.com/2025/07/29/india-overtakes-china-as-leading-smartphone-maker/
1•akyuu•7m ago•0 comments

Show HN: A generic, context-aware singleflight for Go

https://github.com/janos/singleflight
1•pythonist•8m ago•0 comments

Malicious script injected into Amazon Q Developer for Visual Studio

https://github.com/aws/aws-toolkit-vscode/security/advisories/GHSA-7g7f-ff96-5gcw
1•zX41ZdbW•9m ago•0 comments

RP2350 E9 GPIO erratum fixed in new A4 stepping

https://www.cnx-software.com/2025/07/29/raspberry-pi-rp2350-a4-stepping-fixes-e9-gpio-erratum-9-glitching-bugs-introduces-2mb-flash-variants/
1•theodote•11m ago•0 comments

Thinking Fast and Slow in Human and Machine Intelligence

https://cacm.acm.org/research/thinking-fast-and-slow-in-human-and-machine-intelligence/
1•aarghh•12m ago•0 comments

Linux Performance Analysis in 60 seconds

https://netflixtechblog.com/linux-performance-analysis-in-60-000-milliseconds-accc10403c55
2•benjacksondev•15m ago•0 comments

Ethersync: Peer-to-peer collaborative editing of local text files

https://github.com/ethersync/ethersync
3•blinry•15m ago•0 comments

From Async/Await to Virtual Threads

https://lucumr.pocoo.org/2025/7/26/virtual-threads/
2•GarethX•16m ago•0 comments

Methanetetrol and the final frontier in ortho acids

https://www.nature.com/articles/s41467-025-61561-z
1•PaulHoule•17m ago•0 comments

Money, sex and a monk: Head of China's famed Shaolin Temple under investigation

https://www.cnn.com/2025/07/28/china/china-shaolin-abbot-shi-yongxin-investigation-intl-hnk
2•LopRabbit•17m ago•0 comments

Links: Relatable Parenting

https://kaleidoscopemind.substack.com/p/links-relatable-parenting
1•surprisetalk•18m ago•0 comments

Lina Khan: A Secret to Mamdani's Success

https://www.nytimes.com/2025/07/29/opinion/lina-khan-mamdani-democrats-small-business.html
3•pcmaffey•18m ago•0 comments

The world left its fight against tuberculosis unfinished

https://ourworldindata.org/ending-tuberculosis-save-millions
1•surprisetalk•18m ago•1 comments

Rao Reading Algorithm

https://raohacker.com/rao-reading-algorithm/
1•surprisetalk•19m ago•0 comments

Show HN: PolyglotGPT – Conversational AI for Learning 40 Languages

https://www.polyglotgpt.com/
1•rajeshabishek•21m ago•0 comments

Fastmail – still good value in 2025?

https://kevinboone.me/fastmail.html
1•LaSombra•22m ago•0 comments

Hypernormalization: Systems are crumbling – but daily life continues

https://www.theguardian.com/wellness/ng-interactive/2025/may/22/hypernormalization-dysfunction-status-quo
3•tummler•23m ago•3 comments

Show HN: AI debates between different personas

https://www.nimroboai.com/
1•moltenice•23m ago•1 comments

Representing Mastodon at Global Policy Tables

https://www.patreon.com/posts/representing-at-134091221/instant-access?token=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJyZWRpc19rZXkiOiJpYTI6NDhjMTQ1YjMtZDA2OC00Y2NkLWFlNWItMzEzNmMxMmRiOTFhIiwicG9zdF9pZCI6MTM0MDkxMjIxLCJwYXRyb25faWQiOjQ2Mjk3MDgxfQ.eUIhiX8gdTPnOZ8FbrntQLjKYPeIOwnjvy-Mp88yJtE&utm_source=post_link&utm_medium=email&utm_campaign=patron_engagement&utm_id=a299b89f-0f04-497d-8dee-154853fe9e59
1•doener•24m ago•0 comments

Show HN: GenDB – I built a tool to generate a full database from a single prompt

https://gendb.carrd.co
1•nicsmeyers•30m ago•0 comments

Infinite Mac

https://infinitemac.org/
1•robenkleene•33m ago•0 comments

War Games: MoD asks soldiers with 1337 skillz to compete in esports

https://www.theregister.com/2025/07/29/mod_asks_soldiers_with_1337/
1•rntn•33m ago•0 comments

Show HN: Suggest – Ultra-low-friction feedback for your website

https://suggest.dev
4•tsergiu•35m ago•2 comments

Postgres's sslmode=require: ubiquitous, reassuring, and almost useless

https://neon.com/blog/postgres-needs-better-connection-security-defaults
3•gmac•40m ago•2 comments

ChatGPT Agent casually clicks through "I am not a robot" verification test

https://arstechnica.com/information-technology/2025/07/openais-chatgpt-agent-casually-clicks-through-i-am-not-a-robot-verification-test/
3•davidjytang•40m ago•0 comments

Detached Point Arithmetic

https://github.com/Pedantic-Research-Limited/DPA
11•HappySweeney•42m ago•9 comments

Matrix.org Homeserver Terms (beginning 7-Aug-2025)

https://matrix.org/legal/terms-and-conditions/
4•dexterdog•42m ago•0 comments
Open in hackernews

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

https://www.ponylang.io/discover/
172•RossBencina•7h ago

Comments

throwthrowrow•6h ago
Discussion from 4 years ago: https://news.ycombinator.com/item?id=25957307
tomhow•6h ago
Thanks!

Pony – High-Performance Safe Actor Programming - https://news.ycombinator.com/item?id=25957307 - Jan 2021 (152 comments)

voidUpdate•6h ago
I wish these language websites would put an example of some code right there on the homepage so I can see what the language "feels" like. I finally found some code in the tutorials https://tutorial.ponylang.io/getting-started/hello-world
burnt-resistor•6h ago
Exactly. A "try language" demo should dive right into an editable executor with syntax highlighting and API-docs floating tool tip code completion. Make it as painless and fast to understand as possible.
codethief•5h ago
You mean this executor[0] which is linked right there on the page we are discussing here?

[0]: http://playground.ponylang.io/

ben0x539•5h ago
They should probably put more than three lines of code in there?
kasey_junk•3h ago
The rust and golang versions are exactly the same.

Printing hello world is the default of the industry for this sort of thing.

burnt-resistor•4h ago
That's not the home page and that's not what I'm talking about if you had bother to have read what I wrote that differs from a conventional and limited "try" playground. Also, I've used Pony before and gave up on it.

You also don't get to be the chief decider of what all of us may or may not talk about.

ratdragon•6h ago
Example pony applications: https://github.com/ponylang/ponyc/tree/main/examples

Playground: https://playground.ponylang.io/

They're on HP https://www.ponylang.io/ unfortunately the article link points to /discover/

jillesvangurp•6h ago
I was also wondering what kind of language this is and where they were hiding all the code. Even the tutorial requires clicking past several pages of (more) introduction before you get to see any code. Probably better to lead with the code. Less waffling, more code would be my recommendation.
Timwi•5h ago
Honestly, I get it. The document wants to tell you what's new and different under the hood, not what the language looks like superficially. Code examples don't actually tell you what the language feels like in production. It's kinda like judging a person's character by how they dress.

I would be torn if I had to write intro documentation like this. On the one hand, people demand code examples, but on the other hand, the majority of people reading code examples will nitpick minor pet peeves in the syntax and completely detract from the actual new ideas and concepts that go way beyond just the syntax.

I found the descriptions of the concepts very enlightening and I honestly think they gave me a better idea of what the language would “feel like” to program in than a code example (or a description of the syntax) would have.

In theory, syntax should be interchangeable. It's conceivable to parse a syntax into an AST and reexpress it in another syntax without changing the AST. In practice, this is not done for many reasons (incl. tooling like diffs) but a big reason is that individual bits and bobs of the syntax are tied to the new concepts in subtle ways. There could absolutely be multiple syntaxes for the same concept, but if the concept is new, even in small and unobvious ways, then no prior existing language’s syntax will map it exactly. For this reason, a code example can't really express the new concept, especially if the syntax is superficially similar to another language that doesn't actually have that concept.

archerx•5h ago
Yea but the syntax looks like a mix of Python and JavaScript. By just seeing that I know I don’t want to use it, by seeing the code up front I know that I don’t want to keep reading what ever rationalizations they have to justify the existence of this language.

So by seeing the syntax up front I can save a lot of time because in a world where there are many languages that do the same thing it really boils down to using the one with the syntax that you like the most.

swiftcoder•58m ago
> in a world where there are many languages that do the same thing it really boils down to using the one with the syntax that you like the most

Wat? If all languages were just syntax re-skinning, we really wouldn't need more than one compiler backend...

Generally the semantic differences are much more important. Rust isn't interesting for its syntax, it's interesting for its ownership rules and borrow checker. Erlang isn't interesting because of its syntax, it's interesting for its actor model concurrency. And so on...

archerx•49m ago
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.
voidUpdate•5h ago
On the homepage, just move the descriptions to the left a bit, and put a big block on the right side where there is some example code that shows off the concepts a bit. It's not like they're struggling for space
notfed•4h ago
> people reading code examples will nitpick minor pet peeves in the syntax and completely detract from the actual news ideas and concepts

Err, ok, so? Don't be so afraid of criticism, I guess? Yeah, some people will nitpick. I don't see the problem.

johnisgood•1h ago
I think the emphasis should be on "nitpick" and "detract". Syntax is important, but they want people to focus on the fundamental or underlying concepts instead of the syntax first. With regarding taking criticisms: I think the person posting this submission may not be associated with the language to begin with. I wonder if any Pony developers are even reading it. Just my 2 cents.
Lutger•2h ago
In a way, leading with the core ideas and not with the syntax also shows what this language is about, and selects for people who are more interested in the PL concepts than its looks. After all, syntax is the bikeshed of programming language.
gr4vityWall•1h ago
> the majority of people reading code examples will nitpick minor pet peeves in the syntax and completely detract from the actual new ideas and concepts that go way beyond just the syntax

I believe that, regardless of our personal preferences, the reality is that syntax is a major criteria for adopting a programming language.

Some people have trouble following Lisp code, and won't touch your project if it looks like chat. Others will have the opposite reaction and have their interest captured instead.

jibal•5h ago
The syntax is the least interesting thing about the language, and hello-world examples demonstrate almost none of the syntax.

This bit from the About page is notable: "never write a programming language. That’s like rule #1. Everybody will just tell you it isn’t needed and then argue about syntax."

klas_segeljakt•4h ago
It's not only about showing off syntax. It's also about showing what type of applications the language makes easy to implement.
jibal•4h ago
But that's not what was asked for. To find that out, one must dig fairly deeply into the documentation ... at least read the About page.
poulpy123•4h ago
> The syntax is the least interesting thing about the language, and hello-world examples demonstrate almost none of the syntax.

I agree for the hello world but I disagree with the syntax. It is the first thing you see and the characteristic you can never escape. It is like the layout and typesetting of a text: the substance is of course more important, but it is still very important. I personally find much more readable languages that have a concise-but-not-too-much syntax, that use not too many special characters, and that is read like fortran/pascal/c/etc (I don't how to define it, but for example lisp is different)

jibal•4h ago
For Pony in particular, the syntax is not important ... it's simply not the point of the language.
SiempreViernes•3h ago
Having looked at some source examples, I'm pretty sure Pony has syntax errors just like every other parsed language.
jibal•3h ago
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.
quotemstr•2h ago
A certain kind of programmer never solves genuinely hard problems and so focus all day on feels and vibes and fashion trends.
poulpy123•2h ago
ok professor badass
perching_aix•35m ago
This is textbook no true scotsman fallacy, you're aware, right?
poulpy123•2h ago
If the syntax is not important, that would mean coding in whitespace or malboge would be as easy as coding in python
jibal•1h ago
Sorry, but I demand good faith so I won't be continuing this exchange.
jeltz•1h ago
Then make your arguments instead of making us try to read your mind. Why is Pony special?
arethuza•1h ago
See: https://www.ponylang.io/discover/why-pony/

I don't think that Pony is claiming to be novel in the area of syntax?

perching_aix•55m ago
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.
pxeger1•3h ago
The designer's syntax decisions tell you a lot about their semantic decisions, which languages they take inspiration from, and the language's philosophy about things like flexibility, correctness, and opinionatedness.
jibal•3h ago
Or not. Mostly not in this case.
arethuza•3h ago
I agree, in the case of Pony the interesting stuff is mentioned on this page:

https://www.ponylang.io/discover/why-pony/

Syntax doesn't really come into it.

Edit: I'm as fond of discussions of the design of programming language syntax as everyone else - just in this case the apparent novelty of Pony is at a more fundamental level.

jibal•2h ago
Indeed. I wonder how many people here even read the title of the post.
notfed•4h ago
Even caling this an example is a stretch... it's a hello world...that's it. I mean, at least show some conditionals, or something. We get it, your language is amazing, ok, so...can we see it now?
nallerooth•4h ago
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/

voidUpdate•4h ago
Yeah, that's exactly the thing I'd hope to see on anything trying to sell me on using a new language. Tell me about what it does, and show me how it does it
johnisgood•1h ago
Yeah I think Nim's website is well-made. You can see the features / pros of the language, with many different (and IMO cool) examples.
1980phipsi•1h ago
The D language home page has something similar with a drop down with code examples

https://dlang.org/

stared•2h ago
Also it took surprisingly many clicks to see any code. After 3 clicks I had impression that it is not yet a language, just and idea for one.
brap•1h ago
Unfortunately this is true for basically any kind of “product”.

It’s crazy how many people build something and make a website for it, only to hide the thing they’ve built somewhere deep in the website. Just show me the damn thing!

brightball•1h ago
August 15th and 16th there will be a talk on Pony at the Carolina Code Conference in Greenville, SC.

https://carolina.codes

rapnie•38m ago
Same impression. I was reading several pages with "Interesting.. interesting.. interesting.. but where is the code?". First code I managed to find was a Github repo with examples [0], and just now trying to follow the click path that led me to it, couldn't find it anymore. I looked up the link from my browser history.

[0] https://github.com/ponylang/ponyc/tree/main/examples

katzgrau•13m ago
I also (usually) go looking right away to see if the syntax makes me feel warm and fuzzy. I’m so shallow.
newswasboring•6h ago
>This is a type declaration. The keyword actor means we are going to define an actor, which is a bit like a class in Python, Java, C#, C++, etc. Pony has classes too, which we’ll see later.

> The difference between an actor and a class is that an actor can have asynchronous methods, called behaviours. We’ll talk more about that later.

Who wrote this[1]? The Doctor?

[1] https://tutorial.ponylang.io/getting-started/how-it-works

Timwi•5h ago
I personally thought it was pretty well-written. It sticks to the details that are relevant in the moment so it doesn't detract or get bogged down, but it does let you know what other things are there so it doesn't feel limited or barebones.
simonask•3h ago
This is my pet peeve. "We'll get back to that later" is almost never a useful thing to say, particularly not in writing, and it often just increments the mental burden of the reader by adding another loose end. Instead, outline the concepts you need within context and provide a "Read more" link.
burnt-resistor•6h ago
Notable for the GC (ORCA) and the sharing model. They have a Zulip[0] and a weekly office hours.

Sylvan Clebsch is now working on Project Verona[1].

0. https://ponylang.zulipchat.com

1. https://www.microsoft.com/en-us/research/project/project-ver...

zelphirkalt•3h ago
Having a Zulip (preferably self hosted) is sympathetic, compared to having shitty options like Slack. It indicates, that the people care about privacy. A zulip chat I would consider visiting, a Slack would be a hard pass.
teiferer•6h ago
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.

ratdragon•6h ago
Example pony applications: https://github.com/ponylang/ponyc/tree/main/examples

Playground: https://playground.ponylang.io/

They're on HP https://www.ponylang.io/ unfortunately the article link points to /discover/

teiferer•5h ago
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.
jibal•4h ago
They aren't selling anything, and they didn't write their documentation with HN in mind ... the OP is probably not associated with them.
Timwi•5h ago
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.
pdimitar•4h ago
And you cannot have both at the same time, because...?
bmn__•4h ago
That would be playing into the hand and encouraging the people who judge superficially. Give one good reason why we should expend effort to proliferate shitty behaviour in society.
pdimitar•4h ago
I think you and my previous parent poster are making a mountain out of a mole hill, not to mention projecting.

Most people visiting such websites are programmers who are more often than not busy as all hell.

If you show me 10 lines of code and a mini flow-chart demonstrating how Pony's actor runtime does stuff better then I'll definitely be intrigued and go browse the website for longer time (and more carefully). Is that a "shitty behaviour in society"?

But if the maintainers / creators do in fact want to give homework to visitors then that's their prerogative and their right. But as the other poster has said, I owe them no more than one minute of my time and they are not making a good use of it.

Yours is a confusing take for me. Glad you have all that free time though. I don't. My curiosity lasts one minute because I am only looking for game changers, not another endless hobby to sink time into. And if you can't intrigue me that way then I am out.

Would I be missing out on stuff by doing things that way? Very definitely! But, well, I can't worry about everything.

Tainnor•33m ago
> Most people visiting such websites are programmers who are more often than not busy as all hell.

Apparently not too busy to visit HN and post shallow dismissals.

I agree with GP. Not everything is for everyone and expecting every project to cater to your very specific needs is rather entitled. If you're not interested, feel free to move on - I do that all the time for most of the content on here.

pdimitar•23m ago
> Apparently not too busy to visit HN and post shallow dismissals.

Indeed, as you have just excellently demonstrated. I did not dismiss anything, I generalized, which I believe we're all aware is never accurate. Thought that much was obvious and did not warrant a response like yours.

> If you're not interested, feel free to move on

Exactly what I did, and then I and a few others explained why. No idea why that was met with emotional responses that classify mine and others as "shitty behaviour".

austhrow743•4h ago
It's entirely possible to not want to look at an ugly person without casting aspersions as to their character.
jibal•5h ago
dang recently pointed me to the HN guidelines. I think this one applies here:

"Please don't post shallow dismissals, especially of other people's work. A good critical comment teaches us something."

chownie•4h ago
This is by definition a critical comment which teaches something, ie if you don't present viewers with pertinent information about your project, they cannot take an interest in your project. I think it should be noted that both GP and another few highly rated comments are making this exact point.
jibal•4h ago
"by definition"? It's apparently something you believe, but it certainly isn't a tautology. And I don't think that's an accurate characterization of that comment, at all.
gwd•1h ago
If you want to dive right into what seems like the first key "interesting" idea, it's here:

https://tutorial.ponylang.io/types/actors

If you know a few programming languages I think you should be able to guess what the syntax does from context.

And then the next key idea is here:

https://tutorial.ponylang.io/reference-capabilities/referenc...

(Although I think the first actual interesting I idea I saw was "Destructive read" under https://tutorial.ponylang.io/types/classes#functions , but that's clearly just an isolated quirk, not part of the core idea of the language.)

sbt•5h ago
This is probably my favorite programming language I would like to use if it had more backing. Their reference capabilities in particular seem like a very good match for the actor model. Alas, it does not appear to have a large corporation behind it pushing it forward, nor a compelling niche use case (e.g. it is still GC'd).
ndr•4h ago
I loved playing with this a few years ago, but have lost track of it for a while.

The causality model was great, but is there a way to handle backpressure now?

delifue•5h ago
The difference between Pony and Rust is that Pony allows easy reference cycle.

One of the innovative point of Pony is the iso reference. iso reference means that an object graph is accessible from only that iso reference. It avoids sharing mutable data.

pjmlp•4h ago
And that it has a nice garbage collector, which is good enough due to the way capabilities work, being per actor, and how references work.
ucyo•4h ago
There is a nice Podcast about choosing the right programming language for a project and in this, the final choice is relevant to this post :)

https://corecursive.com/055-unproven-with-sean-allen/

webprofusion•4h ago
Took a while to find the Hello World. It looks like a sort of oop python.
mkl•4h ago
It doesn't look anything like Python (which is fine at OOP itself).
ndr•4h ago
Don't be tricked by syntax.

It's statically and strongly typed, and super concurrent. It's a very different vibe than anything python.

pjmlp•4h ago
More like Pascal/Algol/Ada inspired than Python.
ramon156•4h ago
Sorry for another complaint, but after skimming through I only see boasting paragraphs without any real information

If I click "why pony" i want to know when to use it. I want to decide for myself if I want to use this

I couldn't find a page where it's clear if I should invest my time in it

How to do this: - examples - companies/projects who use X - what this language aims to do - what this language is good at

danneezhao•4h ago
What's new next we can see?
adwn•4h ago
> 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 the parking_lot crate for Rust.

otabdeveloper4•4h ago
A contended mutex is a system call and likely stalls all the CPUs on your machine.

Lockfree spinlocks will only waste cycles on one CPU. A huge difference when you have dozens and hundreds of cores.

adwn•3h ago
> A contended mutex is a system call […]

Because modern mutexes are so cheap (only 1 byte directly in the data structure, no heap allocation), you can do very fine-grained locking. This way, a mutex will almost never be contended. Keep in mind that a reader waiting on an empty queue or a writer waiting on a full queue will also involve syscalls.

> […] and likely stalls all the CPUs on your machine.

Huh? Where did you get this idea? Only the waiting thread will be blocked, and it won't "stall" the core, let alone the entire CPU.

By the way, if all your threads are waiting on a single mutex, then your architecture is wrong. In the equivalent case, all your actors would be waiting on one central actor as well, so you'd have the same loss of parallelism.

gpderetta•3h ago
So does a contended queue. As much as I might like the model, message passing is not a silver bullet. Any sufficiently complex message passing system will end up implementing shared memory on top of it... and mutexes.
alfanerd•3h ago
Sending a message between Actors can be just moving a pointer to a piece of shared memory.

I think sending messages is more about the way you think about concurrency, more than the implementation.

I have always found the "one thread doing "while True receive message, handle message" much easier to reason about than "remember to lock this chunk of data in case more than one thread should access it"

gpderetta•3h ago
Unless you have NxN queues across actors[1], which is done on some specialized software but is inherently not scalable, queues will end up being more complex than that.

[1] at the very least you will need one queue for each cpu pair, but that's yet another layer of complication.

alfanerd•2h ago
I think you only need one queue per actor? And then one worker per CPU core? I believe that how Erlang does it, and do millions of actors without any issues...
gpderetta•2h ago
Yes, but now you have contention on the queue.
ramchip•56m ago
The way Erlang does it is to use buckets so it looks like a single queue to the user code but really is more like multiple queues behind the scene. Scales extremely well. It's certainly not "just moving a pointer to a piece of shared memory" though...

https://www.erlang.org/blog/parallel-signal-sending-optimiza...

adwn•2h ago
> Sending a message between Actors can be just moving a pointer to a piece of shared memory.

No, you also need synchronization operations on the sending and the receiving end, even if you have a single sender and a single receiver. That's because message queues are implemented on top of shared memory – there's no way around this on general-purpose hardware.

adwn•2h ago
> I think sending messages is more about the way you think about concurrency, more than the implementation.

That's a valid point of view, but Pony's claim to which I objected is about performance, not ease-of-use or convenience.

adwn•2h ago
Why is this downvoted? It's factually correct, on-topic, and relevant (because it contradicts a claim on the linked website). If you disagree, say so and we can discuss it.
pjmlp•4h ago
Without wanting to derail the conversation too much.

Its original designer, Sylvan Clebsch, is nowadays working at Microsoft Research on languages like Verona [0], the last paper he contributed to, which has Guido as well among the collaborators, is about adding regions to dynamic languages, using Python as example implementation,

https://www.microsoft.com/en-us/research/publication/dynamic...

[0] - https://www.microsoft.com/en-us/research/project/project-ver...

CharlieDigital•2h ago
Notable the Microsoft has not one but two actor model "frameworks": Orleans (for .NET) and Dapr Actors (for containerized workloads).
pjmlp•2h ago
Probably even more, most folks aren't aware of how many research is sponsored by Microsoft Research across all their university sites.
guiriduro•1h ago
The .NET ecosystem itself has another mature actor-based framework in Akka.NET, being probably closest to the Erlang/Elixir supervisor style, in C#/F#.
halfmatthalfcat•17m ago
Highly recommend Akka(.NET). Batteries included framework that scales really well.
threatofrain•1h ago
Is Verona still receiving attention? Seems like a quiet project.
pjmlp•1h ago
The paper I mentioned, is also done as part of Verona project

https://www.microsoft.com/en-us/research/project/project-ver...

Maybe they are now mostly behind MS walls, or have indeed decided to look elsewhere for their research goals.

titzer•50m ago
Last I chatted with Tobias Wrigstad, work is still happening on Verona.
zelphirkalt•3h ago
As always with the languages, I think about what the ecosystem looks like. What libraries exist? Seems there is a list of available packages on their website: https://www.ponylang.io/use/packages/
xnorswap•3h ago
I clicked one at random (net_ssl) to get a sense of what a package looked like in this ecosystem and how to install it, but it takes you straight to a github page which says it's deprecated and to use a different package (ssl) instead, which is not listed on the packages page.

Not a great look, although it looks like it was only deprecated 2 weeks ago, so I'll give them a pass.

zelphirkalt•3h ago
With such sanctified list of libraries, I think it is not unlikely, that more packages exist out there, that are simply not listed, or that there are repos out there, showing how to do things, but are not isolated libraries.

Maybe a third-party awesome list or so would be interesting.

Other than that, I guess one could get involved in the community to ask questions about things one needs for some project, or search more specifically for things one needs and hope to then find them.

seunosewa•3h ago
"Exception-Safe¶ There are no runtime exceptions. All exceptions have defined semantics, and they are always caught."

So checked Exceptions like Java?

anacrolix•2h ago
It's a great concept but the ecosystem, tooling, and stewardship are really crap.
jmcgough•56m ago
It's sad that the only company using it in production switched to using Rust.
gpderetta•2h ago
> 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 Pony it will statically reject the implementation? Requires me to submit a proof of deadlock freedom with any program I feed the interpreter? Or any python program running on this interpreter is magically free of deadlocks?

edit: as an aside, deadlocks have little to do with locks.

BlanketLogic•2h ago
It is based on actors and "reference capabilities". These two blogs[1,2], could provide nice introduction.

1. https://blog.jtfmumm.com//2016/03/06/safely-sharing-data-pon... 2. https://bluishcoder.co.nz/2017/07/31/reference_capabilities_...

gpderetta•2h ago
That's quite interesting, but it doesn't answer the question: Would the python program running on an interpreter written in pony deadlock or not?
perching_aix•42m ago
> Does it means that if I tried to implement a python interpreter in Pony it will statically reject the implementation?

How could that be true? You'd be emulating the language particularities, so deadlocks would be just virtual states. Your interpreter itself being free of deadlocks doesn't mean it cannot represent them.

It's like thinking that you cannot write e.g. console emulators in Rust, because people typically ship unsafe code to consoles, yet Rust enforces memory safety. Yes, it does enforce it - so you'd be representing unsafe accesses instead, rather than actually doing them.

gpderetta•33m ago
Well, yes, that's my point. So what does it means that Pony is deadlock-free?
perching_aix•28m ago
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.
gpderetta•21m ago
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.

throwaway328•2h ago
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 enthusiasts here seem to be getting quite worked up over how inaccessible the code examples are. Instead of being able to immediately see the syntax so they can rush back here to make insightful and educated comments on how that syntax compares to $their_fave_lang, they are forced to spend up to 4 or even 5 minutes reading documents clearly describing the design of the language, and being obliged to click on their mouses up to 10 times even in some cases.

If a member of the Pony team sees this: even though it's more than a tad ridiculous and you have in fact made a lovely website with loads of clear information, maybe consider adding the "Try it in your browser" link as another option in the burger menu thing on the left. That way it follows everyone around, and you never have to suffer a HN discussion getting needlessly derailed by the resident PL fanatics.

bdcravens•55m ago
I lost track of how many links I had to click to get to a screen that had a line of code.
tomsmeding•34m ago
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 mutability of references. What kind of references are there? You say that deadlock is impossible; how — do you have session types or something? You say that nulls don't exist; how — do you have linear typing? How do you express capabilities?

Essentially, give me a one-page overview of the static and dynamic semantics (i.e. type system and runtime semantics) that gives me all I need to know about this language to decide whether I want to learn more about it.

The language looks cool, but all documentation I've seen so far seems to assume that the reader doesn't even know what static typing is. To get knowledgeable people interested, I think it's useful to have a pitch that appeals to people who are already familiar with a bunch of languages.

NortySpock•11m ago
https://youtu.be/u9da3UzEhEI

For those who enjoy long form video interviews, here is Kris Jenkins of Developer Voices interviewing Sean Allen on Pony language

babygetoboy•4m ago
Here is a talk about Pony

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