3 ms·
Au contraire: an interactive system with immediate feedback is perfectly didactic. Haskell isn't quite there yet--the error messages are somewhat cryptic and th
by tikhonj 13y ago
Au contraire: an interactive system with immediate feedback is perfectly didactic. Haskell isn't quite there yet--the error messages are somewhat cryptic and the interactivity isn't quite polished yet--but it's on the right track. Certainly further along in this vein than any other language I know!
Some new features like deferred type errors and type holes are going to really help with this. Especially once editors start taking full advantage of this. I think that this is the future of programming: not writing a program and then debugging it, and not even just working in a repl, but being actively guided by your tools seamlessly as you write your code. Having a dialog with the compiler.
- pavelludiq 13y agoIf you want an interactive system, clojure or common lisp will be much better choices. Part of the reason I haven't gotten into haskell is because as you said, it "isn't quite there yet". Common Lisp has the added quality that an error trows you into the debugger, and that it makes errors much less punishing. If there is one lesson I've learned from gaming is that hard games don't repel the players if errors are easy to recover from and you aren't psychologically punished for them. Haskell isn't exactly a shining example of that, despite it's other great qualities. You want to make the teaching material challenging, not punishing(a great example of this is the game super meat boy). Not to mention the traditional argument for lisp as a teaching language: the extremely simple syntax. For somebody who hasn't seen code before, lisp would look just as weird as any other language, so the unfamiliarity argument doesn't hold much water. Prefix notation isn't at all difficult to learn, (+ 1 2) would be just as weird as dividing using / or multiplying with *, and using % for modulo division. You just tell the students that this is how you write math with a keyboard(a white lie at worst:). I'm currently working on a "try ruby" like tutorial to interactively teach FP using racket to college students, as my last year project.