I have an SE clone. How do we feel about building on that?

Personally, I value correctness uber alles, because if your code doesn’t actually work, nothing else matters. If you have a system that’s supposed to be really awesome and do all sorts of amazing things, but it doesn’t actually do them because there are bugs preventing it from functioning properly, then you don’t have an awesome system that does amazing things.

As for “flexibility and conciseness”, you’re technically right on conciseness being an upside of dynamic typing, but that’s not always an advantage. Remember the old maxim, “programs should be written for people to read, and only incidentally for machines to execute.” If I have a statically-typed system that declares the type of a function’s arguments, I can trivially tell what it’s supposed to be doing. If all I have is a name of an argument without a type, in all too many cases I have to dig through the code to see where it’s called and how it’s used in order to figure out what’s going on. This is based on direct experience working in Python and Ruby codebases. It becomes a maintenance nightmare very quickly exactly because off too much “conciseness.”

4 Likes