I'm far from wizard on the topic, but from my experience it's not that simple since the relative magnitudes of the operands and the operator affect the size of the error in non obvious ways.
I spent 13 years maintaining a 2mloc reservation and accounting system that used floats for everything. By the time I got there and understood enough it was simply too late to do anything about it.
Just say no, really; that road leads to madness.
If you need precision; and many do; consider fixnums, rationals or bignums, in order of increasing complexity and flexibility.
If I remember correctly at least Alan Kay openly admits being very inspired by Lisp. Unfortunately the limitations/walled gardens they chose to impose in the name of simplification, everything is an object etc, had us running in circles for a long long time. My guess is it was picked up by managements for the same reasons as Cobol, Java, Go etc.
The reason it's not all about power/competition is that corruption is very easy to get into your system; be that individual, corporate or otherwise; and tricky as hell to weed out. Once you've been there and done that, the bar is set lower for relapse.
Do you know what the best predictor of future behavior is?
They're acting all nice and friendly right now, wasn't always like that and there's no reason to assume it always will be. Even the catholic church is pretty chill these days, but give them enough power and they'll have people burning at stakes in no time.
I've been practicing Ving Tsun for around 25 years. Many aren't aware, but the most of the system is based on blades. The issue I've been having is finding good enough knives to train with. Most of the stuff out there is ornamental crap that will teach you the wrong thing best case and break and hurt someone if you're unlucky. I ended up getting two big, well balanced hunting knives that I've blunted for training.
I'm pretty sure I'll end up making my own sooner or later...
I didn't say that, I said that exceptions are used for exceptional problems. Expected errors like missing values are better handled using optional types. I find the one ring to rule them all attitude less than constructive.
Problem is you're not handling errors, you're wasting precious energy shuffling errors to code that knows how to handle it; which is exactly what exceptions could do for you. The end result is the same, except it takes more effort and the code looks like crap.
Do you see any problems with optimizing everything we do for junior developers? I mean, most of us aren't, and it would be really nice if someone gave a crap about wasting our lives as well.
They are not overlooked, they are better handled further up the call stack. And not having the option to forward them implicitly is a step back, not forward. There's no way to make a programming language better by forcing users to do anything, in many cases the user will have more experience than the person implementing the language. A programming language is a tool, predicting and dictating how the tool is to be used is missing the point.
Go's resistance to exceptions looks like Steve Jobs and his one button mouse from here. It's not like renaming them to panic/recover fooled anyone outside of the Pike reality distortion field. Sometimes unwinding the stack is exactly what you want. Optional types are nice too, but that's more for things that are intentionally missing. I have yet to see anything here that's an improvement over just doing the obvious thing.
One of my teachers at university kept repeating that you can't really call yourself a programmer before you've implemented at least one language. I don't know about that, everyone is entitled to an opinion.
What I do know is that it's one of precious few things in software that I still find interesting enough to bother [0]. I'm guessing part of the answer is that this is where you end up sooner or later.
And then we have the internet, which is a big part of the equation. It's easy to get numb, but I remember a time when information about implementing interpreters/compilers was VERY hard to come by.
It's all good from my perspective, we're barely scratching the surface of what is possible and there are plenty of good ideas left to rediscover in our history.
But I do wish that more designers would dare to step outside of the box more. Creating a language isn't about cherry picking features from existing languages, it's about finding better ways of solving problems.
As others noted, proving medical benefits has been illegal for a long time. What we do have is the authentic personal experience and testimony to its benefits from hundreds of thousands of users. I know, drug users are not to be trusted; unless it's alcohol or tobacco, then it's ok. But still; you rarely hear users preach the health benefits of crack cocaine, or even alcohol/tobacco.
It does wonders for chronic pain, without the nasty side effects of opiates.
It makes it easier to deal with ADHD/Aspberger traits, without the nasty side effects of amphetamine.
And it seems to have extraordinary cancer curing powers, without long term killing you like chemo.
Works short term but wrecks your immune system long term, which means you will get sick from something else and no one can be blamed. Have you actually seen someone on chemo? Scientifically sound is not the first thing that comes into my mind. There's even a decent amount of objective research out there these days showing exactly this so there are really no excuses for clinging to these delusions any more.
I skimmed both books several times back in the days, but didn't really have enough experience to know what to make of it. I once used the bridge pattern to write a multi backend GUI framework, looked it up in the book and all.
32 years into the game my perspective is that patterns is exactly what I don't want in my code...
My boss at my first gig was like that. Would always praise anyone who worked late or rushed in there to put out fires outside of work hours, he wasn't very interested in preventing fires but always first in line to play the hero role.
And on top of that he was severely dyslectic. I don't know, I feel like he would have made a better fire fighter.
Long story short, it took me two years to run into the wall like a freight train. This was 20 years ago, to this day I have serious issues with phone signals and stress in general. First sign of trouble and I simply shut down, can't do it any more.
I spent 13 years maintaining a 2mloc reservation and accounting system that used floats for everything. By the time I got there and understood enough it was simply too late to do anything about it.
Just say no, really; that road leads to madness.
If you need precision; and many do; consider fixnums, rationals or bignums, in order of increasing complexity and flexibility.