I was speaking with a couple of college students at OSCON who were just getting into programming. One of the student's introduction to CS was learning Visual Basic in class. Normally, I'd expect C/C++ or Java to be the introduction language of choice for college CS courses, but to each their own. So I ended up showing them NetBeans IDE for Java, the sample apps and our learning trails on netbeans.org. Later, this got me thinking, what are good introductory progamming languages and why?
I started waaaay back with DOS BASIC, moved on to Pascal and Fortran, and really got into programming with Java (I avoided C/C++, too much pointer arithmetic and preprocessing for me). Each of these languages taught me valuable concepts- basic procedural programming, data structures, and OOP respectively. Looking back, I'd still recommend Java as a first language because syntatically it's easy to pick up, it teaches most of the important CS concepts (data typing, structures, OOP, etc...), you can graduate to much more advanced development, it's widely used in real world applications, and perhaps most importantly- OS agnostic.
Not to start a flame war, but I would definitely love to hear which language you recommend and why.