Typing can certainly be more productive. However, it can also be error prone. You might checkout Blockly (the lower level language used to implement the current version of Scratch).
A lot of the stuff we type out in code is syntax and templates. Like this loop:
for (let i = 0;
i < cars.length;
i++) {
text += cars[i] + "<br>";
}
Starting out, it’s hard to tell if the program syntax is wrong or if the program logic is wrong (just getting the snippet above to look close to right on HN is a pain :-)). Blockly makes that easier by mistake proofing the syntax so the programmer can focus on the logic, variable names, etc.