Чем отличаются компилируемые и интерпретируемые языки программирования?
Компилировать или нет? Ответить на этот вопрос почти невозможно. Если вы хотите научиться программировать в профессиональных целях, тогда хорошей идеей будет присмотреться к тому, что используют другие.
Например, в последние годы огромное количество программистов используют платформу .NET, которая включает в себя ASP.NET, C #, JavaScript/JQuery/AngularJS. Все эти языки программирования являются частью инструментария Windows. И хотя .NET стал доступен для Linux, пока он не используется достаточно широко для этой ОС. В мире Linux используют Java, PHP, Python, Ruby On Rails и C.
Что такое компилируемый язык программирования?
#include
int main()
{
printf("Hello World");
}
Выше приведен простой пример программы, написанной на языке программирования C. Это пример компилируемого языка программирования. Чтобы выполнить код, его необходимо запустить с помощью компилятора. Для этого я использую следующую команду Linux:
gcc helloworld.c -o hello
Приведенная выше команда превращает код из формата, удобного для восприятия человеком, в машинный код, который может выполнить компьютер. gcc сам является скомпилированной программой (компилятор gnu c).
Скомпилированную программу можно выполнить, просто запустив имя программы следующим образом:
./hello
Преимущества использования компилятора заключаются в том, что он обычно работает быстрее, чем интерпретируемый код, так как ему не нужно обрабатывать код «на лету» во время работы приложения.
Кроме этого, скомпилированная программа будет проверена на наличие ошибок во время компиляции. Если есть команды, которые не понравились компилятору, то о них будет сообщено. Это позволяет исправлять все ошибки перед запуском программы.
Но то, что программа скомпилирована успешно, еще не означает, что она будет работать так, как вы ожидаете. Поэтому все равно нужно протестировать приложение.
Ничто не идеально. Если есть программа на компилируемом языке С, скомпилированная на компьютере, работающем Linux, я не могу копировать эту скомпилированную программу на Windows и рассчитывать, что исполняемый файл будет выполнен.
Чтобы запустить ту же программу на Windows, нужно будет снова скомпилировать ее, используя компилятор C на компьютере под управлением Windows.
Что такое интерпретируемый язык?
print ("hello world")
Приведенный выше код представляет собой программу на языке python, которая отображает слова «hello world».
Для выполнения кода нужно его компилировать сначала. Вместо этого я могу просто запустить следующую команду:
python helloworld.py
Приведенный выше код не нужно компилировать. Но необходимо, чтобы python был установлен на компьютере, на котором будет работать скрипт.
Интерпретатор python принимает удобный для восприятия человеком код и превращает его в промежуточное «состояние», прежде чем сформировать то, что может прочитать ПК. Все это происходит за кадром, и пользователь увидит только слова «hello world».
Принято считать, что интерпретируемый код будет работать медленнее, чем скомпилированный код, потому что он должен проходить этап преобразования кода в отличие от скомпилированный кода, который просто выполняется.
Хотя это может показаться недостатком, существует ряд причин, по которым интерпретируемые языки полезны. Одна из них состоит в том, что гораздо проще выполнить программу, написанную на Python, в Linux, Windows и OSX. Просто убедитесь, что Python установлен на компьютере, на котором вы хотите запустить скрипт.
Еще одно преимущество заключается в том, что код всегда доступен для чтения, и его можно легко изменить. В случае со скомпилированным кодом нужно найти, где находится код, изменить его, скомпилировать и заново запустить программу.
В случае использования интерпретируемого кода вы открываете программу, меняете ее, и она готова к работе.
Так какой же язык использовать?
Сомневаюсь, что выбор языка программирования для изучения будет определен тем, что вы узнали, какие языки являются компилируемыми.
Несмотря на то, что некоторые языки явно умирают, такие как COBOL, Visual Basic и ActionScript, есть и другие, которые были на грани вымирания, но резко вернулись на прежнее положение, как например, JavaScript.
В общем, мой совет заключается в том, что если вы используете Linux, вам следует изучать Java, Python или C, а если вы используете Windows, изучаете .NET и AngularJS.