#+title: Cybernetics Versus Informatics: Understanding the Type Wars | Medium.com - tags :: [[file:../20200708122521-cybernetics.org][cybernetics]] [[file:../20200708122541-type_theory.org][type theory]] [[file:../20200708122545-category_theory.org][category theory]] - [[https://medium.com/@rplevy/cybernetics-versus-informatics-understanding-the-type-wars-99878fe956d6][source]] * Notes - The two competing visions that emerged in the early days of programming came from mathematics ([[file:../20200604222651-lisp.org][Lisp]]) and engineering (Fortran) - informatics :: systems that consume data, manipulate it in terms of semantic meaning, and produce meaningful results - cybernetics :: systems that satisfy requirements meaningfully and adaptively in novel and uncertain environments - Lisp was born out of an environment that sought to understand computing as solving symbolic expressions (like you do in math) - Usage of Lisp declined as interest in classical AI (symbolic AI) declined, as Lisp was thought of being the language of AI + Symbolic AI stressed a neo-[[file:../20200708123521-cartesian_dualism.org][Cartesian]] model of computing, by which sensory input was processed through "brain modules" - As Lisp faded into the background, another mathematical concept began coming to the foreground: static type checking and "programs-as-proofs" - [[file:../20200708123759-clojure.org][Clojure]] was a huge innovation in the Lisp world, bringing immutability and laziness, among other things - Clojure seeks to maximize expressivity over formal verification, although formal verification is a goal as of 2016 - Languages like [[file:../20200708123930-haskell.org][Haskell]] and [[file:../20200708123936-standard_ml.org][Standard ML]] use their type systems to allow for formal verification - If a dog wanted to reach something across a barrier, in the real world it would use its accumulated experience, exploitation of the environment, and experimentation to find a solution. - The informatics approach to solving this problem would be to model the world - the cybernetic approach would be to create adaptive systems that are capable of adapting to such a thing