We have a principal engineer on our team that is pushing this sort of style, hard.
It’s essentially obfuscation, no one else on the team can really review, nevermind understand and maintain what they write. It’s all just functional abstractions on top of abstractions, every little thing is a function, even property/field access is extracted out to a function instead of just… Using dot notation like a normal person.
That was the impression I got about functional programming, from what little I read about it like 15 years ago. Sounds like somebody found a pretty hammer and everything became a nail.
I dabbled in some Haskell a few years ago but quit trying when I got to the hard parts like monads and functors and stuff. All those mathematical concepts were a little too abstract for me.
But what I did bring with me from the experience changed my way of programming forever. Especially function composition and tacit (point-free) style programming. It makes writing code so much faster and simpler and it’s easier to read and maintain.
You can utilize some functional programming concepts without being too hardcore with it and get the best of both worlds in the process. 👍
Thankfully never got sucked into that void. I had a coworker who really evangelized functional programming. I wonder what he’s up to now.
We have a principal engineer on our team that is pushing this sort of style, hard.
It’s essentially obfuscation, no one else on the team can really review, nevermind understand and maintain what they write. It’s all just functional abstractions on top of abstractions, every little thing is a function, even property/field access is extracted out to a function instead of just… Using dot notation like a normal person.
Java, the most functional programming language there is.
Well, this is in JS to be clear
Instead of
const name = user.name
It’s
const userToName(user) => user.name;
const name = userToName(user);
Ad nauseum.
I was afraid you’d say that. That’s stupid.
Do they give a reason for why that’s ‘necessary’?
(Also it should be
const userToName = (user) => user.name;
)That was the impression I got about functional programming, from what little I read about it like 15 years ago. Sounds like somebody found a pretty hammer and everything became a nail.
I dabbled in some Haskell a few years ago but quit trying when I got to the hard parts like monads and functors and stuff. All those mathematical concepts were a little too abstract for me.
But what I did bring with me from the experience changed my way of programming forever. Especially function composition and tacit (point-free) style programming. It makes writing code so much faster and simpler and it’s easier to read and maintain.
You can utilize some functional programming concepts without being too hardcore with it and get the best of both worlds in the process. 👍