Executando verificação de segurança...
2

A programação Orientada a Objetos é um paradigma que aproxima muito o código desenvolvido à realidade, dessa forma quando se utiliza e pratica ela a tendência é que você possa fazer códigos mais complexos e ainda entregar uma estrutura que faça mais sentido para os próximos a vsualizarem seu projeto (claro que isso também vai variar do seu nível de clean code). E além de clareza ela também te permite trabalhar um software mais responsável, para que possa oferecer uma maior segurança.
Já a programação funcional é mais voltada ao encurtamento do código, portanto é mais utilizada em meios onde manutenções e alterações rápdas se fazem necessárias.

Em questão de eficiência, depende muito do seu objetivo, se você quer um sistema que siga sempre uma lógica e realize seus deveres de forma mais eficaz, onde você possa refazer ajustes e configurações de forma mais fácil, o ideal seria um paradigma funcional, entretanto, quanto mais complexo seu sistema mais díficil será se prender a programação funcional, e logo a POO mostrará seu propósito.

Por fim eu diria que a Orientação a Objetos é um paradigma que é indispensável aos estudos de hoje em dia quando o assunto é programação, a maioria das empresas exigem o conhecimento dela para aprovar a seleção ou capacitação de uma nova vaga. Mas a programação funcional também pode ser muito bem vista e solicitada dependendo de onde você quer trabalhar, um exemplo grande que posso citar é a famosa NuBank, que usa tal paradigma em seu sistema financeiro.
Tem até uma postagem deles falando sobre isso, e é uma leitura que recomendo:

https://blog.nubank.com.br/programacao-funcional-o-que-e-relacao-nubank/

Espero ter ajudado!

Carregando publicação patrocinada...