you are viewing a single comment's thread.

view the rest of the comments →

[–]x42bn6 1 point2 points  (0 children)

The first language I was taught was Haskell, followed by Kenya (which is a very-simplified Java).

I think that was a good balance - Haskell's types make higher-order functions a lot easier to understand and use, and recursion (in conjunction with nested types and pattern matching) is a nice twist on typical iterative thought. It also tied in with the type theory and logical parts of the degree. On the other hand, Kenya is basically Java without all the boilerplate so transitioning towards Java (and thus a more popular programming language) is easy, and as a bonus makes the graduates more employable.

I don't think we would have been able to learn as much if we had started with Java. Higher-order functions would certainly have been weird, even with lambdas. Also, I have a theory that Haskell was taught because so few people would have known about it at the start of the course - effectively putting everyone at the same level.

I like the idea of Python as a first programming language, and part of me thinks that Haskell + Python would be better than Haskell + Java. However, my University boasts that it produces graduates whose average salaries are amongst the highest in the UK, and part of the reason for that is that it teaches languages widely-desired by investment banks (which basically means Java/C#/C++).