Страницы

Мир программ физически реален

Слово «виртуальный» в своём изначальном определении означает «вымышленный». В этом отношении применение термина «виртуальная машина», широко используемого в сфере информационных технологий и, вообще, отношение к программному миру как виртуальному является крайне неудачным. Иногда сходно используют термин «абстрактная машина», но и его следует признать неудачным, поскольку абстрактного в этих машинах не больше, чем воображаемого.

Типичная «виртуальная машина», например, для JavaScript, исполняющаяся в браузере, естественно, не является воображаемой. Скорее, её следовало бы называть программной машиной. А программное обеспечение существует в той же физической реальности, что и аппаратное обеспечение, и, соответственно, подчиняется тем же физическим законам. Разница между аппаратным обеспечение и программным пролегает не в реальности и виртуальности, а в лёгкости изменения. Это предопределило, что в современных компьютерах аппаратная часть представлена веществами в преимущественно устойчивой форме, а программная — электромагнитными полями. И то, и другое являются составляющими машины и, естественно, материальными.

Кстати, вычленение из просто машины в отдельное понятие той её части, которую легко и быстро изменять и даёт то грандиозное преимущество, которое обеспечило существенный прогресс в области информационных технологий. Это преимущество само по себе настолько велико, что на десятилетия обеспечило головокружение от успехов, отодвинув на второй план другие важные в инженерии вещи, позволив в области ПО резвиться самыми разными способами.

Так как программы физически реальны и имеют большое прикладное значение, то понимание теории программирования — это важная составляющая в понимании материального мира. Верно и обратное — понимание физической сути важно для понимания программирования.

Синтаксис — основа языка программирования, а не что-то там

В среде не только обычных программистов, но даже и некоторых разработчиков, близких к компиляторной тематике, принято пренебрежительное отношение к синтаксису языка программирования как к второстепенной детали, которой противопоставляется семантика, которая только и имеет серьёзное значение. Считается, что в крайнем случае, всегда можно снабдить один язык программирования несколькими синтаксисами и это лишь вопрос вкуса. Но есть одно очевидное соображение, которое, очевидно, оказалось не таким уж очевидным, но которое делает такое отношение абсурдным.