I agree: Lua is absolutely one of the best things to be teaching high school students. You can either sit entirely in the Lua language itself, or you can learn to extend the capabilities of the VM and interface with outside libraries and frameworks.
I think the big elephant in the room is more to be found further upstream, in the area of manufacturing. Worrying about software hacks is one thing - not having the faintest absolute clue exactly *what* is inside the chip package is something else entirely. Think its an accumulator bank? Oh sorry, maybe we forgot to mention the harmonic bundles associated with wave guidance within the interstitial distances of the rapidly blinking transistors
The game is over folks, or rather
We need to evolve to adapt to this new threat to the species, and instead of seriously *resisting* its effects on our being, we - the true power - direct the feature to our favour. If, out of the NSA catastrophe, we gain a "New Internet" wherein *everything, everywhere* for 15 years, was available to everyone, then we'd have indeed a new era in the human species. A truly evolutionary step, made by mistake - perhaps.
I'm no fan of Java-based curricula, for the same reason I'd be no fan of Fortran-based curricula. Computing isn't about one language. Each language and system shows you one hyperplane of a vast multidimensional space. The best programmers know lots of languages, and choose wisely among them — or even create new ones when appropriate.
In the production world, there are times where some C++ or Java code is appropriate
(Just last night, at a meetup, I was talking with two bright young physicists who reported that their universities don't do a good enough job of teaching Fortran, which is the language they actually need to do their job. Scientific computing still relies heavily on Fortran, Matlab, and other languages well removed from what's trendy in the CS department — no matter if that CS department is in the Java, Haskell, or Python camp. But if you want to learn to write good Fortran, you basically need a mentor in the physics department with time to teach you.)
And there are times when the right thing to do is to create a new language, whether a domain-specific language or a new approach on general-purpose computing. There's a good reason Rob Pike came up with Sawzall, a logs-analysis DSL that compiles to arbitrarily parallel mapreduces; and then Go, a C-like systems language with a rocket engine of concurrency built in.
(And there's a good reason a lot of people adopting Go have been coming not from the C++/Java camps that the Go developers expected, but from Python and Ruby: because Go gives you the raw speed of a concurrent and native-compiled language, plus libraries designed by actual engineers, without a lot of the verbose bullshit of C++ or Java. Would I recommend Go as a first language? I'm not so sure about that
What would an optimal computing curriculum look like? I have no freakin' clue. It would have to cover particular basics — variable binding, iteration, recursion, sequencing, data structures, libraries and APIs, concurrency — no matter what the language. But it can't leave its students thinking that one language is Intuitive and the other ones are Just Gratuitously Weird
But the big G doesn't contribute anything to the work of creatives.
You never use a search engine while writing? They're awfully handy for fact-checking, looking up sources, and so on.
But I suppose those sorts of activities are not required these days