Near Future of Programming Languages [pdf]
Things to think about for the near future of programming languages:<p>- The borrow checker in Rust is a great innovation. Previously the options were reference counts, garbage collection, or bugs. Now there&#x27;s a new option. Expect to see a borrow checker in future languages other than Rust.<p>- Formal methods are still a pain.  The technology tends to come from people in love with the theory, resulting in systems that are too hard to use.  Yet most of the stuff you really need to prove is very dumb. X can&#x27;t affect Y. A can&#x27;t get information B. Invariant C holds everywhere outside the zone (class, module, whatever) where it is transiently modified. No memory safety violations anywhere. What you really need to prove, and can&#x27;t establish by testing, is basically &quot;bad thing never happens, ever&quot;.  Focus on that.<p>- The author talks about &quot;Java forever&quot;. It&#x27;s more like Javascript Everywhere.<p>- Somebody needs to invent WYSIWYG web design. Again.<p>- Functional is OK. Imperative is OK. Both in the same program are a mess.<p>- Multithread is OK. Event-driven is OK. Coroutine-type &quot;async&quot; is OK. They don&#x27;t play well together in the same program.  Especially if added as an afterthought.<p>- Interprocess communication could use language support.<p>- We still can&#x27;t code well for numbers of CPUs in triple digits or higher.<p>- How do we talk to GPU-type engines better?