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.
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.
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
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.
Should also try programming in Rockstar so you can actually say you are a rockstar developer.
https://codewithrockstar.com/
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.