Mon, 04 Jan 2010 18:46:54 +0100, Daniel de Kok wrote: > On 2009-12-28 12:53:28 +0100, retard <[email protected]> said: >> 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! > > With respect to education: I think that exposing different programming > paradigms to students has a lot of merit. Each paradigm has different > structuring of data and execution, and is taylored to different > problems. Pick a language for each paradigm that is as simple as > possible, but still powerful enough to solve practical problems. This > will avoid students to be overwhelmed by the multitude of possible > construction combinations. E.g. a plausible language selection with > varying typing disciplines would be: > > - Haskell or ML (functional programming, static typing) - Prolog > (declarative/logics programming) - Python or maybe Ruby (object-oriented > programming, dynamic typing)
Another possibility is to use an educational multiparadigm language such as the Mozart/Oz system. I think it's much more a multiparadigm language than e.g. D or C++. OTOH I'm not so sure whether it's good enough for all practical applications.
