newsfilter.io
Conference Presentation, Keynote, Lecture

The Future of Software Development

  • Shift in the Computing Paradigm

    • The traditional "1970s computer" model (single CPU, standalone) has vanished, replaced by a fragmented ecosystem spanning massive server clusters, mobile devices, and IoT endpoints (e.g., thermostats).
    • Moore's Law Limitations: Performance no longer scales predictably with time; developers must now optimize for power efficiency and battery life on resource-constrained edge devices.
    • New System Characteristics: Modern distributed environments are defined by high latency, disorder, and frequent partial failures, rendering legacy computation models inadequate.
    • Industry Struggle: Pure engineering approaches using C and object-oriented programming have reached a "wall" where stacking abstractions ("teacups") increases complexity rather than reducing it, particularly in the era of big data and Hadoop.
  • Reconvergence of Industry and Research

    • After a "depth-first traversal" of pragmatic industry solutions (leading to universal SQL and object-oriented dominance), the field is returning to first-principles academic research.
    • Catalyst: The inability of current abstractions to handle new machine realities is driving collaboration, with research projects like Jan Stojka's Spark (Berkeley) leading the charge.
    • Core Philosophy: The guiding principle is gaining power through simplicity and mathematical foundations rather than adding layers of complexity.
  • Emerging Technical Approaches for Distributed Systems

    • Commutative Replicated Data Types (CRDTs):
      • Eliminate the need for complex coordination protocols (e.g., Paxos) by using data types that update correctly regardless of operation order.
      • Adoption: Already integrating into industry, notably within the implementation of React 2.0.
    • Immutable Event Logs:
      • Replaces shared mutable state (a source of disaster in distributed systems) with append-only logs representing the history of all events.
      • Notable Projects: Apache Kafka, Apache Samza, and the University of Auckland's OctopusDB, which reimagine databases based on transforming logs into state.
  • Application of Mathematical Simplicity to Other Domains

    • Immediate Mode UI:
      • Adopted by Facebook to solve UI performance and reasoning issues; redraws the entire interface every frame as a pure function of application state.
      • Replaces state-heavy imperative code (e.g., button hover states) to ensure deterministic outcomes and ease of optimization.
    • Constraint Programming & Solvers:
      • Revival of BAT and SMT solvers, now significantly faster, to replace manual logic in complex search and layout problems.
      • Examples: Apple's iOS Auto Layout uses the Cassowary linear inequality constraint solver.
    • SQL Alternatives (Datalog):
      • A movement to replace SQL with Datalog to enable general-purpose databases that compete with specialized ones.
      • Industry Implementation: Rich Hickey's Atomic database is built entirely on Datalog.
  • Forward-Looking Implications

    • Democratization of Computation: Simplifying foundational systems could make programming accessible to non-experts, enabling broader access to machine learning and predictive capabilities.
    • Reversal of Current Trends: The industry is moving away from "actor models" and legacy C-based assumptions toward fundamentally different computational thinking required for the new machine reality.
    • Long-term Vision: The computer is returning to its role as a simple, reliable tool, shifting focus from managing system complexity to solving user problems.