Языки программирования. Обзор-ликбез.
Спецвыпуск Хакер, номер #004, стр. 004-036-2
Вскоре появился немного заторможенный Си. Большинство программ писалось на ассемблере, поскольку предпочтения отдавались именно скорости выполнения программ, но Си постепенно вытеснил ассемблер, поскольку более удобен для использования - ведь он все-таки язык высокого уровня, более нагляден и чуть позже вдобавок приобрел способность быть легко переносимым. Последнее оказалось одной из главных причин популярности медленных программ на Си - их было легко устанавливать на самых разных компьютерах, зачастую вообще не имеющих никакой совместимости.
Совсем давным-давно
Страшно подумать, но вся эта компьютерно-программистская кутерьма началась даже не в этом веке (который, кстати сказать, уже прошлый :)), а еще в ХIХ, позапрошлом веке. В тысяча восемьсот тридцатые годы математик Чарльз Беббидж загорелся великолепной и (по тем временам) абсолютно сумасшедшей идеей построения "думающей" машины. Идейка еще та была. ;-) Хотя Беббидж прекрасно понимал, в какую авантюру он втягивается, он все-таки решился на постройку полностью автоматического счетного устройства. Эта машина должна была выполнять одно сложение в секунду и работать без участия человека. Наверное, первым языком программирования нужно считать язык программирования для машины Беббиджа. Он предполагал, что его машина будет складывать и вычитать за одну секунду, умножать два пятидесятизначных числа за минуту, делить стозначное на пятидесятизначное тоже за минуту. Шустрая машинка ;-). Но, увы, он так и не достроил машину из-за нехватки средств (к тому времени вся машина целиком занимала огромную комнату) и рабочих. Своих денег Беббиджу не хватило, а никто другой не соглашался ему помочь, потому что никто не верил в эту затею с автоматической машиной. Ее даже называли "чудачеством Беббиджа". А первым программистом (и по совместительству - первой программисткой!) стала дочь Беббиджа - Кэтрин Беббидж. Она помогала ему составлять программы для этой "чудо-машины". А кто-то говорил, что у женщины-программиста с программированием столько же общего, сколько у морской свинки с морем. ;-)
Как это делается?
Однако вернемся к не столь давним временам. Сегодня существует три основных принципа написания программ и, соответственно, построения языков программирования. Самый первый из них и старший по возрасту - модульный принцип. Модульным он назван потому, что каждая задача для предстоящего программирования разбивается на какие-то цельные завершенные части. И программирование ведется исключительно по этим частям - написали часть номер 1, протестировали ее, написали часть номер 2, протестировали ее - потом все вместе собрали и получили программный продукт. То есть программу в конечном итоге можно представить в виде мозаики, которую сначала рисует, а потом и собирает вместе программист. Большим плюсом данного подхода (и, собственно, причиной, по которой он появился) является возможность работы над программой не одного (зашибись!) программиста, а нескольких или даже нескольких групп программистов. Простых и близких примеров языков модульного принципа можно набрать сколько угодно - это и Pascal, и C, Phyton и даже Perl с его модулями *.PM. Только последние два представляют собой несколько более продвинутый вариант - о них немного позже. Весь код обычно разбивается на процедуры и функции, каждая из которых делает что-то независимо от других. Не совсем, конечно, независимо, все-таки должна быть какая-то связь между ними. ;-)