This talk discusses different programming paradigms, focusing on functional programming (FP) and contrasting it with imperative and object-oriented approaches. It highlights advantages and challenges exploring the implications each of these paradigms brings in terms of software design.