Summary of The Coming Software Apocalypse Article

A small group of programmers wants to change how people code—before catastrophe strikes. — from the Atlantic Magazine

  • Basic Premise: Code is getting too complicated–how to make it work better for humans?
  • Example: Problem with 911 calls going out due to simple counter bug
  • Software is “eating the world” but unexpected complications create havoc
  • Engineering is 1950s state of thinking: simple failures.
  • Problem with code is that the complexity is invisible.
  • Example of hackers remotely taking over a self-driving car.
  • John Resig, creator of javascript, tech lead at Khan Academy, wondered why learning programming is so tough. He watched a talk by Bret Victor in Montreal in 2012, (Inventing on Principle), about how programming is broken, and how to fix it.
  • Khan Academy has become perhaps the largest computer-programming class in the world, with a million students, on average, actively using the program each month.
  • Bret wants to work with images instead of abstract text.
  • Programming should be visual like WYSIWYG programs.

Example Pic:

Demo of WYSIWYG program
Demo of WYSIWYG program: slider on right controls animation on left.
  • Airplane engineering has dealt with complexity by writing SCADE product family (for safety-critical application development environment)
  • Think: MDE (model driven engineering), so you write logical templates, not hand-written code.
  • Documentation is another area where what people want can differ from the code that gets created.
  • “Architects draw detailed plans before a brick is laid or a nail is hammered,” he wrote in an article. “But few programmers write even a rough sketch of what their programs will do before they start coding.”
  • Programmers tend to be pragmatic and distrust the theoretical, ivory-tower stuff, which also works against programming improvements.