The problem here is that (in the UK at least) kids come out of school knowing nothing about about a computer works or programming - windows/mac/ios/android increasingly hide this from you. Kids think that programming a computer game is some trival task and have no idea how to even make the simplest of programs.
The counter point is that they shouldn't need to know this, but then why do we teach flower germination? or the causes of the second world war? or Shakespeare? - I've never had to use these in everyday life.
It's not all that bad now and wasn't when I was at school (in the UK). During my time, we had the Acorn BBC Micro to start with, then the Archimedes. These were both programmers dream machines and code we did, usually plugged into large Lego machines. After that it diverged into "office studies" as RM dumped millions of PC clones but there was still Quick Basic and Turbo Pascal available that was taught at a lot of schools either as a mainstream subject or through "computer clubs".
Now there was a gap for me but I have children now and they are learning how to write HTML and basic JavaScript. They are using software to produce video productions and stop-frame animations, they are even getting instruction from parents on how to write python. They have Windows desktops, iPads and a few Linux netbooks. They have it pretty good.
And this is a London primary school with an Ofsted "needs improvement" rating.
Well, I'm glad about that. I guess I was the 'lost generation' - sure, it was BBC Micros and Acorns at primary, but we basically used them for Chuckie Egg and Lander respectively - no code. By the time I got to secondary, it was the 'Office Studies' era.
If it hadn't have been, I might have skipped the 7 year continental philosophy grad school detour. Ah well...
As for Linux in schools, my feeling would be that there should be a room or two of Linux boxes, and the rest should be Windows - simply because 90% of computer usage in schools, according to some statistics I just made up, consists of doing your homework double quick at breaktime or other mundane uses where it would be better if kids were working with an OS they recognise from home. People who want to do CS/code type subjects should be taught Linux, and it should be available to 'computer clubs' etc.
At school I had much the same type of machines which I could program on, though in my final year as they moved to windows, pretty much any possibility of programming was taken away due to the system.
I visited a school the other day, all they seemed to have were windows machines, which presumably are pretty locked down. Fortunately we brought Raspberry Pis to the school and kids seem to love it and learnt a bit of python on them.
> have no idea how to even make the simplest of programs.
The simplest possible programs are still very simple and short. Even with verbose languages.
One drawback here is that even a simple game by modern standards is light-years ahead of my best efforts on the Apple II. And those best efforts would be considered rather mundane or sub-standard today. A modern-looking program involves interacting with a GUI library and they are complicated animals.
What a successful teacher should do is to instill the love for the essential part of the program. When you write a "guess the number", there is no need for particle generators, applause, music and animated backgrounds. Keeping the basics short the kids will learn that programming is no different than creative writing using imperative forms all the time.
The counter point is that they shouldn't need to know this, but then why do we teach flower germination? or the causes of the second world war? or Shakespeare? - I've never had to use these in everyday life.