Rambler's Top100


Виртуальный клуб начинающих программистов на Delphi


Заводь
Мелководье
Сокровищница
Рифы
Течения
Архивный грот
Дальние земли
Жемчужница
Ловцы жемчуга
Почтовый грот
Дельфинарий
Карта бухты

Rambler's Top100


Mastak.ru - качественный хостинг на двух континентах

The List of Russian Web Servers WebList.Ru

История возникновения языков программирования.

    Когда-то очень давно команда очень ленивых чуваков решила придумать железяку, которая думала бы за них, ну или хотя бы чего-нибудь помогала делать (читай - делала). Ну, очень они были ленивы. Немного поколдовав, они все-таки придумали такую железяку. Но, эта железяка умела выполнять лишь простейшие операции. В попытках заставить свою новую игрушку выполнять последовательность простейших команд (программу), чуваки научили машинку хоть немного создавать видимость работы. И опять же, НО, железяка так и не научилась думать сама. Прежде чем заставить ее работать было необходимо все ей разжевать и в рот положить. Вот такое разжевывание (перечисление последовательности простейших команд) и получило название программирование. Сколько чуваки не бились над все возрастающими проблемами, они не смогли научить свою железку думать и создавать программы, что называется, по ходу пьесы. Вот и приходиться все-таки напрягаться самим и придумывать программы, по которым она до сих пор выполняет сложные задачи. И получила эта железяка имя - компьютер.
    Компьютер - это одноклеточное (читай - примитивное) создание, которое "мыслит" нулями и единицами, из которых складываются числа. И это все что может сделать компьютер. Поэтому, программы - это тоже цифры, которые воспринимаются процессором компьютера как команды к выполнению каких либо действий. Вот так и появились на свет программисты, которые писали последовательность команд для процессора. Эти последовательности выглядели как простые цифры и получили название машинный код. Итак, первые программисты писали в машинных кодах. Тогда еще не было компиляторов и приходилось все писать числами. Сейчас уже невозможно даже и представить какой это адский труд. Постоянно держать в памяти таблицу машинных кодов (это ведь не таблица умножения). Например, число 8BC3. А это простая команда копирования между двумя ячейками регистров ebx в eax. Это просто пример, потому что тогда таких регистров еще не было, и процессоры были намного проще.
    Со временем компьютер стал умнеть. Он все так же оперировал числами, но делал это намного быстрее. Но программист - это человек, а не железяка и ему очень тяжело создавать логику в числах. Намного легче работать с привычными словами. Например, все ту же команду удобней записать как "скопировать ebx в eax". Но что делать, если компьютер не понимает слов, а только числа? Выход есть - написать такую программу, которая будет превращать текст в машинные кода. Пусть железяка сама создает байт-код. Такую программу назвали компилятором. А язык, на котором писался текст программы - назвали языком программирования. В определенный момент, кого-то из программистов посетила шальная мысль "все, баста, пора завязывать с рутиной, нужна специальная программа для написания программ". Во как замутил. Созвал консилиум и на общей стрелке порешили создать такую программу и назвали все такие программы компиляторами. Первым компилятором был assembler, что переводиться как сборщик. Писать на нем практически так же, как и в машинных кодах, только теперь уже использовались не числа, а понятные человеку слова. Например, все та же команда копирования регистров теперь выглядела так: "mov eax, ebx". То есть цифры заменились на понятные слова.
    Чудесненькая программа получилась, все прекрасно и удобно, но почему-то среди программистов возникли споры и разногласия. Кто-то воспринял новый метод с удовольствием. Ну а кто-то стал орать благим матом, что настоящий программист обязательно должен писать в машинных кодах и никак иначе. А все остальные шарлатаны и не могут носить столь почетного звания. Любители языка аssembler кричали, что программировать стало проще и быстрее, а противники кричали, что программа написанная в кодах работает быстрей. Говорят, что эти споры доходили до драк и иногда лучшие друзья становились врагами.
    Тогда никто не мог себе представить, чем же все может закончиться. Но время показало свое. С помощью Assembler программы писались быстрее, а это один из основных факторов успеха любой программы на рынке. Люди начинают пользоваться той программой, которая выходит на рынок первой. Даже если более поздний вариант лучше, человека трудно переубедить перейти на другую версию. Здесь играет большую роль фактор привычки. К тому же, к тому моменту, когда программист напишет свою первую версию в машинных кодах, программист на assembler выпустит уже пару новых версий.
    Вот так и получилось, что те, кто программировал на assembler стали резко убегать вперед, а те кто программировал в машинных кодах отстали быстро и надолго (читай - навсегда).
    И начался тогда настоящий бум. Языки программирования стали появляться один за другим. Так появились С, ADA, FoxPro, Fortran, Basic, Pascal и другие особи. Некоторые из них были предназначены только для детей, а некоторые и для профессиональных программистов. И тут споры перенеслись в другую плоскость, - какой язык лучше. И этот спор длится уже около 30 лет и конца ему не видно. Некоторые говорили, что это Pascal, другие утверждали что С, ну а кое-кто кричал, что это Visual Basic. Этот спор разделился на две части:
1. Какой язык самый лучший?
2. Что лучше - язык высокого уровня или низкого?
    Первый спор не может закончиться до сих пор. Каждый пытается доказать, что его язык программирования самый крутой.
    Наиболее интересным проходил спор: "Что лучше - язык высокого уровня или низкого?". Язык низкого уровня это тот, который наиболее приближен к командам процессора, то есть assembler. К языкам высокого уровня относят С, Pascal, Basic и др. Этот спор проходил в той же манере, как и спор между любителями аssembler и любителями машинного кода. Только теперь приверженцы assembler утверждали, что их код самый быстрый, а любители языков высокого уровня утверждали, что они напишут программу быстрей, чем самый лучший виртуоз на assembler.
    Спор продолжался достаточно долгое время. И опять победила скорость разработки и удобство языка программирования. Любителям assembler пришлось отступить, потому что теперь они превратились в догоняющих и не смогли угнаться за языками высокого уровня.
    Конечно же, нельзя сказать, что, машинные коды и assembler насовсем ушли из нашей жизни. Они используются до сих пор, но в очень ограниченном количестве. Assembler используется только в качестве вставок для языков высокого уровня, а машинные коды используются для написания того, чего нельзя сделать компилятором (да и для написания самого компилятора они нужны). Ушедшие технологии живут, и будут жить, но рядовой программист очень редко встречается с ними. Следующей ступенью стало объектно-ориентированное программирование. Язык С превратился в С++, Pascal превратился в Object Pascal и так делее. И снова борьба, кровь, базуки, кинжалы. И снова скорость разработки против быстроты кода. Опять крики, споры, драки и оскорбления.
    Война длилась несколько лет. Сколько программеров в ней полегло... Сколько времени загубленно... А результат - победила скорость и удобство разработки, т.е. объектно-ориентированное программирование. С чем вас и поздравляем. Скорее всего, последней (на сегодняшний день) крупной революцией происходящей в программировании считается переход на визуальное программирование. Этот переход происходит прямо на наших глазах. Визуальность дает нам еще более удобные средства разработки для более быстрого написания кода, но проигрывает объектности по быстроте работы. Вот многие и стоят на перекрестке. Но время покажет, по какой дороге идти. Правда истории рот не заткнешь, и она уже не раз высказывалась по этому поводу.
    Лидеров в визуальных языках является Borland, а приверженцем объектности остается Microsoft. Конечно же Билл пытается встроить в свои языки визуальность, но она примитивна по сравнению с такими гигантами, как Delphi, Kulix или C++ Builder. Это связано с изначальной дырой MFC, которая не может работать визуально. Нужна глобальная переработка кода, которую почему-то не хотят делать. Вот народ и стоит на двух атомных бомбах и ожидает взрыва одной из них. Что победит - скорость разработки или скорость кода?
    На сегодняшний день существует такая градация выбора языка программирования:
1. Если нужно написать базы данных, программы общего значения или утилиты, то нужен язык Delphi или C++ Builder.
2. Если это игры, то желательно Visual C++ или Watcom C плюс знание assembler. Но это не значит, что нельзя использовать Delphi или C++ Builder.
3. Если это будут драйверы и работа с железом, то тут критичен размер файла, а значит нужен язык чистый С или assembler. Визуальные языки будут жить и за ними будущее и на данный момент единственным лидером здесь является Borland.

Идеи и пожелания с удовольствием почитаем.

Хостинг от uCoz