

0·
2 years agoMeh - I’m pretty sure Torvalds is just saying in public what thousands of other people were thinking quietly.
It sure is unpleasant to have your mistakes pointed out in public… but it’s a hell of a lot better than not even knowing you made a mistake at all which is usually what happens.
It would be better if Torvalds told the guy he’s an idiot in a private email but I’m not going to get worked up over that. Honestly I have a bigger problem with The Register making a headline out of it. The kernel mailing list is relatively private… this article is going to be attached to this poor engineer for the rest of his career. They should have omitted his name at least.
For example I recently fixed a bug where a function would return an integer 99.9999% of the time, but the other 0.0001% returned a float. The actual value came from a HTTP request, so it started out as a string and the code was relying on dynamic typing to convert that string to a type that could be operated on with math.
In testing, the code only ever encountered integer values. About two years later, I discovered customer credit cards were charged the wrong amount of money if it was a float value. There was no exception, there was nothing visible in the user interface, it just charged the card the wrong amount.
Thankfully I’m experienced enough to have seen errors like this before - and I had code in place comparing the actual amount charged to the amount on the customer invoice… and that code did throw an exception. But still, it took two years for the first exception to be thrown, and then about a week for me to prioritise the issue, track down the line of code that was broken, and deploy a fix.
In a strongly typed language, my IDE would have flagged the line of code in red as I was typing it, I would’ve been like “oh… right” and fixed it in two seconds.
Yes — there are times when typing is a bit of a headache and requires extra busywork casting values and such. But that is more than made up for by time saved fixing mistakes as you write code instead of fixing mistakes after they happen in production.
Having said that, I don’t use TypeScript, because I think it’s only recently become a mature enough to be a good choice… and WASM is so close to being in the same state which will allow me to use even better typed languages. Ones that were designed to be strongly typed from the ground up instead of added to an existing dynamically typed language.
I don’t see much point in switching things now, I’ll wait for WASM and use Rust or Swift.