dbaupp comments on More intuitive programming languages - Less Wrong

4 Post author: A4FB53AC 15 April 2012 11:35AM

You are viewing a comment permalink. View the original post to see all comments and the full post content.

Comments (89)

You are viewing a single comment's thread. Show more comments above.

Comment author: Solvent 16 April 2012 01:03:27AM *  3 points [-]

This article suggests that something like 30% to 60% of people cannot learn to code. I think that's interesting. EDIT: This also might be wrong; see child comment.

The three hurdles the article describes are variable assignment, recursion, and concurrency. I don't think you can program at all without those three elements.

Programming is interesting in that the difference between good programmers and bad programmers seems to be far more pronounced than the difference between people who are good and bad at other tasks-- I recently observed about ten smart friends of mine trying to learn Haskell for a introduction to algorithms course. Some of them got it immediately and intuitively, and some just didn't.

Also. I suspect that some people will find learning to program a bit easier with functional programming languages like Haskell. When learning Haskell, I wrote lots of simple functions, and acheived more complex results by stringing together lots of simple functions. In imperative languages, it's a bit harder to test all the individual pieces as you're going.

Comment author: dbaupp 16 April 2012 11:17:25AM 3 points [-]

Also. I suspect that some people will find learning to program a bit easier with functional programming languages like Haskell. When learning Haskell, I wrote lots of simple functions, and acheived more complex results by stringing together lots of simple functions. In imperative languages, it's a bit harder to test all the individual pieces as you're going.

The type system of Haskell is quite restrictive for beginners (it's a little annoying to not be able to debug by putting a print anywhere, or read user input wherever you want) and the laziness can be a little unintuitive, especially for people who haven't done much mathematics (e.g. ones = 1:ones... "I'm defining something in terms of itself, aghafghfg").

But, I do agree that functional languages might be easier to teach to certain groups of people, like those who have done a fair bit of maths, and that Haskell has some very neat features for learning to program (GHCi and Hoogle are awesome!).

Comment author: gRR 17 April 2012 12:10:49AM 1 point [-]

it's a little annoying to not be able to debug by putting a print anywhere

There's unsafePerformIO :: IO a -> a

Comment author: gwern 17 April 2012 02:32:08AM 3 points [-]

Or, er, Debug.Trace.trace...

Comment author: Solvent 16 April 2012 11:44:19PM 0 points [-]

(it's a little annoying to not be able to debug by putting a print anywhere, or read user input wherever you want)

I agree.