Computer Science Positivism

Note collecting Logical Positivism vibes applied to Computer Science.

Most modern sciences, including computer science, are strongly influenced by the rationalist and positivist belief that the workings of Nature can be completely captured by mathematical models that allow us to perfectly predict and control them. In computer science, for example, software engineering relies on formal methods to prove the correctness of large software systems; the semantic web assumes that human knowledge can be captured unequivocally by XML descriptions; and the goal of artificial intelligence is to reproduce human behavior with algorithms inside a computer.

— Interaction Is the Future of Computing - Michel Beaudouin-Lafon - HCI Remixed

  • organizing information, is not the same as learning from it

    Don't encourage organizations to think that storing information is an alternative to being informed by it.

    — Making Sense of Sense Making - Steve Whittaker - HCI Remixed

  • making software that forces business procedures seems like a good idea, but is not one - I think it originates in realising that, on the surface, conducting any form of business has its procedures, and computers are great at following, and enforcing, procedures, so why not make all the fields on a huge form required, or force the workers into complex task tracking systems, etc... - in reality work often happens "around" these systems
  • trying to create a single ontology with a tree-like structure that would encompass everything - where reality is often nebulous, and some ontologies make sense only some time; this often leads to huge complex naming, unclear meanings, and overall making things more complex than simpler
  • focusing on sequential workflows (writing the novel from start to finish line by line, composing musical score from left to right, etc.), where in reality Creative Work is Often Nonlinear
  • overall a very good example of how Fixating on Solution Aesthetics can Lead to Solving Wrong Problems
  • writing programs (and other creative works) don't happen linearly, so the software should support that, instead of forcing the users to think like computers by forcing to write everything top-down in a rigid structure (Computer Science Positivism)
    • block-based End-User Programming systems often feel this way, they often remove possibility for any syntax errors, by imposing strict rigidity on how the program is created
    • form-filling is often problematic - it's often impossible to come back to a complex form after a couple of days, if there's a wizard you often can't skip to the next page to see the questions there, and then come back to fill something up earlier, etc.
Szymon Kaliski © 2021