Live data from Hacker News

P: A programming language for asynchrony, fault-tolerance and uncertainty

microsoft.com

11–20 of 42 posts

Re: P: A programming language for asynchrony, fault-tolerance and uncertainty

#11

If anyone is interested in syntax and more tangible bits, here is the manual from the GitHub page linked to in the article: https://github.com/p-org/P/blob/master/Doc/Manual/pmanual.pd...

That would have been really helpful for things like telnet and option negotiation. Or more recently, perhaps something like QUIC.

Re: P: A programming language for asynchrony, fault-tolerance and uncertainty

#12
P is a really cool language, and I've been keeping an eye on it. Unfortunately, the documentation has been pretty perpetually out of date, and the language is still a moving target. So you can't just "get started" in P, the example code won't compile.

I don't know what their plans are or if they ever intend for it to be consumed outside of MS. If they do, some focus on docs would be nice.

Pony is a similar language - but better documented. If you're interested in P, I suggest checking out Pony.

Re: P: A programming language for asynchrony, fault-tolerance and uncertainty

#13
post #2

At last, the long awaited successor to C, at least in the naming convention that assumes P comes after C because of BCPL. (Apologies to Walter Bright: No inference should be drawn that D was not also a good name for that sequence.)

https://en.wikipedia.org/wiki/Z_notation

Re: P: A programming language for asynchrony, fault-tolerance and uncertainty

#15
post #2

At last, the long awaited successor to C, at least in the naming convention that assumes P comes after C because of BCPL. (Apologies to Walter Bright: No inference should be drawn that D was not also a good name for that sequence.)

It's a language for expressing protocols. So, P for protocols most likely. It also focuses on safety and ease of analysis. Can't possibly be connected to the C lineage...

I believe it does compile to C, interestingly, so not really connected, but a little bit nonetheless

Re: P: A programming language for asynchrony, fault-tolerance and uncertainty

#17
post #6
post #3

It's worth noting that this isn't just a research language -- it's used in practice for writing drivers: P got its start in Microsoft software development when it was used to ship the USB 3.0 drivers in Windows 8.1 and Windows Phone. These drivers handle one of the most important peripherals in the Windows ecosystem and run on hundreds of millions of devices today. P enabled the detection and debugging of hundreds of…

This looks SO cool! Kind of like Erlang but at a different level, so you can model both inter-node systems (like Erlang) but also intra-node systems (like USB3 drivers)! As someone who has been thinking a lot recently about SPARK/Ada and "free" formal verification, can anyone tell me how this language compares on that front? If I write a P program, do I get the ability to "prove" its correctness?

The docs are sparse... but it looks like the answer is that it depends on what you mean by "correct." It doesn't look like it's a general purpose theorem prover, but it does appear to be model/spec-driven and the linked article says that the system can prove safety and liveness. I'm guessing they mean "type safety" but they may be using the term in the broader distributed system sense. In any case, it does look like it gives you certain "proofs for free" if your definition of correct is "eventually converges on a consistent state." I don't think you can prove arbitrary properties like you can with Coq or with a dependent type system. Still, very cool.

Re: P: A programming language for asynchrony, fault-tolerance and uncertainty

#19
post #2

At last, the long awaited successor to C, at least in the naming convention that assumes P comes after C because of BCPL. (Apologies to Walter Bright: No inference should be drawn that D was not also a good name for that sequence.)

L must be lisp, brought here from the future by the space aliens.

Or Logo.

Re: P: A programming language for asynchrony, fault-tolerance and uncertainty

#20

Can we stop naming programming languages with letters and symbols and give it proper names that, when googled (or binged), makes the programming language appear on top?

Second this. It might seem irrelevant for us folks, we aware of different places to seek help e.g. Stackoverflow but when introducing someone new and they encounter a million questions about programming in a language, searching just becomes a nightmare with these single letter naming.
Post reply on HN