Back before Swift, the top reason why apps submitted to the App Store got rejected was crashes on launch and during the short period the app would be looked at during review. Most of these crashes were caused by simple programming errors that are easy to make in (Objective-)C: forgotten nil-checks and type mismatch. Turns out many developers never test their apps at all, and never run them on a device (only in the simulator).
Not the most obvious way to solve this problem, and certainly not the easiest way, was to introduce a language with a stronger type system that would flag these problems at compile time.
If you can choose between (a) trust developers that they learn what they need to learn, write their tests, and ship quality software, or (b) build an infrastructure that categorically makes such errors impossible, a rather large company chose to go with (b). And the top reason for rejections now is App Completeness, basically an app doesn’t do everything the marketing description says it does.
A lot of Objective-C developers complain about how they lose flexibility with Swift in hacking something together quickly because they have to satisfy the type system, that the compiler diagnostics aren’t always helpful, and compile times are much longer. These are all valid criticisms and part of the trade-off, but also things that are being addressed and will likely only get better in the future.
If you’re interested in a less academic and very practical and business-oriented environment where a transition from dynamic to static typing is taking place right at this moment, Swift and iOS development are an interesting case study to look at.
Also interesting: the effects this has on API design for libraries and frameworks — after five years Apple just released the first Swift-only frameworks designed to take advantage of Swift’s unique features. The new Swift APIs are fundamentally different from the old Objective-C ones: favoring composition, value types over reference types, static over dynamic, protocols over inheritance hierarchies, etc. — it’s super interesting to see the design, and the feedback. Of course, not everybody is happy with such change. And it’s a big bet on a (more type-safe) future and nobody knows how it’ll work out…