Hacker News new | ask | show | jobs
by ebbv 3571 days ago
This conversation is awful. This seems like a bunch of armchair developers with really strong opinions and no real world experience.

No experienced developer I want to work with has the kind of dogmatic views that most of the people in this chat log have. FP and OOP are both just tools, how you use them is way more important than which tool you choose.

4 comments

  FP and OOP are both just tools, how you use them is
  way more important than which tool you choose.
I agree with this. I would note though that experienced developers don't always consider them equivalent tools, for instance Carmack suggests defaulting to FP when possible (from here: http://www.gamasutra.com/view/news/169296/Indepth_Functional...):

" No matter what language you work in, programming in a functional style provides benefits. You should do it whenever it is convenient, and you should think hard about the decision when it isn't convenient. "

In addition, the discussion in that chat looks far from constructive...there are legitimate uses of OOP, but they are ignored completely in lieu of sweeping statements.
I meant it turns into a constructive discussion of Haskell, I should have made that clearer. Thanks!
Indeed, for example I think that the so-called "reliability" offered by FP is can be attributed to comparable simple tasks these developers work on. It's typically some form of parsing data.
Come on frozenport, do you really think that applies to Standard Chartered, Jane Street, or FB?
While the motivation for their models might be complex or esoteric, calculating out the parameters might as well be done in Excel. Typically, the data flow is linear, and well suited for FP.

But it ain't hard either.

The kind of complexity I'm referring to is the need to synchronize and coordinate concurrency in a time efficient manner, along with the user interaction that is found in desktop applications - or in my case that controls hardware instruments.

  the so-called "reliability" offered by FP is can be attributed
  to comparable simple tasks these developers work on

  The kind of complexity I'm referring to is the need to synchronize
  and coordinate concurrency in a time efficient manner[..]
There's more than one kind of complexity. Keeping 1.3 million SLOC of trading code relatively error free while allowing non-full-time programmers to contribute to it is also complex.
I would love some constructive feedback on how to do better, thanks.
Off the top of my head:

Drop the dogma. Stuff like "OOP is terrible" or "FP is terrible" or "JavaScript is terrible", etc. are not only wrong but they are destructive only to you. Nobody else cares that you hold this view, it just keeps you ignorant about that thing and holds back your skill set and career. If you take the time to actually learn how to use the thing in question properly, what the good parts of it are and how good things not only can be made with it but are being made with it you will be better for it. Even if at the end of that you still decide you don't want to use it yourself (which is totally valid, we all have our preferences) you will be better off. You will be take the view not that "X is terrible" but that "X is not my preferred way of doing Y."

Second, don't waste your time bullshitting with a bunch of people who don't know anything about anything and just want to be "right" all the time. Where "right" here is actually "agree with the trendy position", which right now is "FP is good, OOP is bad." Talk to professional developers who actually do the work you want to do, and learn from them what it is they do and how they do it. To be sure, some people who hold those silly views do work as developers, but I would argue they're not professional. A professional sees tools as tools and not as a substitute for a personality.

Bullshitting is a great thing to do to blow off steam, we can't code 24x7, but there's constructive chat and then there's a useless echo chamber full of nonsense (which IRC is really good at forming.)

Anyway, hope that helps. I used to talk like the stuff I see in this chat when I was younger, then I realized what I just said about those opinions only being harmful to myself and now I try to be more open minded.

Thanks. I was trying to show it started off unproductive and went into a constructive chat about Haskell type and value level functions, but this was also a lazy test of if people are interested in the conversational format. I think the result is maybe? I want to make a socratic dialogue style presentation of some ideas in FP, I don't have much interest in saying OOP is terrible, because I don't have much interest in talking about OOP.