winterkoninkje: shadowcrane (clean) (Default)
wren romano ([personal profile] winterkoninkje) wrote 2010-07-29 08:11 pm (UTC)

Yeah, you get that too. That's part of the reason I don't tend to bring up how long I've been programming for, let alone how long I've been doing type theory/category theory.

I bring up beginning with Perl more often because I think that's actually relevant. I started from Perl and have been working my way down towards the CPU (and pure theory) ever since. I think starting with a high-level language like Perl is best, because it encourages you to think with high-level abstractions instead of getting hung up on low-level implementation details. All the folks in my undergrad classes who started with C (or C++ or Java) had a much harder time grasping the algorithms at stake because they couldn't see the forest for the trees. If I were designing intro curricula, I'd be torn between teaching Perl vs teaching Haskell. The pure/strong-typing and lambda-calculus of Haskell are really important to learn early, but Haskell tends to have a lot of low-level datastructures which can distract from the basics. Perl is great for writing how you think and ignoring low-level details and paradigms, but it's also an untyped nightmare. C et al. are the worst of both worlds (low-level and no types worth mentioning), whereas untyped functional languages like Erlang and Scheme lay somewhere in between (lambda calculi, but still no types).

Post a comment in response:

This account has disabled anonymous posting.
If you don't have an account you can create one now.
HTML doesn't work in the subject.
More info about formatting

If you are unable to use this captcha for any reason, please contact us by email at support@dreamwidth.org