От безумного ассемблера до Swift: История развития языков программирования

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

Языки прошли длинный путь. Начиная с тех дней, когда ассемблер и машинный код были единственными средствами взаимодействия с компьютеров (которых еще нельзя было никак назвать портативными), и до эпохи, когда Swift и другие современные языки программирования предоставляют разработчикам высокоуровневые абстракции и эффективные инструменты. 

История языков — хроника поиска оптимальных способов выражения логики и решения задач.

Машинный код и Ассемблер

В первое время людям был доступен только машинный код. Выглядел он соответствующе — комбинаторный набор в двоичной системе исчисления. ПК также понимают только машинный код, но современные языки владеют собственными компиляторами и интерпретаторами, которые по-своему переводят абстрактный (человеческий) код на язык машин. 

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

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

Про него даже ходят мемы. 

Для комфортного программирования этого было недостаточно. Возникла весомая потребность в языке "для народа". Точнее, для специалистов из науки, которые смогли бы активно проводить исследования. 

Первые высокоуровневые языки “для народа”

После изобретения транзисторов и первых доступных компьютеров IBM разработали Fotran (его же альтернатива Algol Cobol и другие). Программисты получили возможность абстрагироваться от низкоуровневых деталей и сосредоточиться на разработке  читаемого и структурированного кода. Это был первый, так называемый, высокоуровневый язык. Кстати, крайне коммерчески успешный. 

Уже появилась потребность в специалистах, была необходимость в быстром подъеме скиллов программистов в областях ЭВМ. 

По-настоящему массовым программирование стало с появлением языка BASIC в 1964 году. Преподаватели Дартмутского Колледжа — Джон Кемени и Томас Курц — разработали его для обучения студентов основам программирования. 

Одна из важных черт Basic - его широкая доступность. Многие домашние компьютеры, такие как Commodore 64, Apple II и IBM PC, предоставляли встроенные среды Basic. Это позволяло обычным людям сразу начинать программировать, не устанавливая и не настраивая дополнительные инструменты.

Тот же ABC, про который мы чуть подробнее рассказывали в другом нашем материале, созданный в конце 1970-х годов в Центре математики и информатики в Амстердаме, как раз пытался заменить устаревший Basic. ABC также был направлен на упрощение программирования и делал упор на читаемость кода. Он включал в себя некоторые инновационные идеи, такие как автоматическое выделение памяти и использование строгой типизации.

Smalltalk, разработанный в исследовательском центре Xerox PARC в конце 1960-х, стал пионером объектно-ориентированного программирования (ООП), добавив в мир программирования новый подход. Всё в Smalltalk представлено в виде объектов. 

Но период подобных языков быстро сменился 70-ми. Временем, когда стали как раз появляться уже известные языки современности: C++, С, Pascal. 

К современности (70-е - наше время)

Появление первого языка семейства С – непосредственно сам C. Язык программирования был разработан в Bell Labs Деннисом Ритчи в 1972 году. Его создавали в контексте  разработки операционной системы Unix, и он быстро приобрел популярность благодаря своей простоте, эффективности и возможности низкоуровневого программирования. 

Язык C дал программистам прямой доступ к аппаратным ресурсам компьютера, что сделало его особенно полезным для системного программирования. Кроме того, его переносимость позволила использовать код на различных платформах, что сделало его ключевым инструментом в разработке операционных систем и приложений.

Не стоит забывать и про последующий C++ со своим знаменитым ООП.

С другой стороны появляется Pascal, созданный Никлаусом Виртом в 1970 году с целью предоставить язык, который способствовал бы обучению программированию и разработке надежных и структурированных программ. Pascal внес множество инноваций, таких как блочная структура программы, строгая типизация, использование процедур и функций. 

Он был призван стимулировать хорошие практики программирования и был широко использован в учебных заведениях для обучения основам алгоритмов и структур данных. Pascal также оказал влияние на развитие других языков программирования, включая Ada и Delphi.

Scheme, являясь диалектом языка программирования Lisp, отличается своей простотой и чистотой дизайна. Разработанный в MIT в 1975 году, Scheme является минималистичным языком, фокусирующимся на функциональном программировании и лямбда-исчислении. В его особенностях включены динамическая типизация, замыкания и сборка мусора. 

Кстати, о сборке мусора. Появляется и наш любимый Python. Но о его истории создания — читайте в другом материале. 

В конечном счете, появляются и языки разметки по типу HTML, веб-разработки по типу JavaScript и популярный Java, обеспечивающий независимость от машины, где запускается программа. Кстати, именно поэтому Java топ-1 в мобильной разработке. 

На самом деле, в 2020-е годы происходит интересная ситуация. Мы ждем создание полноценных квантовых компьютеров, которым потребуются свои ассемблеры. Уже появились языки крайне высокого уровня для обработки огромных массивов данных по типу R и Matlab. А в 20-ке используемых языков можно найти совсем молодой Swift от Apple. Впрочем, обо всем этом — уже в других материалах... 

Прошедшие десятилетия принесли с собой волну инноваций в мире языков программирования. Код ассемблера был буквально про самый глубокий уровень программирования и работу с железом. Basic, недоработанный ABC — “народные” языки, которые помогали учиться писать код. И, конечно, Smalltalk - первый язык, построенный вокруг ООП. Или "C", созданный в 1972 году — “мост” между низкоуровневыми и высокоуровневыми языками, обеспечивающий эффективность и гибкость. 

От функциональных языков, таких как Lisp, до объектно-ориентированных, воплощенных в языках Java и C++ — все это и есть история языков программирования. Каждый этап в развитии предоставил программистам новые инструменты для решения сложных задач.

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

Источник: https://habr.com/ru/articles/790804/


Интересные статьи

Интересные статьи

Мы продолжаем рассказывать о различных металлах, истории их открытия, применении и патентом аспекте. На этот раз речь пойдет о тантале. Данный металл пластичен, легко изготавливается, обладает высокой...
Вообще эта статья была написана еще в 2020 году во время активной фазы пандемии, когда мы еще не знали что нас ждет. Но мы понимали что масштабирование продукта, разработки, нагрузки уже вот начинаетс...
С появлением и развитием ИИ исследователи столкнулись с рядом этических вопросов, на которые сложно дать однозначный ответ. В научных кругах сейчас идут активные дискуссии по поводу того, что делать с...
Сегодня «Дело о колдунщиках» закрыто в ФАС. Напомню, краткая предыстория была про то, что группа ИТ-компаний Рунета объединилась и обратилась в ФАС с вопросом, нормально ли, что поиск даёт больше ...
Сперва сжигали магний, затем появились одноразовые лампы, в которых вспыхивала горючая фольга, ну и в итоге пришли к электронным вспышкам с ксеноном. На этом всё, спасибо за внимание!Если бы было так ...