Apple: here, we're open-sourcing this previously closed-source Apple-specific thing that made Swift better on Apple platforms. We're moving the Apple stuff into a plugin so Windows and Linux can be equal peers to Apple in the new system. We've implemented preliminary support for Windows & Linux and plan to continue work to bring them up to parity.
Hacker News: I believe that this long game of Swift being "good for everything" but "better for Apple platforms" will be detrimental to the language. This does not help the language nor seems to bring more people to the ecosystem.
Like, what more do you want from them? For them to only open-source Swift Build once they've fully implemented complete parity for Windows and Linux? In the years you'd be waiting for full parity, we'd still see this same kind of comment on every story about swift, asking when they're going to open source a production-level build system.
Almost every language in the world: here's the spec, the tooling, and everything you need to use, master, and expand this language. Please use it.
Apple: sorry, Mac only.
Like, I want Apple to do the bare minimum that everyone else is doing.
I do find the reactionary response a bit disturbing. Having been caught up in the trap of "fact checkers" for reposting a political cartoon and similar, I'd definitely prefer the community notes approach. All said the inability of many to have a rational conversation with those they don't completely agree is very wrong on so many levels.
Criminals are not willing to have rational conversations. But they just won a free pass from the platforms.
But websockets also guarantee in-order delivery, which is never guaranteed by long polling. And websockets play way better with intermediate proxies - since nothing in the middle will buffer the whole response before delivering it. So you get better latency and better wire efficiency. (No http header per message).
At this point, long polling seems to carry more benefits, IMHO. WebSockets seem to be excellent for stable conditions, but not quite what we need for mobile.
Yes, WS is complex. Long polling is not much better.
I can’t help but think that if front end connections are destroying your database, then your code is not structured correctly. You can accept both WS and long polls without touching your DB, having a single dispatcher then send the jobs to the waiting connections.
Clients using mobile phones tend to have their IPs rapidly changed in sequence.
I didn't mention databases, so I can't comment on that point.
Connections are dropped all the time, and then your code, on both client and server, need to account for retries (will the reconnection use a cached DNS entry? how will load balancing affect long term connections?), potentially missed events (now you need a delta between pings), DDoS protections (is this the same client connecting from 7 IPs in a row or is this a botnet), and so on.
Regular polling great reduces complexity on some of these points.
In this representation, "system 1" is simply an early pipeline decision, where one intuitively feels that it is the correct decision immediately. And if a satisfying decision doesn't come up, we keep looping over the decision, adding more factors, until we finally find the factors that make our intuition agree with it and close the matter. The longer we try to find a satisfactory decision, the more factors we try out, and therefore, someone came up with "system 2", but I see "system 2" as a particularly bad misrepresentation: it is still the same system looping, we are just staying in it longer.
The source of my theory is the interesting effect of a broken intuition: OCD sufferers are unable to break from this cycle, and even when intellectually satisfied with a conclusion, they perceive their brains as "stuck" in the question.
So fundamentally, I agree with your general idea: intuition plays a major role in this system, and when it breaks, people get paralyzed in it, no matter how good the decision is intellectually. My only point is that there is no division of systems. It's one single subsystem, integrated with many others, forming one single blackbox entity. The fast/slow thinking framework is a misrepresentation that doesn't really help one understand people's behaviors. It's a bad map.
"The key to effective intuitive decision making, though, is to learn to better calibrate one’s confidence in the intuitive response (i.e., to develop more refined meta-thinking skills) and to be willing to expand search strategies in lower confidence situations or based on novel information."
and
"Relatedly, it also means we should stop assuming that more conscious and effortful decision-making is necessarily better than more heuristically-driven intuitive decision-making."
I would say that while the article makes very interesting objections to the S1/S2 thinking framework, its objections are that they are far more intertwined as measured. However, the article still very clearly agrees that S1 is lower cost than S2.
The article absolutely does not agree that S1 is lower cost than S2, as the article does not agree that S2 exists at all.
https://github.com/swiftlang/swift-foundation