The first language I was taught at school was Pascal, and thinking back, it's probably a decent choice. The school board I was in used only macs, so VB is straight out, and C/C++ is far too complex to teach at a grade 10 level.<p>Basic is nice, but it lacks the explicit structure that Pascal, C/C++, and other high-level languages enforce.<p>I'm thinking Pascal is a good choice because it's explicit enough in its constructs to force the programmer to realize what they're doing, but not so fine-grained that you need to start thinking about memory management, pointers, and other more advanced constructs.<p>The skills are then easily transferable to other similar languages like C/C++, Java, C#, etc.