Хотя сама технология node js весьма нова,её корни уходят в те далёкие времена, когда Microsoft выпустил Qbasic, распространяемый тогда ещё вместе с операционной системой MS-DOS. По крайней мере, изучение принципов работы этой технологии вызывает стойкое дежавю и еще более стойкую ассоциацию с бейсиком.
За что ругали бейсик?
Помимо своей примитивности, скудного набора операторов и функций, бейсик получил дурную славу «недо-языка» потому что был всего лишь интерпретатором. Проще говоря, он не превращал, написанный программистом с его помощью код в двоичный бинарный, понятный машине, а при исполнении попросту транслировал каждую его строчку.
Подобный алгоритм вызывал заслуженное возмущение, ведь в худшем случае Вы не могли написать и запустить написанную вами же программу, не используя при этом саму среду разработки, а в лучшем ваш код вместе с частью самого интерпретатора бейсик «вшивался» в исполняемый файл. Последнее не лучшим образом влияло и на размеры файлов и на занимаемую ими память и на скорость исполнения. Как это ни забавно, но тоже делает и node js. Язык программирования бейсик считался недо-языком именно из-за интерпретации кода и по этой же причине node js, считается передовой технологией.
Объяснение метаморфозы
Это действительно может показаться странным, ведь то, что раньше называли плохим направлением в программировании вдруг стали считать вершиной в сфере программирования. Как же так? На самом деле ответ прост. По сути, сейчас в каждый браузер встроен интерпретатор скриптового языка JavaScript.
Код, написанный на JavaScript подобно тому, как бейсик запускал программу на нём же написанную, запускается браузером. То есть браузер служит средой исполнения.
Так как эта среда исполнения есть у всех, минус интерпретации можно использовать как плюс. Сложность переносимости кода – вроде бы отпала. Только вот осталась проблема – код JavaScript не может быть выполнен вне браузера, следовательно, с его помощью нельзя написать серверное, стационарное приложение. Тут и появился node js применение, которого и обеспечивает такую возможность. Условно говоря, node js выполняет те же функции, которые выполнял интерпретатор Бейсик. Только тут языком для написания кода служит JavaScript, при помощи которого и осуществляется программирование, на node js осуществляется лишь воспроизведение этого кода.