Real world knowledge vs first principles knowledge - Haskell

Welcome to the Functional Programming Zulip Chat Archive. You can join the chat here.

codygman

I think there is a values difference in the Haskell community between:

  • Real World Knowledge
  • First Principles Knowledge

Maybe I'm tipping my hand and biases by naming the second, but I'm open to more fitting names :wink:

"Real world knowledge" advocates might see "first principles knowledge" and dismiss it as "pure theory and not applicable to the real world". When I started as a Haskeller, I was unabashedly in the "real world knowledge" camp but after exposure to things like denotational design and ironically real world experience I became more wary of it.

"First principle knowledge" advocates might see "real world knowledge" and call it "unprincipled knowledge" that isn't worth making decisions based upon.

One great case of this at play is a question I asked from the perspective of someone considering "real world knowledge" important and got a response from someone who thought that real world knowledge wasn't valuable in this case:

"It runs in the real world" is a weak argument in favor of anything.

What do yall think in general? This was specifically a reddit comment about Hierarchical Free Moanads: Mostly Pointless, but I suspect thoughts that come about attempting to answer this more generally will be most valuable.

I feel like if we can nail down the differences in the community here, as objective as possible pros/cons we might be able to resolve some of the recurring threads that many (including myself even though I post them) find unsatisfying or even bothersome after a while.

46 votes and 15 comments so far on Reddit
Torsten Schmits

I would say that "real world knowledge" is such a subjective phrase that it's pointless to argue

codygman

Torsten Schmits said:

I would say that "real world knowledge" is such a subjective phrase that it's pointless to argue

I'm definitely empathetic to that but it seems we'll be forced to reckon with it over and over so we might as well find some good approximation?

hackeryarn

Real world == anecdotal. That's how I tend to see it.

That sounds harsh, but there is real value in anecdotes. People can relate to it easier. That makes them useful for explanations.

I think it's important to embrace both sides.

codygman

hackeryarn said:

Real world == anecdotal. That's how I tend to see it.

That sounds harsh, but there is real value in anecdotes. People can relate to it easier. That makes them useful for explanations.

I think it's important to embrace both sides.

I agree, but I think we should lean towards first principles knowledge unless it's really not feasible or the story is too incomplete.

hackeryarn

I would say it depends on the audience and the conversation. When talking with teammates or other devs about the best approach to solve a problem, first principle knowledge wins hands down. If you're talking to business stake holders, real world examples usually trump first principal knowledge.

Magnus Therning

Couldn't it be that these are two extremes on a scale, and that all programming endeavours benefit from containing bits of both?