Personally, the “Type safety” argument is a very controversial one to me. The main reason why is because type safety only makes you safe from a certain class of bugs, like syntax errors, and type errors. And sure, you just eliminated an entire set of errors, but your code is in no way bug free. Assuming your code is now bug free because of that is a fallacy. Whether you use a type safe language or a dynamic one, does that change the amount of testing you have to do? You still have to test as many end-user edge cases as you can afford. Are syntax errors somehow worse than other errors? If you use an IDE, you can usually catch all or most syntax/type errors anyways.