"So if there was anything I was considering doing where if it became public I would be hurt, I wouldn't do it."
There is a great book Bonhoeffer[1] by Eric Mataxas which deals with this and a lot of other issues
"So if there was anything I was considering doing where if it became public I would be hurt, I wouldn't do it."
There is a great book Bonhoeffer[1] by Eric Mataxas which deals with this and a lot of other issues
Software advice isn't totally a prediction, but it sort of is.
Its the classic stone soup story[1]. You see this especially with software and tools that focus on front load new users making it really easy to do trivial things but failing catastrophically when you need more.
You also see the reverse of this, great ideas that don't get bye-in failing by virtue of being too niche.
I don't know if this is what you mean or not, but I've seen a lot of claims that a language is "easier to learn" that seem to be considering "learning a language" as a valuable topic on its own, separate from "learning to write and maintain correct nontrivial programs in the language", and that seems wrong to me.
There's a part of this idea that does seem valuable to me, in that at the beginning of your learning process, there are a lot of benefits from being able to quickly get to a point where you can successfully write small programs that do something. It helps your motivation. It helps you reach some amount of productivity faster. When a language is better at early onboarding, it's more-useful to people who have smaller needs and more-constrained use-cases. Python being so easy to learn to glue together some libraries makes it a fantastic, valuable tool for many people.
The part of this idea that I really disagree with is how it applies to non-trivial, non-beginner use-cases. There are topics and skills that languages vary in their coverage of, but that you still need to learn about and deal with anyway for many types of programs. Memory management, resource handling, ownership and sharing, concurrency, nullability, error handling, composition, organization, abstraction, refactoring, testing, debugging, etc. A language including more or less that directly addresses these topics doesn't necessarily mean you won't still need to learn them.
To me, the relevant question isn't "Which language is easier to learn in isolation?", but instead "Which language is easier to learn to implement safe, performant, efficient, reliable, concurrent code with?".
If you take a new engineer who has "learned C", how easy is it to train them to get their rate of memory safety errors, thread safety errors, missed error checking, etc. down to the same rate as you'd get from a new engineer who has "learned Rust"?
Without tooling support like you get from Rust, you instead need to learn safe idioms, learn strategies to minimize your exposure to errors, train yourself to always always check everything at all times, learn how to write tests to discover mistakes you've made, learn how to use a collection of third-party tools you can use to approximate some of the benefits of Rust's compile-time checking, and train yourself to always use it. That's not "learning C", but it's still required in order to implement something like Linux.
Rust's bet is that there are ways to reduce the overall complexity of everything involved in implementing high-reliability high-performance systems by moving some of that complexity into the language. If you don't think it's accomplishing that goal, that's fine, but make that case directly.
I agree that the C programming language is smaller and easier to learn in isolation. It's not so obvious to me that something like "C + Valgrind + ASan + TSan + UBSan + ..." is easier to learn than Rust.
On the other hand, for many classes of errors that C offers no help with, Rust's compiler will directly point out where you've made a mistake, why it's wrong, and often offers advice on how to fix it. When learning a new language, having that kind of tooling support universally available is extremely helpful.
To be clear, Rust doesn't handle everything, and there's still a lot of benefit you can get from dynamic analysis tools, fuzzing, etc. There are also levels of reliability and assurance that aren't currently feasible with Rust. Rust has a long way to go.
The point I think I'm trying to make is that Rust really raises the bar in a meaningful way. There's some nonsense and awkward bits in Rust, but a lot of what you need to learn to be effective with Rust are things that you'd need to learn anyway to be effective at this level with C, and I think it's easier to learn those with Rust's help, and it's significantly easier to build systems with a much lower rate of these problems by using Rust.
Sorry for the length, and lack of organization. This has been rattling around in my head for a while, and I wanted to get some thoughts out in writing.
That being said, using rust can be really nice for exploratory coding. If don't worry about edge case (use unwarp()/panic!) and don't worry about memory efficiency (use clone()) it still produces fast, memory efficient code.
Don't you think the massive increase in compilation time would negate any productivity gains and probably decrease productivity overall?
You think it is okay to lend out other peoples property? You need a serious reality check if so.
If I borrow a neighbours defibrillator, without asking, to save their child it would be insane for the manufacturer of the defibrillator to sue me for not buying my own defibrillator. While in theory the neighbour could object to me borrowing the defibrillator without permission, that does not appear to be what happened. Based on IA's statements it appears that libraries are saying after the fact that they were happy for their copies of books to be loaned by IA.
I would assume from their actions these publishers hoped to make a windfall on book sales when people were no longer able to access libraries and they saw IA's actions as attacking this potential profit. I can't think of any other reason why they would peruse their current course of action.
It's something I wondered about too until I looked at descriptions and photos of >30-year-old houses on real estate sites.
I feel like this is a misleading way to put it. Japanese houses decrease in value, generally quite severely - the conventional wisdom is that after a few decades you might as well just tear it down and build a new one. So there's very real option value you're losing in the Japanese model; if you have to move in a decade or two, you won't be able to get back the equity you put in.
Examples, explaining why I:
* Often let my kids do things alone at ages when other people wouldn't: https://www.jefftk.com/p/whats-the-alternative-to-independen...
* Disregard the warning on baby formula that says not to use the microwave: https://www.jefftk.com/p/stop-discouraging-microwave-formula...
* Work(ed) on ads: https://www.jefftk.com/p/why-i-work-on-ads
The challenging thing about reading books like Bonhoffer is that it compels you to questioning what your response would have been if placed in the same situation.