Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Programming will never be 'liberated' from the von Neumann style because the most successful programs will always be written in that style.

That's like asking if dentistry can be liberated from the toothbrush because we have dental floss.



Be careful speaking negatively about functional programming... there's an almost cult like following obsession that's almost anti-establishment, bordem with imperative paradigms, or more in pursuit of leaving a mark/legacy.

I've used functional and imperative programming for varied tasks throughout my career. Sometimes, functional programming approaches are fantastic and intuitive for tasks, other times, they're counterintuitive and become cumbersome depending on what you're doing.

While academically, functional programming can be interesting in many respects, for most development needs it can hamper development progress more than assist (humans have lots of tendencies and history that gives imperative approaches an edge).

For humans, computers exist to help us perform tasks we can't very well or quickly and do so consistently. As long as you can do that, people in general don't care about what underlying theoretical computational abstractions you choose--lets not lose sight of that fact. Only those in computing will really care.

Functional programming isn't new per se, there's just a trend of rediscovery and advancement going on. There's something to be said about supporting the underdog. Whether imperative paradigms will always dominate as the higher level abstraction of choice is questionable since the software field is still, relatively speaking, new. It likely isn't going to change much in any near future, however.


I don't see FP (and I mean pure FP style) as the underdog. I think the FP community tend to blame FP's repeated failure to reach mainstream on either developers' stubbornness or FP's poor implementation in many languages.

The way I see it however, is that FP has had plenty of attention and plenty of opportunities to go mainstream but it failed to do so simply because it's not as effective as imperative programming when it comes to building most real-world software.

It's not like the market doesn't know. Every developer on the planet knows what FP is and knows all the benefits. Some imperative languages like JavaScript have even adopted some aspects of FP for certain use cases (some aspects of the front end UI related to dynamic templates; e.g. VueJS, React).

But FP is ideal only for certain narrow niches. FP proponents should just leave it at that and stop trying to promote FP as if there is a fundamental law of science which says that it's superior to imperative programming because it's not.

My personal experience with FP is that it's not good for creating large modular software. You can't create effective abstractions that are accurate models of real world entities without encapsulating their state as well. State is an essential and inseparable part of the abstraction when we talk about modeling real-world entities in software.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: