This document discusses functional programming (FP) as an alternative to object-oriented programming (OOP). It notes issues with OOP like null pointer problems and inheritance issues. It then gives reasons for using FP like the need to write concurrent programs and handle data management problems. FP is described as using recursion instead of loops, higher-order functions, and treating programs as mathematical functions. FP avoids variables and assignments and favors immutability. Examples of FP languages provided are Erlang, Haskell and Clojure. Caution is given around maintainability, advocating for readability over one-liners. Real-world adoptions of FP at companies like Facebook and LinkedIn are also mentioned.