4. This requires languages AND frameworks. The languages need to remove the incidental complexity in dealing with the concurrent situation that is a modern UX app. The frameworks need to encapsulate common patterns and remove boilerplate.
The languages are mostly there, I would argue, and the patterns are somewhat implemented (functional reactive programming, Excel, etc), but the frameworks are not just a little behind.