Please edit this so it says whatever you meant.
Please edit this so it says whatever you meant.
I can't just write C++ like:
any a = 1;
a = "Hi!";
I also can't tell JS this shouldn't be allowed. But I can tell this to TS, at any stage of evolution of my program.The thing that drives me nuts is when people start throwing out immediate ideas, sometimes before I've even given a full account of the problem. But even if they do wait, I don't feel like explaining why all your immediate ideas don't work - most of the time, I've also already thought of those things. Try asking questions instead.
Why don't you ask some questions about their obviously wrong solutions instead od spoiling the fun they have guessing? After all to are the one with a problem.
The question is, do you want to be anything more than that?
Even as a problem solver you might ask yourself, what should I do in any given interaction to not become the additional secondary problem myself.
It works great when dealing with microservices architecture that was all the rage recently. Of course it doesn't solve it's main issue that is that microservices talk to each other but it still lets you sprint through a lot of work.
It's just that if you engineered (or engineer) things well, you get immediate huge benefits from AI coders. But if all you did last decade was throw in more spaghetti into already a huge bowl of spaghetti you are out of luck. Serves you right. The sad thing is that most humans will get pushed out into doing this kind of "real development" so it's probably a good time to learn to love legacy, because you are legacy.
No, because if a piece of data is pushed through multiple layers you can just change its type at the source and the destination and not in all the layers the data is pushed through. And you can still be correct.
Imagine you have a thing called target which is a description of some endpoint. You can start with just a string, but at one point decide that instead of string you'd prefer object of a class. In dynamic language you just change the place where it originates and the place where it's used. You don't need to change any spot in 3 layers that just forearded target because they were never forced assumed it's a string.
You can achieve that in staticly typed language if you never use primitive types in your parametrs and return types or if you heavily use generics on everything, but it's not how most people write code.
Tools can help you with the changes, but such refactors aren't usually available in free tools. At least they weren't before LLMs. So the best they could do for most people was to take them on a journey through 3 layers to have them make manual change from string to Target at every spot.