Adopting Functional Programming Style


As I explained yesterday we had a hackday on Friday with the sole requirement of functional programming style. For most of us it was the first real contact with this programming paradigm and quite many of my coworkers were quite frustrated with the experience. If you're used to imperative programming style, even the simplest task style becomes complex in functional programming since you have to tear down your existing mental models and build new ones that are more suitable to the functional way of thinking. If you add also lack of support for standard libraries in most of functional languages, you get a perfect storm of frustrated programmers dismissing functional programming as stupid. Adapting current breed of imperative programmers to functional programming style won't be easy. I remember programmers who learned their trade before object-oriented programming become mainstream, who never got concepts such as inheritance and polymorphism but nonetheless made the transition to Java programmers. In the past we had companies such as IBM or Microsoft inflicting standards upon programmers. But the web is much more democratic than the old worlds of mainframes and client/server computing, so that dominant software companies of today, such as Google, can't inflict a single programming style even on their own programmers. I think the functional programming style will drip into mainstream only gradually, with traditional programming languages slowly adopting some if not most functional programming constructs, and young folks complaining about old farts still programming with an imperative mindset.

Enhanced by Zemanta