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

As others point out, more detail about what you're looking for.

I found Out of the Tar Pit[1] somewhat useful. I thought the back half of the paper was disappointing (sorry, functional is not the cure to all problems, and state is something inherent and we must deal with it), but the definition of "essential complexity" and "inessential complexity" from that paper are invaluable, and too often I see people/devs/PMs going "simpler is better" where "simpler" would not address essential complexity: i.e., their simpler == broken, for the use case at hand.

But once you have that, then when you see a fragile system, you can start looking it through a more productive lens of "okay, what of this must I keep, and what complexity can I dispense with?"

[1]: https://curtclifton.net/papers/MoseleyMarks06a.pdf



> the definition of "essential complexity" and "inessential complexity" from that paper are invaluable

To be fair, those terms were defined 20 years earlier by Fred Brooks.


The paper is indeed interesting and a good starting point, thanks for that. It also has some references worth checking out. However it is rather informal in its reasoning, I have yet to find papers that try to formalise a bit this kind of problems in software.


While I agree that FP doesn't solve all problems, I've personally found it to remove a large class of complexity regarding state.

For example, separating deterministic pure logic increases the percentage of your codebase that's deterministic.

Just personal experience so your mileage may vary.




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

Search: