Dick Dowdell
1 min readJul 14, 2021

--

Arnold,

Thank you for an interesting take on functional programming. Perhaps you might be interested in a slightly different perspective. I've designed and implemented distributed object-oriented systems using Java since the advent of the language in 1995. Those systems used Java GUI, multi-threaded, and database programming — including a real-time Java application that helps Reaper drone pilots fly photography missions.

That experience certainly provides a perspective on Java's strengths and weaknesses and the frequent misapplication of object-oriented principles by inadequately trained developers. It also creates an appreciation for the careful control of mutability using functional programming principles.

Functional programming does not prohibit changing the value of all data items. It prohibits only the modification of variables shared among routines (functions, methods), processes, or threads.

Object-oriented and functional programming are not mutually exclusive. One can write functional code with Java. Even better, one can write code in Kotlin that is fully interoperable with Java and runs in the JVM. Actor model microservices are fully thread safe and use functional principles to avoid locks and complex thread handling.

--

--

Dick Dowdell
Dick Dowdell

Written by Dick Dowdell

A former US Army officer with a wonderful wife and family, I’m a software architect and engineer who has been building software systems for 50 years.

Responses (1)