2. (This question is about interactive coding, as a dialogue).
Human dialogs (conversations) are interactive. I think in the past computers were limited, and computer languages had to be very small (as compared with any human language + culture) so that a programmer could learn what the computer could do. But now that services can be connected (programming as a service?), would it make sense to have a dialogue? My example is that in the 1980s it wouldn't have made sense for any programming language to have a function called double() that just multiplies by 2. There's * 2 for that.
But in 2016, it makes sense for a beginner to write "and double it" and considerably less sense for a beginner to have to learn x *= 2 if they wanted to double a number.
Human language is also ambiguous. It would make sense for an interactive language to ask:
"Did you mean, set x equal to x multiplied by 2?" which most people would select, but maybe someone would select
"Did you mean, set x equal to the string "x" appended to the string "x"?"
For these reasons: do you think it would make sense to have an interactive programming language that is connected with a server you "talk" with interactively?
Or should programmers still have to learn a fixed programming language that has no room for interpretation, but instead a strict meaning.
Among other things, this means programmers can never write "it", "that", "which" to refer to a previous thing (since the referent could be ambiguous if the compiler doesn't confirm.) But every human language includes such shorthand.
I'd love to hear your thoughts regarding a connected, interactive programming process similar to the above (or just on whatever lines).