object oriented languages vs functional programming