The problem with dynamic typing is not one that can be solved, even with a live running program you might not be hitting the edge case where you’re passing a wrong type.
It’s fine for small stuff, but when you’re developing a piece of software with hundreds or thousands of classes, functions, and APIs it’s impossible to mentally keep track of everything. And adding a type checker is tangential to overriding all of the benefits of a dynamic typing system.
build a Smalltalk program from the ground up while it’s running the entire time.
Lisp works this way too. An editor can provide completions, documentation, and the like by introspection of the running program. Experimental code can be tested immediately against live state.
I use, say, bash quite happily. But I will also come down pretty firmly on the side of static typing for large software packages. It lets software handle a bunch of rigorous checking that otherwise eats up human time.
If people used a language that actually leverages the strengths of dynamic typing, they wouldn’t dislike it so much.
I encourage every programmer to build a Smalltalk program from the ground up while it’s running the entire time. It really is a joy
The problem with dynamic typing is not one that can be solved, even with a live running program you might not be hitting the edge case where you’re passing a wrong type.
It’s fine for small stuff, but when you’re developing a piece of software with hundreds or thousands of classes, functions, and APIs it’s impossible to mentally keep track of everything. And adding a type checker is tangential to overriding all of the benefits of a dynamic typing system.
Should also try programming in Rockstar so you can actually say you are a rockstar developer.
https://codewithrockstar.com/
Lisp works this way too. An editor can provide completions, documentation, and the like by introspection of the running program. Experimental code can be tested immediately against live state.
I’m puzzled that this approach isn’t more common.
I use, say, bash quite happily. But I will also come down pretty firmly on the side of static typing for large software packages. It lets software handle a bunch of rigorous checking that otherwise eats up human time.