D in the ix magazine about "programming today"

dsimcha dsimcha at yahoo.com
Mon Dec 28 19:12:37 PST 2009


== Quote from retard (re at tard.com.invalid)'s article
> Quite many young Haskell experts started with Haskell when they were 9-12
> years old. Having english as your native language and academically
> educated parents has a tremendous effect on e.g. vocabularity at that
> age. Some slumdog might only know ~3000 words at that age, child of a
> highly educated family perhaps 25.000 words.
> I'm not saying that everyone should learn Haskell, but I know it's
> possible to learn stuff like Curry-Howard isomorphism, hylomorphisms,
> monads, monad transformers, comonads, and analysing amortized costs of
> algorithms at that age. It's just dumb to assume that young people can't
> learn something as complex as static types!
> I remember when I was that young, I used to play with QBasic. I knew very
> well why 'DEFINT A-Z' made all programs faster and knew what IEEE
> floating point looked like on bit level (well, at least mostly). I knew
> how to do blits in graphics programming since I already had done them in
> assembly on C-64. Had there been Haskell and all the modern tools
> available like today there is, I would have probably spent more time on
> them.

Yes, but you were probably exceptionally talented and/or motivated.  From
experiences I have had getting friends through programming 101, I believe that,
when people teach programming, they tend to take for granted some very basic
concepts such as variable assignment, flow control and nesting.  The first
programming language should be one that strikes a balance between allowing the
teaching of these basic concepts on the one hand and not being a completely
useless toy language on the other.

IMHO even Python's strong but dynamic typing is too complex for someone who has
literally never programmed before.  I think weak typing a la PHP or Visual Basic,
so that the student doesn't even have to think about types until he/she
understands variable assignment and flow control and has actually experienced the
feeling of writing simple but useful programs, is the best way to start off.  Good
programming practices are useless if you end up totally lost on the variables and
flow control level.  Furthermore, I don't think good practices and well structured
code can truly be appreciated until you've done it wrong first.  Lastly, to most
absolute beginners automatic conversion, e.g. from strings to numbers, probably
seems like the least surprising behavior, since that is how it works in Excel, etc.


More information about the Digitalmars-d-announce mailing list