Both Racket and OCaml work with my kids had largely been supervised. A big part of why this worked out well with my kids is just the time investment...
-
-
I think the big concerns with a typed teaching language are mostly mitigated by supervision: error messages, programming by type-directed random walk. Doesn't really fix getting stuck because of a type error that prevents experimentation, though.
2 replies 1 retweet 2 likes -
It's a good question how often that happens, and how much worse it is than the similar problem of getting stuck on a deeply nested runtime exception in a dynamically typed language.
1 reply 0 retweets 1 like -
I'd be interested to hear your experience with the two.
1 reply 0 retweets 0 likes -
The project that pushed me to try OCaml again was a purely-functional MUD written in Racket. It encouraged a style where you have a "world" type with collections of nested records representing things like rooms, players, items, etc.
1 reply 0 retweets 1 like -
Building this up iteratively in Racket was torture: whenever you added a new field to a room, you'd have to figure out all the places where that field had to be populated. In OCaml, the red-squiggles just drove you to all the places you needed to fix things.
1 reply 0 retweets 3 likes -
But in Racket, you were just on your own, scraping through the code trying to figure out where the runtime errors were coming from.
2 replies 0 retweets 0 likes -
Really? For missing arguments to constructors, you should get quite a precise error message.
1 reply 0 retweets 0 likes -
The red squiggles are so much faster to find and fix! Also, we didn't have an especially good testing story, which meant that you would find the bugs when you played the game, and you never knew when you were done. Frustrating.
2 replies 0 retweets 0 likes -
There's no PL feature that can compare to having a good testing story ;)
1 reply 2 retweets 2 likes
What about automatically detecting missing tests from test coverage, automatically suggesting tests to fix the lack of coverage, using induction to find the "simplest" program that fits the tests so far, then to find how it diverges from the current program, etc.
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.
Read my blog!