The main requirements for a first programming language are:
1. It must be easy to access (like my old BBC B that booted to BASIC in a matter of seconds). I'm picking up Java and Cocoa at present, and interacting with a command line is a pain in the fundament, like remembering when you need file types on the line.
Don't forget that when the enthusiasts on this forum started computing it was shiny, exciting and the best thing there was. Kids today have so much computing round them that we need to engage their enthusiasm before they get as far as running a program.
2. The teacher must be happy with it. The worst thing that could happen is that someone imposes a curriculum, and says 'You will teach Neliac on the TOPS-10 OS.' Because everyone who doesn't know Neliac, along with those who know and despise it, will communicate their rejection to the kids. I'd refer you to Ben Goldacre's discussion of the placebo effect in his book 'Bad Science'.
(I've chosen names to avoid taking sides in any ongoing dispute. My first programming job was coding Neliac on a DECSystem10. I loved them both but, as far as I know, the language, architecture and OS are all long gone.
3. What are we going to teach? My first code was written in a very cut-down assembler, that had a small number of instructions; you couldn't do very much with it, but you learned the principles involved and I went on to teach myself FORTRAN IV from a book.
The analogy here is, perhaps, a child's first bike. It may not have a chain, it probably has only one fairly feeble brake, but it's got stabilisers. No-one has any illusion of doing the Tour De France on one, but you learn how to balance, and steer and (hopefully) stop, and you move onto a real bike when you're ready.
If I were running a class, I'd like to start off dead simple like this, then move on to something that makes it easy to get results, and I confess I'd think favourably about Java. My reasons:
It's fairly easy to get up a screen with a button that says 'Hello World', and then changes to 'Goodbye World' when you click on it. Thus you've taught the essentials of visual programming.
There are lots of books for interested people to buy/read.
The SDK is free.
There's a fairly solid standard, and once you can write web apps you can run them on any browser on any OS (for some definition of 'any'). It strikes me that when people discuss languages on this forum it's often modified by 'the <x> implementation of <myFavouriteLanguage>', but again we should be striving for portability.
I realise that lots of people will disagree with this, but from my point of view we're not trying to turn out programmers at this stage, just to give interested people the confidence to explore further.
I'm also avoiding - perhaps I shouldn't even mention it - the question of style/structure/objects. That, I think, is Advanced Computing, though I hope that the subject can be taught in a manner that leads on to discussion of good practices. We would, I hope, also be explaining that different tasks require different techniques; the discipline of writing modules in a large database application spread across multinational concern is not the same as that required for writing time-critical control code for (say) an aircraft's fly-by-wire.
For what it's worth.