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

Как мы уже выяснили, компьютер - примитивное создание, которое мыслит нулями и единицами, из которых складываются числа. Так что все, что может делать процессор, так это оперировать этими числами. Так и программы – это тоже числа, которые воспринимаются процессором как команды к выполнению каких-то действий.

Мы также выяснили, что первые программисты писали программы в машинных кодах. Тогда еще не было компиляторов и приходилось все писать числами. Это адский труд. Постоянно держать в памяти таблицу машинных кодов - это тебе не таблица умножения. Например, тебе понятно число 8BC3. Нет? А это простая команда копирования между двумя ячейками регистров. Это просто пример, потому что, тогда регистры были другие и процессоры были намного проще.

Со временем компьютер стал умнеть. Он все так же оперировал числами, но делал это намного быстрее. Но программист - это человек, а не железка и ему очень тяжело создавать логику в числах. Намного легче работать с привычными словами. Например, все ту же команду удобней записать словами типа "скопировать ebx в eax". Но что делать, если компьютер не понимает слов, а только числа? Выход есть - написать такую программу, которая будет превращать текст в машинные коды. Пусть компьютер сам создает байт-код. Такую программу назвали компилятором. А язык, на котором писался текст программы, назвали языком программирования.

Рис.7.1 Программа в машинных кодах и Assembler

И вот был написан первый компилятор. Эту программу назвали Assembler (рис. 7.1), что переводится, как "сборщик". Писать на нем практически так же, как и в машинных кодах, только теперь уже использовались не числа, а понятные человеку слова. Например, все та же команда копирования регистров теперь выглядела так: "mov eax, ebx". То есть цифры заменились на понятные слова.

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

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

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

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

1. Какой язык самый лучший?

2. Что лучше - язык высокого уровня или низкого?

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

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

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

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

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

Лидеров в визуальных языках является Borland, а приверженцем ООП остается Microsoft. Конечно же, Билл Гейтс пытается встроить в свои языки визуальность, но она примитивна по сравнению с такими гигантами, как Delphi, Kylix или C++ Builder. Это связано с изначальной дырой MFC, которая не может работать визуально. Нужна глобальная переработка кода, которую почему-то не хотят делать.

Прогресс не будет стоять на месте и переход на новые технологии программирования рано или поздно состоится.

Некоторые считают самая лучшая технология - визуальность. Твоя среда разработки просто обязана быть визуальной, потому что, за этим наше будущее.

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

1. Если ты будешь писать базы данных, программы общего значения или утилиты, то твой язык Delphi или C++ Builder.

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

3. Если это будут драйверы и работа с железом, то тут критичен размер файла, а значит твой язык чистый С или Assembler.








Дата добавления: 2015-04-21; просмотров: 1039;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.006 сек.