Comment by samuell
18 hours ago
I like that the code example seems to indicate they took the concept of "ports" from flow-based programming, which might be one of it's absolute strongest points:
player2.reveal -> player1.observe
player1.reveal -> player2.observe
That is, enabling data flow connections between individual inputs/outputs, and not just between components, which otherwise is too limiting, and typically causes a lot of extra syntax to handle that routing otherwise.
Wrote about it in the context of workflow systems way back (https://livingsystems.cc/posts/workflows-dataflow-not-task-d...)
---
Edit 11:12 CET: I realize that “named ports” better captures what I had in mind here, as elaborated in a comment below.
Ports are a general feature of components in the software architecture literature (and corresponding systems).
In addition, connectors also become structured.
Objective-Smalltalk uses polymorphic connectors to adaptively and mostly automatically choose the level of granularity you want to operate at.
https://dl.acm.org/doi/10.1145/3689492.3690052
---
That aside: really cool article! Dataflow just pops up everywhere as a really, really useful abstraction, and our languages don't support it well as a general mechanism.
Instead we tend to have specialized dataflow-y tooling for one area of programming where the advantages are so significant that the impedance mismatch is worth it nonetheless.
I think you are right, and I should have done a search on that before. Found now that FBP inventor cites someone Weinberg from 1975 about them (though FBP is supposed to be from around 69-70, so might be a somewhat parallel discovery):
> Now what are "IN" and "OUT" that our pseudocode receives IPs from and sends them to? They are not the names of connections, as this would tie a component's code to one place in the network, but are things called "ports". "Portae" means "gates" in Latin, and ports (like seaports) can be thought of as specific places in a wall or boundary where things or people go in or out. Weinberg (1975) describes a port as
"... a special place on the boundary through which input and output flow... Only within the location of the port can the dangerous processes of input and output take place, and by so localizing these processes, special mechanisms may be brought to bear on the special problems of input and output."
https://www.jpaulmorrison.com/fbp/concepts_book.shtml
Still, I'm amazed at how it took so long before they became mainstream in data flow oriented libraries and DSLs.
And it seems J.P. Morrison was also highlighting Named ports as particularly useful, which is also perhaps what I should have highlighted in my initial comment above.
It's gotten better lately it seems, but a lot of tools skipped that part, which now requires tons of specialized syntax just for routing of multiple parallel streams.
---
Thank you for kind words!
The Objective-Smalltalk paper looks super interesting also, from my brief skim in Zotero! Will have to dig into it more properly next week.
it's (it is) -> its (belongs to it)
I'm not trying to be pedantic, but they're different words, and (esp. considering how capable our community is when it comes to logic and precision with programming languages) I find it strange how often this "it's / its" error is repeated. Calling it out in hopes of helping others get it right.
There's nothing strange about how often this error is repeated. It is a fault in the "design" of the English language, which violates its own rules, insofar as it has any. Apostrophes are used for both possessives and contractions, eg. "That's John's ball". Indeed possessive "it's" was historically written with the apostrophe. That the apostrophe was dropped to become possessive "its" is completely arbitrary special-case logic, and given that there is no logic behind which it was dropped from, it is easily subject to confusion because you cannot reason about which is which if you forget in the moment.
Thanks for your response. You raise an interesting point, but I take a different view. Contractions _always_ use an apostrophe, while possessives only sometimes do [they're / their, you're / your, he's / his, she's / her, it's / its, ...]. For "it", the apostrophe alone serves to distinguish between the two words.
2 replies →
"its" is precisely parallel to "hers" though?
Indeed, it's pretty much the opposite of "logic and precision"
I really don't think it's an issue with how the language is structured. I think it's more an issue of posters using mobile devices and not spending a lot of time copyediting their comments. It surprises me how many users on here shamelessly post mobile-subdomain links, rather than the desktop ones that only redirect to mobile if you're on a phone.
Yea, I think I kind of know this in theory, but tend to mix them up sometimes as a non-native English speaker. Good to try to iron out those common mistakes though for sure.
You’re wrong. It’s can mean either. Both are correct.
I’m trying to be pedantic and calling this out in the hopes of helping you get it right.
I can't tell whether you're serious. "It's" is not a possessive. Using it as one is incorrect.
Wrong.