Насчет 3 вопроса и ответа Александр"символ подчёркивания" на этот вопрос, итак начнём с того что все программы или скрипты(как разновидность программ) комппилируюются перед выполнением(умники шас скажут что есть интерпритаторы языков я скажу да не все программы скрипты компилируються, инные интерпритируются).
Так уж получилось что компютеры не понимают вашей писанины вроде того что вы пишите в блокноте(ином текстовом редакторе) когда собираетесь создать скрипт, а понимает он машинный код где пишутся инструкции процессора. (не верите гуглите машинный код). Если вы не процессор лучше вам этого кода не писать и не читать. Но умные дядьки создали языки прозраммирования и скрипты который переводят ваш код в блокноте на машинный код. Так вот если не перевести код от обычного(вашего, из блокнота) к коду машинному, то процессор посмотрит на этот код и скажет: пользователь, а не пошол бы ты...
Как вы уже поняли программы не выполняются без компиляции/интерпретации, а скажет хто нибуть иначе смело шлите его куда подальше.
(4 вопрос) Как бы так сказать по-тише написание кода влияет на ВСЁ что этот код будет делать. Если в коде ошибки - начит вы их допустили, если программа долго исполняется - значит у вас "тяжелый" алгоритм, если скрипт тянет много RAM - значит вы оставили в памяти много информации и так далее. Насчет компактного кода, то тут обычно чем компактнее код тем лучше - надёжнее, быстрее, используется меньше ресурсов. И наконец-то длина переменных(в этом я не могу быть уверен) имена переменных сущуствуют до тех пор пока не произошла компиляция, далее уже есть ссилки(адреса памяти которые указывают на участки памчти где хранится та или инная информация).