newsfilter.io
Conference Presentation, Keynote, Lecture

The Future of Software Development

  • The industry faces a critical performance renaissance where traditional engineering approaches and existing programming models, including Hadoop, are hitting complexity limits due to the accumulation of abstraction layers.
  • Simple program development is currently struggling against new machine architectures because established models do not fit, necessitating a shift from adding abstractions to deriving solutions from foundational principles.
  • A convergence of industry and research is anticipated, mirroring the 1970s, with significant advances expected to originate from researchers such as Jan Stojka rather than purely engineering-led efforts.
  • Technical strategies to avoid shared mutable state in distributed systems increasingly rely on append-only event logs and the full adoption of Commutative Replicated Data Types (CRDTs) to sidestep coordination problems.
  • Constraint programming is experiencing a resurgence due to the increasing speed of SAT and SMT solvers, evidenced by Apple's iOS auto-layout using the Cassowary linear inequality solver and Facebook's adoption of immediate mode UI.
  • A move away from SQL toward data logs and Datalog is predicted for general-purpose databases, signaled by the industry entry of technologies like Rich Hickey's Atomic database.
  • Specific technology implementations are incorporating these trends, including React 2.0's integration of CRDT data types, while legacy languages like C are deemed insufficient for solving new architectural challenges.
  • The actor model is not considered a viable solution when simply superimposed on new machine architectures, and the computer's role is expected to shift toward being a simplified tool that democratizes access to computation and machine learning.