On a more serious note, is there any fundamental reason that we'd need a big bunch of discrete symbols? If you look at the evolution of language development, we already went from machine code, which is extremely verbose, to languages like Python/Ruby which are pretty concise.
If we continue this, we'll eventually be high level enough to not think in terms of statements but in terms of data transformations, filters, queries, reductions, etc.
And with touch you could already do a lot with making input context sensitive. Only show the options that make sense at that point. Hardly a need to show a full keyboard unless typing some identifier for the first time.
Anyway, it's very interesting to think about what is possible if you leave behind current assumptions such as code=text.