C# and FP – episode 3 – OOP today, Inversion of Control and Dependency injection.

Introduction

The problem with object-oriented languages is they’ve got all this implicit environment that they carry around with them. You wanted a banana but what you got was a gorilla holding the banana and the entire jungle.

Joe Armstrong, father of Erlang

He is right, you know! I totally agree with the quote above. The abuse of inheritance, leads to over complex systems with objects that have no clear responsibility and in general the SOLID principles go out of the window.

Continue reading “C# and FP – episode 3 – OOP today, Inversion of Control and Dependency injection.”

C# and FP – episode 2 – OOP today, (im)mutability.

Introduction

An object’s state, describes its current condition. If object was a human, this could be their emotional state (e.g happy, sad, angry). To think a bit further, the height value in an object’s field is not a state, but the height’s value help us to define it’s height category (e.g tall, short, average), that is actually the state. And it is the state, based on the context we, as society, have set on defining when someone is considered tall or not.

Continue reading “C# and FP – episode 2 – OOP today, (im)mutability.”

C# and FP – episode 1 – Why?

Introduction

Functional programming is how programming should be. We want behaviours (functionalities), that receive an input and produce an output. Simple as that. Of course we might need to process again and again the data in hand, but this is also part of the expected behaviour: one’s function output is the other one’s input.

Continue reading “C# and FP – episode 1 – Why?”