Theoretical CS

October 29, 2024 at 02:09

It's pretty wild to me that many concepts considered extremely important in CS were invented in the 1950s by mathematicians. Decades before any modern programming languages, computer behavior was described using complex mathematical notation, e.g. Turing machines as a 7-tuple dealing with states and ticker tape and whatnot.

This led to the revelation of mathematical notation heavily influencing programming language syntax. Modern OOP and general-purpose languages have done a good job at abstracting all of the complex and theoretical stuff away from the programmer, but sometimes math stuff slips through. Think := in Go and the nomenclature of a for loop in any language. Functional languages, beyond their technical differences from OOP and general languages, sort of philosophically reject this abstraction of mathematical notation and are instead very "mathy".

I'd love to learn Haskell or OCaml one day but I feel like understanding either requires a PhD.
- Patrick