While I agree that in Europe speech is overly policed, the inability of the US legal system to deal with decentralized leaderless terrorist movements clearly demonstrates the failure of the American conception of free speech.
Mm; but do also ask yourself if the "seems" matches the reality, given how many of the organisations who tell us about the world have incentives to show us the failures and not the base rate.
2. To show me the types my editor requires me to, in the best case, hover the mouse over the keyword, which is 100x slower as moving my eyeballs. In the worst case it additionally takes several seconds to compute the type (my shop uses metaprogramming heavily).
To each their own, I come from the land of dynamic typing and writing down types is the bane of my existence, especially when they can be inferred.
2. Type annotations are always on on VScode for rust in places they are omitted. There must be a setting in your editor to show you the types without highlighting. It might take a bit to load at startup though.
No it was a js dev complaining about callbacks in node. Mainly because a lot of standard library code back then only came in callback flavour. i.e. no sync file writes, etc.
Actually, I was and am primarily a Dart developer, not a JS developer. But function color is a problem in any language that uses that style of asynchrony: JS, Dart, etc.
Yeah, you can call async functions without specifying it as such and the script will just carry on regardless of how you're handling it. Totally weird, but also pretty cool. When I first started some 20 years ago that was a major foot gun for me, coming from PHP where functions always returned before the next one was called.
I mean everything is running on the runloop, async/await, promises, and callbacks are different flavors of syntactic sugar for the same underlying thing.
In JS you can do:
async function foo(){...}
function bar(){foo().then(...);}
In python though async and sync code runs in a fundamentally different way as far as I understand it.
I'm not too familiar with Python async. The only time I used it was to get stderr and stdout out of a subprocess.run() separately. I think anyone using it for performance reasons is insane and should just switch to a more performant language.
Anyway I think the main difference is that in Python you control the event loop whereas in JS there's one fixed event loop and you have no choice about it.
The problem isn't that it hides away the machinery. The problem is that it hides some things, but not everything. Certainly a lot of stuff hides behind await/async. But as a naive developer who is used to real threads and green threads, I expected there would be some wait to await on a real thread and all the async stuff would just happen... but instead, if you await, actually you've got to be async too. If you had to write your async code where you gave an eventloop a FD and a callback to run when it was ready, that would be more explicit, IMHO... but it would be so wordy that it would only get used under extreme duress... I've worked on those code bases and they can do amazing things, but if there's any complexity it quickly becomes not worth it.
Green threads are better (IMHO), because they actually do hide all the machinery. As a developer in a language with mature green threads (Erlang), I don't have to know about the machinery[1], I just write code that blocks from my perspective and BEAM makes magic happen. As I understand it, that's the model for Java's Project Loom aka Java Green Threads 2: 2 Green 2 Threads. The first release had some issues with the machinery, but I think I read the second release was much better, and I haven't seen much since... I'm not a Cafe Babe, so I don't follow Java that closely.
[1] It's always nice to know about the machinery, but I don't have to know about it, and I was able to get started pretty quick and figure out the machinery later.
I don't understand this criticism. The JVM is opaque, App Engine is opaque, Docker is opaque. All execution environments are opaque unless you've attached a debugger and are manually poking at the thing while it runs.
Taking this to its logical conclusion you should be able to walk up the hill, push aside the cops, enter the rotunda, occupy the chambers of Congress all within your first amendment rights.
There is nuance and balance to be had in law, your rights end where others begin.
> Taking this to its logical conclusion you should be able to walk up the hill, push aside the cops, enter the rotunda, occupy the chambers of Congress all within your first amendment rights.
Isn't this exactly what the MAGA crowd has professed to believe since 1/6/2021?
They were fine storming government buildings with guns in hand during covid. They considered the Bundy brothers and Kyle Rittenhouse to be heroes and patriots.
These rights are absolute and inalienable, granted by God as long as you're "white and right." Otherwise it's time to crack skulls.
And much like the other case there is a first amendment component, and the balance of how much the government can override ones right to express one's self when doing so impedes the work of the government.
> It may sound silly, but it's simply not good at can2D.
It's not silly at all, it's not very good at layouts either, it can generally make layouts but there is a high chance for subtle errors, element overlaps, text overflows, etc.
Mostly because it's a language model, i.e it doesn't generally see what it makes, you can send screenshots apparently and it will use it's embedded vision model, but I have not tried that.
reply