Сергей Губанов писал(а):
Александр Сергеевич, а нет ли у Вас готовых (таких же прямых) ответов на вопросы: Что такое операционная система? Язык программирования?...
Что такое операционная система, я бы пока говорить не стал. Дело в том, что в настоящее время "операционная система" - это не полностью сформированное понятие. Совсем недавно, ОС выполняла роль "прокладки" между железом и... железом. Собственно, название DOS (дисковая операционная система) относилось не только к MS DOS или IBM DOS, но и к большому спектру других систем, включая и Unix-системы, OS-360/370, VAX и пр. Задача взаимодействия с пользователем, не ставилась, и интерфейс сводился к вводу команд и имен системных утилит.
Чуть лучше отношение к пользователям стало, когда появился графический интерфейс (кстати, интересная, с точки зрения истории, ссылка
The Library for System Solutions End User Interface Reference. An IBM Redbooks publication Год издания 1994). Однако принципиально изменилось не так много. Раньше при общении с ОС пользователи указывали свичи и опции в командной строке, сейчас стали расставлять "галочки" в checkbox. Drag & drop, paste & copy, конечно облегчают жизнь, но не решают принципиально новых задач.
Важнее стало то, что вслед за графикой последовало мультимедийное содержание: звук, музыка, изображения и видео. И хотя по формальным признакам с мультимедийным содержанием работают отдельные приложения, ОС без поддержки мультимедиа большого успеха у пользователей иметь не будет. Мне это представляется важным, поскольку, информация должна иметь максимально удобную форму для восприятия и интерактивного взаимодействия человека с ней.
Очевидно, что процесс модернизации ОС не остановится на достигнутом. Будут реализовываться планы по переносу информации в сеть (а-ля "облачные вычисления/приложения"). Будут совершенствоваться устройства для доступа в сеть и операционные системы этих устройств. А в итоге мы придем к тому, что
под операционной системой будут понимать средство работы с информацией, представленной в электронном виде (включая безопасный доступ к информации, ввод информации, ее обработку и модификацию, тиражирование, передачу/рассылку и уничтожение). Пока до этого далековато, а, следовательно, это определение должно обрастать массой дополнений, включая определение "железа", как это сделал Алексей Донской, определение системных и прикладных программ и т.д. и т.п.
Язык программирования? Как и любой другой язык, язык программирования - это средство выражения и передачи (информации). Хотелось бы, чтобы язык программирования был строго формальным, но, как Вы понимаете, не все языки программирования к этому стремятся. Также хотелось бы, чтобы существовал не один язык, а семейство семантически единых языков, поскольку при создании систем решаются принципиально разные (не только алгоритмические) задачи.
"Выразительность" любого языка зависит от того, какую информацию на нем хотят передать. Чем больше информационных нюансов, тем больше эпитетов... отдельных языковых конструкций. Однако "выразительность" языка ближе не к самому языку программирования, а к тем библиотекам и макросам, которые входят в "штатную поставку" или "рекомендуемые разработчиками расширения".
Концептуально мне ближе всего языки Форт и Макро-Ассемблер. Ну, про Форт, Вы не хуже меня знаете, а на макро-ассемблере мне пришлось работать довольно долго. И мне до сих пор в ЯВУ не хватает той гибкости, которые обеспечивали макро-определения ассемблера. А TASM-3.0 был к тому же объектно-ориентированным... только ошибок в нем было очень много... к сожалению. Макросы обеспечивали высокую выразительность языка в целом (при грамотном их использовании, разумеется) и легкость настройки под любой класс задач.