> I really have to disagree with your statement about VB. We are talking > about teaching Freshmen, not Juniors or Seniors. .... But what about the bad habits they pick up? I see Ada written by former C people with no range constraints. They've learned that when you need a number, you say int, float, or double. So they will never use "... is range 1 .. 100;" unless the instructor forces them to. Similarly, I've debugged Pascal written by Fortran folks that said CONST Depth_Mode = 1; Distance_Mode = 2; ... if Mode = Depth_Mode ... (or even 'if Mode = 1 ...') ... > about teaching Freshmen, not Juniors or Seniors. In a very practical > sense, if you try to tell Freshmen how great generics, inheritance, etc., > are, it's likely that those who don't quit after the first two weeks ..... Sure. But you start out with the easy stuff and add to it as you go along. On the other hand, if you teach VB (or even C) first, and constantly point out its deficiencies as you go along, maybe that's not so bad. If the student learns what's great about a range constraint WHILE learning how to declare a C int .... But what if you taught both together? A little Ada, and the corresponding features of (language X) at the same time, with a brief discussion of the pros and cons of each might help avoid the tendency to always want to write in your first language (and to act like it when writing in other languages).