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

Python is not fundamentally any easier to use or to learn than something like Haskell or Clojure or Racket or Scheme (I'd argue the contrary) though. It's only true in practice out of sociohistorical accident, because your colleagues can show you how to use it to do things, because their colleagues once showed them.


This is just an absurd statement, of course Python is easier to learn than either of those languages.

I've taught Haskell at an university and almost none of the students ever found the model of computation natural. I think we humans simply find following a series of steps easier than reasoning in an abstract mathematical sense.

That being said, I absolutely see the value of the latter, and consider it a good thing that functional concepts are gaining popularity in imperative languages.


Would it be possible to give a small example of Haskell versus Python that shows why Python's model of computation is different to and easier than Haskell's?


Imagine writing a cooking recipe or any kind of instructions.

They seem naturally sequential and an imperative to me.

I can't imagine how a list of instructions would be clearer in haskell.


I suppose I was looking for a more typical programming example than a cooking recipe, but even so I don't see why Haskell would have a problem there. I wouldn't claim it would be clearer but I still don't see why it would be worse.

    cook meat sauce = do
       pan <- getPan
       addTo pan meat
       cookFor pan 10
       addTo pan sauce
       cookFor pan 3
       food <- contents pan
       pure food


> I wouldn't claim it would be clearer

Although written in an imperative style and thus superficially similar, the haskell differs in that it is referentially transparent.

I think that makes it objectively clearer, because it implies certain guarantees that nothing will surprise the reader.


That's a good point! Python's weird scoping rules can make code very unclear.


Monads are exactly the mechanism for chaining instructions, how could it get any clearer than that?


That's an argument from incredulity... https://en.wikipedia.org/wiki/Argument_from_incredulity


> I think we humans simply find following a series of steps easier than reasoning in an abstract mathematical sense.

It is not at all obvious that this is truly the case. If it was the case, why didn't humans intuitively develop mathematics from a computational foundation? It took centuries before we made the leap from mathematical abstractions to Turing machines, and the two are (in some great general sense) isomorphic.


"I think we humans simply find following a series of steps easier than reasoning in an abstract mathematical sense" + to perform tasks.

So, you are right regarding the mindset of human philosophers, but that is not the sort of problems OP's students were tasked with solving.


I wasn't thinking about philosophers in particular, but rather about mathematicians and scientists.




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

Search: