Hacker News new | past | comments | ask | show | jobs | submit login

"Let's forget about Haskell for a second. Look at this Prolog code."

You people live in an ivory tower.




What is the specific set of knowledge that delineates those who are "living in the ivory tower" from, to use a term introduced by another poster down-thread, "blue-collar programmers?" Do I become an ivory tower programmer as soon as I express any interest at all in functional programming? Or is there some level of FP knowledge ("first-class functions and recursion are acceptable, but no ADTs!") where you start "living in an ivory tower?" Or perhaps if I use these things in an industrial context it's okay, or does simply knowing about monads or Prolog mean I'm relegated to the ivory-tower ghetto?

Does understanding how a database works on a level past what most industrial programmers need to, say, leverage the value of an index make someone an ivory-tower resident? How about understanding how Paxos (ha) or Raft work? For that matter, does reading any computer science paper take me out of the realm of being a "blue-collar" programmer or does it depend on how much the paper stinks of "ivory-tower-ness?"

Have I made my point yet?


Ivory-tower-ness has little to nothing to do with the level you're at, it has to do with being unable to relate to people who aren't at the same level. Reread your comment and note that your examples are entirely about the person said to be in an ivory tower, and not how that person relates to others who don't understand those technical details.


Wooosh


And what's the problem with living in an ivory tower, as someone who also lives in one?

A monad is a mathematical idea. It has some learning curve, some inherent complexity that you can't magically solve.

The post you're mocking attempts to draw a helpful analogy. Maybe it helps the original author who said they couldn't find an explanation of monads that they liked. Maybe it doesn't help.

I don't see how name calling such conversation as "ivory tower" helps anyone


> And what's the problem with living in an ivory tower, as someone who also lives in one?

The stated intent of the post is "to provide an understandable notion of Monads to people who do not get them", so it seems terribly ignorant of the audience to assume that they will know Prolog, a language known for incredibly arcane syntax that has mostly been unused except for a handful of circumstances, outside of the 1980s.

The author wants to draw a parallel between Monads and Prolog's execution, however how many programmers understand Prolog? Of those programmers, how many haven't grasped monads? Even I, who has some Prolog knowledge, now has the mental and cognitive load of having to parse the Prolog that I haven't seen used properly in perhaps 6 years, on top of having to understand the analogy to monads, on top of having to understand the description of monads.

If n-gate still existed, I would pay them to review this comment chain, personally.


> A monad is a mathmatical idea.

Not here. A monad is a programming idea. It bears some similarity to a mathematical idea, but we aren't really doing category theory here. We're doing programming.

The programming idea is simple: Anything that implements certain methods with certain semantics. That's it.


The comment was supposed to explain monads by common usage rather than as a mathematical notion. Prolog is not a commonly used language by us blue collar programmers. I feel I have a grasp on monads and yet that explanation meant little to me given my limited experience with Prolog.


What's your point?

The code example basically requires no Prolog knowledge to understand. It's basically just psuedo-code.


if anything Prolog lives in an oubliette not a tower.




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

Search: