sepp2k, on 17 October 2012 - 03:42 AM, said:
Quote
Are you sure about that? I'm not an educator, but I could imagine that something like a list comprehension (which is very close to the set-notation that one knows from math class) would be more familiar (and thus easier to understand) to newbies who aren't used to imperative loops and mutation.
And even without the connection to math, I feel like it might be easier simply because it's more declarative and requires you to wrap your head around less concepts than a loop would (taking into account that loops, lists and mutation are all new concepts to a newbie).
That said, I started programming with Basic a billion years ago, so I really have no clue what is and isn't easy for newbies - and of course it depends on the person, too.
jon.kiparsky, on 17 October 2012 - 04:30 AM, said:
sepp2k, on 16 October 2012 - 08:42 PM, said:
Quote
Are you sure about that? I'm not an educator, but I could imagine that something like a list comprehension (which is very close to the set-notation that one knows from math class) would be more familiar (and thus easier to understand) to newbies who aren't used to imperative loops and mutation.
I actually don't think the list comprehension syntax is nearly as clear as the die-hard pythonistas seem to find it, and I have watched other people try to learn it - they struggled with it as well. These included both novices and some people with extensive programming experience. It's just really not that intuitive.
Speaking generally, I find that the concepts of functional programming are not generally easier to learn than imperative concepts. Once learned, they're generally easier to use, but that's a very different thing. The same goes for the syntax of these languages - there's a ton of gotchas in python, and Scala has just as many traps. Like any language, you just have to learn them, but it's not any easier than Java or C. What's easier (again) is doing cool stuff with them once you learn them.
I have only my experience and some anecdotal evidence to support this, but looking at the forum chatter in the Odersky scala course might bear me out. The people insisting that these concepts are easy seem to mostly be people already familiar with them. The people new to the ideas are struggling hard, and it's really no help to them to tell them "but it's so easy!". (which is the usual response from the people who get it already)
(you can sign up for the course at coursera if you want to check out the forum chatter and draw your own conclusions)
But perhaps we should fork this if we want to pursue this tangent, no need to hijack this thread for it.
This post has been edited by sepp2k: 16 October 2012 - 10:27 PM

New Topic/Question
Reply


MultiQuote









|