3 ms·
I don't know about your niece, but if I'd be 12 again I think Scheme would have been ideal because the syntax is actually very easy and the language is very exp
by newgame 16y ago
I don't know about your niece, but if I'd be 12 again I think Scheme would have been ideal because the syntax is actually very easy and the language is very explicit (that's important for someone without programming experience).
She, of course, does not need to learn about continuations, macros etc. only the basics.
Although python (2.6) looks easy it has its ambiguities (for newcomers to programming); list.sort() <-> sorted(), default arguments issues, scoping issues, if a statement doesn't fit a line you have to enclose it in parantheses... the list goes on. Lua and especially Javascript aren't better either.
I can only say, although I had some experience in functional programming, that scheme was really an eye opening experience when I learned it in university. Plus, it made things clearer about things I did with Javascript/Python in the past.
DrScheme is a great environment for learning Scheme and programming in general and there is tons of learning material about scheme. Maybe that http://world.cs.brown.edu/ http://world.cs.brown.edu/ is something for your niece (I haven't read it).
Going from Scheme to Lua/Python/Javascript is then a small step and you have a saner picture about what happens in those languages.
Also going from Scheme to Lua won't be such a cultural shock. Just like the list is the primary data structure in Scheme the table is the primary data structure in Lua. And with Lua under her belt she can try LÖVE.
BTW, I think pygame is too low level. One can argue it is better for learning the concepts but I don't know. When I was younger I wanted to have results fast. In that respect I think LÖVE is better. And although I would not recommend Java for your niece there is a nice game framework called Pulpcore which let's you quickly get something done.
- haliax 16y agoDo you know of anything "wow" inducing in Scheme?
- newgame 16y agoWell, that is highly subjective of course but I give you some examples: - The fact that the syntax is almost constantly of this form (function arguments) and that you can create sophisticated "blocks" out of a small set of language features - Recursion is an essential part of the language it is fun to implement algorithms that way - Great IDE (DrScheme) It all boils down to that you have a simplistic, consistent, "small" language without ambiguities and a rapid feedback if you use DrScheme (because of the REPL, Debugger...). If you hint at something graphics wise with "wow" I can tell you that our instructors showed us some games in scheme that other students created as assignments (we implemented minesweeper) and source code wise they were quite good. They, however, gave us their hombrew object oriented pack that we should use. And this is another "wow" in Scheme (and probably in any other LISP). You can build your own object system - something that would be impossible in for example Java... (albeit it is possible in lua through metatables and also in javascript and theoretically should be possible in Python, too. However the flexibility regarding the syntax is on scheme's side). Frankly, implementing an object system would be overkill for your niece but the fact that it is (relatively easy) possible is a "wow" IMHO. If you install the DrScheme Environment you get a lot of example applications (Card Games...). So you can easily get something visual done in DrScheme. * I have to note that I'm talking about Racket Scheme (formerly PLT Scheme)
- sprout 16y agoI don't necessarily see it as a 'wow' language, but I think the real valuable thing about Scheme is that the implementation details are within the grasp of a twelve year old. Python on the other hand requires a lot of high-level CS to properly understand its inner workings. And you can do fun stuff in any language.