It's not really like there's a budget for it, and "!" is already a type people have seen in the return position of extremely common macros (panic!, todo!, etc.), functions (std::process::exit, etc.), and expressions (return, break, continue).
The question is more whether it's unambiguous (it is), and whether there's something else you would rather use it for (there isn't).
Languages with effect systems typically let callers inherit the effects of their callees (e.g., calling an async function means the caller also is async), or force them to handle the effect (e.g., spawn the async call as a task and waiting synchronously for it to finish).
Effects are just a generalization, where async/await is one particular effect.
But: The fact that an operation now does some kind of I/O, or waits for user input, or whatever else you might express using async, has an _enormous_ impact on the architecture of your program. The “virality” of async is completely a feature, because it forces you to actually deal with that change, resulting in much more robust software.
It’s “inconvenient” because the architecture of your program changed. That’s what the job is, though. Languages that don’t help you here (by hiding that you made a change with huge ramifications) make it actively harder to deliver working software, in my opinion. You get there faster, but it won’t keep working.
The problem with effects systems is that effects aren't generalisable. Every effect is unique. Sometimes they can be applied automatically and sometimes not.
You can have the compiler automatically recompile map with async to make map<async>, likewise map<pure> and map<nofail> and map<noblock> but they will not be optimal; map<async> could be parallel but isn't. And you probably want to control the amount of parallelism at each call site, which just makes it a completely different function. It's likely that you wrote map in a way that uses a loop counter and it's possible the compiler can't prove it's pure. map<abortable> is likely correct, but the compiler has absolutely no way to prove that, and other functions won't be correct if you naively make them possible to abort from outside.
It's a fundamental architecture change only if we assume async == slow (or potentially slow) which isn't always true. Otherwise you might want to run something inline that the language designer made async - such as writing a file in /tmp.
Obviously, "slow" has very different meanings depending on context. Allocating a task object or interacting with the runtime in any way may be quite slow when you're in a tight inner loop, but it may be perfectly fast in the context of handling an HTTP request.
Async is almost never free of charge. The only language that can get close to zero cost is Rust, but even it needs heap allocations for async recursion.
The problem is that understanding everything from first principles is often the longest and least efficient road to learning the things that are actually useful.
Psychoacoustics is interesting, but it's not something that really helps you become a better musician for at least a couple of _decades_ of your journey. For the vast majority of students, it's a complete waste of time.
It's extremely unlikely that you learnt algebra or calculus from first principles, either. You started from the other end, learning the tools and skills to put it to good use, and then dove deeper with those tools already under your belt. Musicianship is no different.
FYI, none of this has ever made any sense at all to somebody who didn’t grow up with Fahrenheit. Numbers don’t need to go roughly between 40 and 100, and then occasionally 212 and 450.
The difference between 20 C and 20.5 C is not generally noticeable. The difference between 20 and 25 really is.
You’ll just have to face the fact that you feel comfortable with a really weird system that nobody else can see the point of, but it’s what you’re comfortable with. That’s OK, you’re allowed.
It's common here to say something like "this week it's in the 70s." In places that use Celsius, "in the 20s" must be too broad, so do they instead say something like "high 20s"?
Here in a metric country (Australia) they use words like cold, cool, warm, hot.
Otherwise people turn to BOM (Bureau of Meteorology) hour by hour / day by day records and forecasts of temp. and rain with radar cloud coverage - these just use nearest whole Celsius numbers, eg: https://www.bom.gov.au/location/australia/western-australia/...
Almost everything you've conjectured about "how they do it in a metric country" has been wrong; builders don't use a third of a metre, for example, everything is typically in millimetres - 1200, 1600, etc (aka, 1.2 metres, 1.6 metres) along side usages of 1 mm and 5 mm for small tolerances, expansion gaps, etc.
They don't use a third of a meter because, like you said, you can just use some number of mm or cm that is divisible by 3. We don't use decimal inches because fractions are easy too.
Why would you assume that this particular turn of phrase would be common at all?
People usually just say the temperature they’ve heard in the weather report, without giving a range. If you say “over 20”, people don’t assume “close to 30”, because then you would have said that.
Because it's really common here. This week it's in the 90s, which is very hot. The temperature changes day to day, so how do you give the approximate temperature for the week?
You’d just say “over 30” for that kind of temperature, or “almost 40” if it’s at the higher end. I think you’re taking your own unfamiliarity and just assuming that we’re all struggling because you don’t know how to translate what you’re used to, but I promise you nobody who is used to it is finding it inconvenient or difficult to use.
33.3 cm is easy to measure out, and 99.9 cm is exactly 1 mm short of 1 meter, well within tolerances for carpentry. Narrower than the mark left by your pencil.
In the views of most Europeans, that schism already happened.
Europe was perfectly happy to rely on US software and services for decades. None of the large US tech companies would be nearly as profitable if they hadn’t had a whole continent of wealthy customers, and no competition.
I don’t think Americans are realizing yet how much has changed for us the past two years.
Can I still get Google Adsense payments when Google has my European bank account and address if there are sanctions or something like that? Can I still login to my Cloudflare account and manage a domain registered with them? Will I lose access to Outlook or Gmail? Should I rely on Claude at all?
But the problem isn't if I can bypass sanctions, use VPNs, etc, or even if a company wants or can legally do that... it's the fact I'm asking these questions at all. It's not something I'd ask 15 years ago about US companies.
It doesn't happen overnight, but the adversarial behaviour of the current administration and the tariffs really changed the perspective about America on many Europeans.
The discussion about building European alternatives had never been so mainstream. If and once they emerge, I think the shift will happen. But let's see
It's a slow shift, but it's coming. For instance, Airbus already picked a French AWS replacement (Scaleway). It won't be all, it won't be tomorrow, but "what happens if we get tariffed / they invade Greenland" is already part of everyone's disaster planning.
2 years is not a long time. What I’m telling you is that sentiments have changed dramatically, and every government and company board across the continent is taking actions to position itself according to those sentiments.
You won’t see the full effect of that for at least a decade, but that doesn’t mean it’s not happening.
The reality seems to be that for decades Europe gave only lip service to decoupling from American tech infrastructure, but in the last couple of years America has gone from being seen as a strong ally to being a major risk.
It will take time to move. Frankly as an American I hope it takes a long time and we get our shit together and rebuild our alliance with Europe. But it’s possible that the damage is not reversible in the next couple of decades and Europe will accelerate their decoupling. It’s also possible we continue to slide into imperialist authoritarianism (and Europe definitely accelerates their decoupling).
This is what I mean: Americans don’t understand the immense dividends they have enjoyed from being the defacto symbol of “progress” in the 20th and 21st centuries so far. American solutions were chosen by European customers because they were reliable trading partners with an air of modernity. Homegrown was seen as the antithesis to leapfrogging into the future.
People celebrated when McDonald’s came to their country or town. Not anymore.
I'm not sure if it's really a "trump agenda". The ideas didn't start with him, the people who voted for said ideas aren't going to suddenly disappear, and this is his second term.
It looks more like part of the new normal from the outside, and that's why things are changing. A country can't go from reliable to unreliable partner every 4 years without any consequences.
Even the people that voted for Trump didn't sign up for this, which is why his approval ratings are terrible even by historic standards. He didn't run on a platform of "attack Canada and suck up to Putin". Most Americans are very pro-European. Most of the voting population has living memory of the cold war.
As to what happens post-Trump, it's anyone's guess. I expect a hard reset. Markets have short memories, as they say.
Not to the same extent, but during his first term, his administration had issues with Canada, Mexico, Europe/UK, NATO, China, etc. Tariffs were a thing back then already. And he was elected again. Clearly it wasn't a huge issue for those who are bothered to go out and vote.
In any case, for everyone else, it's the second time in 10 years that they have to play the waiting game until it's over. It's good to be optimistic, but when you're in charge of a country, you can't just plan for the best and rely on hope alone. Same if you run a company or and even with services you as individual use.
Regarding memories, I don't know about the markets, but in Europe I think it will take a few years for everyone to forget that in 2026 Denmark had to transfer blood reserves to Greenland and that different European countries deployed tripwire forces because of... the US of A. Do you know who triggers similar responses? Russia, when they start saying that their borders are fluid.
Perfect pitch is quite debated. What we know is that: 1) Most people with perfect pitch have it mostly on their main instrument, and they translate the pitch in their inner ear if they hear a different instrument, and 2) Many with perfect pitch report that it gets less reliable with age.
There seems to be many different ways of having perfect pitch. For example, some singers may connect it more to the physical sensation of applying tension to their vocal cords (so they have to be singing the pitch or imagine singing it to be able to tell). For others it's purely auditive.
The tried and true approach is to find a piano teacher in your area, schedule weekly appointments, set aside at least one hour of practice every day between lessons.
I am hoping you can get pretty far by self studying if your study material is made by experts and vetted by peers, and you are diligent in practicing an hour a day using a practice routine recommended by experts.
Personally I am aiming towards becoming a low-intermediate guitar player over the course of a full year by self studying. My biggest fear is that I develop bad habits, but I am hopeful that the bad habits can be trained out of me with a lot of effort during the intermediate phase.
Indeed. Bobby McFerrin has a demonstration where, regardless of culture, the pentatonic scale is universal. For the record, a just major pentatonic scale is the notes with the intervals (from the root note) 1, 9/8, 5/4, 3/2, and 5/3.
The question is more whether it's unambiguous (it is), and whether there's something else you would rather use it for (there isn't).
reply