Java, lacking lambda expressions, feels nothing like C# to me. But then, I use a LOT of lambdas.I don't think the availability of lambda expressions is a criteria for what first language to learn.
Categorically disagree. Object Oriented Programming is great for organizing data, but sucks as a means of implementing algorithms. Better to get the younguns started on Functional Programming now, while they don't have any preconceived notions, then later, when they are convinced whatever the second language they learn is the One True Way. I see no point in hiding programming concepts from beginners just because we all had them hidden from us when we were beginners.To do that, you're basically on a one or two year long cycle of lying to the kids, "this is the sum total of programming! Get very familiar with it. GOTCHA! Now *this* is the sum total of programming!"
Besides, everything has lambdas--and especially closures--now, so Java lacking them is a really poor oversight.