Каждая программа должна вывести число и немного рассказать о языке, на
котором она написана.
Если вы пользуетесь терминалом или терминальным окном, программа, которая
читает то, что вы вводите, выполняет это и отображает результат, называется про-
граммой- оболочкой. Оболочка операционной системы Windows называется cmd, она
выполняет пакетные файлы, имеющие расширение .bat. Для Linux и других опе-
рационных систем семейства Unix (включая Mac OS X) существует множество
программ-оболочек, самая популярная из которых называется bash или sh. Обо-
лочка обладает небольшими возможностями вроде выполнения простой логики
и разворачивания символа-джокера наподобие * в полноценные имена файлов.
Вы можете сохранять команды в файлы, которые называются сценариями оболоч-
ки, и выполнять их позже. Эти программы могли быть самыми первыми в вашей
карьере программиста. Проблема заключается в том, что со сценариями оболочки
трудно работать, если они содержат как минимум несколько сотен строк, а сами
сценарии выполняются гораздо медленнее, чем программы, написанные на других
языках. В следующем фрагменте кода демонстрируется небольшая программа-обо-
лочка:
#!/bin/sh
language=0
echo "Language $language: I am the shell. So there."
Если вы сохраните этот файл под именем meh.sh и запустите его с помощью
команды sh meh.sh, то на экране увидите следующее:
Language 0: I am the shell. So there.
Старые добрые С и С++ являются довольно низкоуровневыми языками про-
граммирования, которыми пользуются в том случае, когда важна скорость. Их труд-
нее выучить, и вам придется отслеживать множество деталей, что может привести
к падениям программы и проблемам, которые трудно диагностировать. Так вы-
глядит небольшая программа на языке С:
#include <stdio.h>
int main(int argc, char *argv[]) {
int language = 1;
printf("Language %d: I am C! Behold me and tremble!\n", language);
return 0;
}
С++ происходит из одного семейства с С, но имеет несколько отличительных
особенностей:
#include <iostream>
using namespace std;
Python против языка Х
35
int main() {
int language = 2;
cout << "Language " << language << \
": I am C++! Pay no attention to that C behind the curtain!" << \
endl;
return(0);
}
Java и C# являются преемниками языков С и С++, избавленными от некоторых
проблем предшественников. Однако они немного избыточны и ограничительны.