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.

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

  • 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.

    HCI Remixed: Making Sense of Sense Making - Steve Whittaker

  • 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
  • software design that decides that you ever only look at one document at a time, that notes always go on the right in a little pane, etc. - forcing the workflow on the users (anti-malleability)
  • overall a very good example of how Fixating on Solution Aesthetics can Lead to Solving Wrong Problems

Sketchiness of tools. Importantly, this is not a matter of leaving hand-drawn marks, though having them helps. This point is more about working with half-formed ideas, and a big part of it is that the Fidelity of The Tool Should be Proportional to The Maturity of The Idea. Basically, computers are great at enforcing rules (Computer Science Positivism), but tools in the earliest stages of thinking, should provide the exact opposite freedom to poke at the problem from multiple ends, freedom to leave unfinished pieces lying around in your Peripheral Vision, freedom to be messy.

  • 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.