Многие полагают, что программирование появилось десять или двадцать лет назад, в крайнем случае, пятьдесят лет назад. На самом деле программирование появилось с появлением речи у человека. Как только один человек научился говорить, а другой человек понимать его, первый человек стал давать второму указания, что и как нужно делать. Например: «Иди к костру и выбери самый большой кусок мамонта и принеси его мне». Я думаю, что те из читателей, кто уже знаком с основами программирования, без труда представят себе программу, описывающую это указание на одном из языков программирования. С древних времен «бытовое» программирование практически не изменилось. Например, посылая ребенка в магазин за молоком, родители дают ему инструкции: «Иди в магазин и купи литровый пакет молока, а если литровых пакетов не будет, то купи два пакета по 0,5 литра». И эту можно инструкцию легко представить написанной на одном из языков программирования. Таким образом «бытовое» программирование существует с древнейших времен и до наших дней, а примерно пятьдесят лет назад произошла техническая революция и появился первый компьютер которому можно и нужно было дать инструкцию, что и как делать. К несомненным плюсам компьютера следует отнести его послушность, он никогда не скажет в ответ на указания: «Иди сам к костру и выбирай свой кусок мамонта». Но по закону подлости или по закону диалектики там, где есть плюс, всегда есть минус. В нашем случае минус в том, что инструкции для компьютера должны быть четким и понятными для него. С этого момента начинается история программирования для компьютеров. Это история о том, как люди придумывали, как с наименьшими затратами сил и времени объяснять компьютерам, что и как они должны делать.
Далее в этой книге будет рассказ об основах программирования, но не так как в большинстве учебников: «Оператор – это …», «Объект – это …», а в историческом контексте. Кто и когда придумал различные конструкции и приемы программирования, зачем это было нужно и почему до этого никто не додумался раньше. На мой взгляд, такой подход более полезен, чем попытка на первом занятии понять, что такое объект и чем инкапсуляция отличается от полиморфизма. Если Вы со мной согласны, то вперед.