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

И вот был разработан первый компилятор. Эту программу назвали Assembler, что переводится как "сборщик". Писать на нем практически так же сложно, как и в ма­шинных кодах, однако теперь уже использовались не числа, а понятные, человеку слова.

Assembler

Текст на рисунке можно разделить на три колонки:

  • адрес инструкции;
  • машинный код инструкции;
  • код на языке Ассемблера.

Теперь все та же команда копирования регистров выглядела так: mov еах, ebx. В данном случае mov — это команда языка программирования, которая происходит от английского слова move, двигать, еах и ebx — имена регистров. Получается, что приведенная выше команда может читаться как двигать в регистр еах значение из ebx. Да, код на ассемблере не совсем нагляден, но зато намного удобнее, чем то же самое, но в машинных кодах.

Вроде все прекрасно и удобно, но почему-то среди программистов возникли споры и разногласия. Кто-то воспринял новый метод с удовольствием. А кто-то говорил, что машинные коды лучше.

 

Любители языка Assembler хвалили компиля­тор за то, что программировать стало проще и быстрее, а противники утверждали, что программа, написанная в кодах, работает быстрей. Говорят, что эти споры до­ходили до драк и иногда лучшие друзья становились врагами.

 

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

 

Тогда никто не мог себе представить, чем же все может закончиться. Но время показало свое. С помощью Assembler программы писались быстрее, а это один из основных факторов успеха любой программы на рынке. Люди начинают пользо­ваться тем продуктом, который выходит на рынок первым. Даже если более позд­ний вариант лучше, человека трудно переубедить перейти на другую версию. Здесь начинает играть большую роль фактор привычки. К тому же, когда программист напишет свою первую версию программы в машинных кодах, программист на язы­ке Assembler выпустит уже пару новых версий.

 

Вот так и получилось, что те, кто программировал на языке Assembler, превра­тились в убегающих вперед, а те, кто программировал в машинных кодах, превра­тились в постоянно догоняющих. В конце концов, первые убежали настолько "да­леко", что вторые не смогли догнать и вынуждены были или перейти на Assembler или отойти от программирования совсем.

 

С этого момента начался бум. Языки программирования стали появляться один за другим. Так появились С, ADA, FoxPro, Fortran, Basic, Pascal и др. Некоторые из них были предназначены только для школьников или обучения, другие были ориентиро­ваны на профессиональных программистов. И тут споры перенеслись в другую плос­кость — какой язык лучше. Некоторые говорили, что это Pascal, другие утверждали, что С, ну а кое-кто утверждал, что это Basic. Этот спор длится уже около 30 лет, и конца ему не видно. При этом все спорные вопросы разделились на две части.

  1. Какой язык лучший?
  2. Что лучше — язык высокого уровня или низкого?

Спор по первому пункту не может закончиться до сих пор. Каждый пытается доказать, что его язык программирования самый мощный, удобный и создает са­мый быстрый программный код. Мне кажется, что этот спор не закончится нико­гда. В принципе, такое положение дел устраивает всех, потому что это своеобраз­ная конкуренция. Благодаря ей происходит развитие языков программирования, и мы быстро продвигаемся вперед.

 

Так все же, какой язык лучше? На этот вопрос можно дать ответ, но немного позже.

 

Наиболее интересным был спор: "Что лучше — язык высокого уровня или низ­кого?" Язык низкого уровня — это тот, который ориентирован на команды процессо­ра, т. е. Assembler. К языкам высокого уровня относят С, Pascal, Basic и другие (на то время это были структурные языки программирования, они имели более высо­кий уровень по сравнению с ассемблером). Они ориентированы на людей и созда­ют им максимум удобства при написании программ. Этот спор проходил в той же манере, как и спор между любителями Assembler и любителями программирования в машинных кодах. Только теперь приверженцы языка Assembler утверждали, что их код самый быстрый, а любители языков высокого уровня утверждали, что они напишут программу быстрей, чем самый лучший программист на языке Assembler.

 

Спор продолжался достаточно долгое время. И опять победила скорость разра­ботки и "удобство" языка программирования. Любителям Assembler пришлось от­ступить, потому что теперь они превратились в " догоняющих".

 

Конечно же, нельзя сказать, что машинные коды и Assembler окончательно уш­ли из нашей жизни. Они используются до сих пор, но в очень ограниченном коли­честве. Язык Assembler используется только в качестве вставок для языков высоко­го уровня, а машинные коды используются для написания того, что не может сделать компилятор (да и для написания самого компилятора они могут потребо­ваться).

 

Ушедшие технологии живут и будут жить, но рядовой программист очень редко встречается с ними.

Следующей ступенью стало объектно-ориентированное программирование. Язык С превратился в С++, Pascal превратился в Object Pascal и т. д. И снова борь­ба. И снова скорость разработки против скорости выполнения программного кода. Опять споры, драки и оскорбления.

 

Война длилась несколько лет. Сколько времени было потрачено в спорах, сколько волос было вырвано на голове в процессе доказательств силы именно его программного кода. А в результате победила скорость и удобство разработки, т. е. объектно-ориентированное программирование (ООП).

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

 

Лидером в разработке визуальных языков программирования является Borland, а приверженцем ООП остается Microsoft. Конечно же, Билл Гейтс пытается встро­ить в свои языки визуальность, но она примитивна по сравнению с такими гиган­тами, как Delphi, Kylix или С++ Builder. Это связано с изначально неправильной разработкой MFC (Microsoft Foundation Classes— Основные Классы Microsoft), которые не могут работать визуально. Нужна глобальная переработка кода, кото­рую почему-то не хотят делать. Вот народ и стоит на двух атомных бомбах, ожидая взрыва одной из них. Как вы думаете, какая бомба рванет? Что победит — скорость разработки или скорость кода? Я не буду отвечать на этот вопрос. История говорит сама за себя, а мы подождем подтверждения этому.

 

К моменту написания этих строк, победитель уже начинает вырисовываться. Классический С++ уходит в сторону, а вместо него появляется С# и мощные визу­альные средства, идеология которых была позаимствована у Java и Delphi. Но Delphi уже давно визуальный и ориентирован на объекты и в нашей стране получил большую популярность, а С# только пытается захватить рынок.

 

Считается, что прогресс не будет стоять на одном месте и переход на новые технологии программирования рано или поздно состоится. Поэтому я уже перешел на Delphi. Если вы хотите успеть за прогрессом, то тоже обязаны вступить в пар­тию любителей Borland и его подразделения по средствам разработки CodeGear. Выбирайте любой из его компиляторов, и вы не ошибетесь. Для вас есть все, что угодно, — Delphi, JBuilder, Kylix или С++ Builder. Как видите, у корпорации Borland есть визуальные варианты всех языков, и они действительно лучшие.

 

Осталось только ответить на вопрос: "Какой язык программирования лучше?" Я уже несколько лет пытаюсь ответить на этот вопрос, но окончательного решения вынести не могу. Даже у того же Visual С+ + от Microsoft есть свои плюсы, хотя я его не очень люблю за корявость объектной модели. Как это ни странно, но поло­жительные стороны есть у всех. Вопрос остается только за тем, какие программы будут создаваться? Здесь можно дать примерно такую градацию.

  1. Если вы будете писать базы данных, программы общего значения или утилиты, то ваш язык Delphi или С++ Builder.
  2. Если это игры, то желательно Visual С++ плюс знание Assembler. Но это не зна­чит, что нельзя использовать Delphi или С++ Builder. В этих средах вы потеряете не намного больше в скорости работы, поэтому в большинстве игр можно не об­ращать внимания на эту потерю. Если правильно использовать свои знания, то и на самом медленном и слабом языке программирования можно создать шедевр.
  3. Если это будут драйверы и работа с "железом", где критичен размер файла, ваш язык чистый С или Assembler.

И все же большую массу программ занимают утилиты и базы данных. А тут ви­зуальность необходима, если вы хотите оказаться впереди. Визуальные языки бу­дут жить и за ними будущее. На протяжении всей этой книги будет рассматривать­ся лучший (это на мой взгляд, и он может отличаться от других) язык программирования — Delphi.

Корпорация Microsoft тоже движется в сторону визуальности и простоты разра­ботки программных продуктов. Об этом говорит их новая платформа .NET и язык разработки С#.

dle

Помоги проекту! Расскажи друзьям об этом сайте: