CRAZY: Всем ЛАПЕНЬ👋🤓, вещает Crazy🤟👊, не пугайтесь мое такое приветствие, мне прям нравится странно, но не банально, ладно к делу, как вы заметили у нас на канале вышла первая статья от Bruce, а теперь от меня, каждый из нас будет писать на свои темы, Bruce начал с уникальных и необычных Марак машин, впереди еще больше, а я охвачу историю зарождение и как что и где было во время появления и развития программирования как и где это применяется в наше время и до какого масштаба все доберется,
Вы готовы к безумному мощному бесконечно уникальному путешествию по миру программ, ПОЕХАЛИ....
Когда-то мы писали, что попасть в геймдев можно без умения кодить. Это так, но программисты очень важны для игровой индустрии. Обойтись без этих специалистов геймдев не может. А чем они должны владеть? Языками программирования, конечно. Именно на них и пишется код. Давайте запустим машину времени, вернемся к истокам и узнаем, на чем писали задолго до C++ и Python.
Основы и не много истории
Ада Лавлейс. Первая в мире программа и взгляд в будущее
Ада Лавлейс
10 декабря 1815 года на свет появилась Ада Лавлейс, большинству из нас известная как самый первый в мире программист. Так уж получилось, что это звание принадлежит представительнице прекрасного пола. Сегодня исполняется двести один год со дня рождения этого человека. И в этом посте я бы хотел немного рассказать о самых интересных моментах из ее жизни, не отделываясь обрывочными фразами, но и не слишком уж углубляясь в детали. Материал можно найти, где угодно, имея под рукой Интернет. Однако мало кто полезет искать его просто ради интереса. Поэтому кому интересно, добро пожаловать под кат.
Учась в школе, сидя на уроках литературы, я прекрасно знал, кто такой Джордж Байрон.
Мы читали и по желанию заучивали его стихотворения. Спустя время, выбрав себе профессию я узнал о том, кем была загадочная Ада Лавлейс – первая девушка-программист, дочь того самого лорда Джорджа Байрона. Тогда для меня это оказалось удивительным открытием. Я на всю жизнь запомнил, кем была Ада и, как-то совсем незаметно для самого себя, забыл о самом Байроне.
Августа Ада Кинг (впоследствие графиня Лавлейс, но об этом чуть позже) – была дочерью английского поэта лорда Джорджа Гордона Байрона и его жены – Анны Изабеллы Байрон. Однако Байрон спустя месяц после рождения своей дочери покинул их, и они больше никогда не виделись. Сам Байрон умер, когда Аде было восемь лет. Сам он еще не раз вспоминал свою дочь в своих стихах.
Видно, что Ада сама росла в довольно талантливой семье. Ее мать, Анна Изабель, еще до рождения дочери сильно интересовалась математикой, за что когда-то получила от мужа забавное прозвище – “королева параллелограммов”. Это была действительно необычная семья. Анне после ухода мужа все же удалось воспитать дочь в одиночку и вот что из этого получилось.
В двенадцать лет Ада собрала свой летательный аппарат! До этого двенадцатилетняя девочка некоторое время запиралась от матери в комнате и что-то писала. Мать боялась, что она начнет зачитываться стихами отца и пойдет той же дорогой. Однако все это время она чертила.
Математическая логика занимала ее больше всего остального. Однажды Ада заболела и три года провела в постели. Но все это время она хотела и продолжала учиться. К ней приходили самые разные доктора и учителя. Одним из них был Август де Морган – известный математик и логик (да-да, закон де Моргана назван в его честь). С тех пор Ада еще больше погрузилась в мир математики.
В итоге Ада выросла уникальной девушкой. Она была красива и умна, точно также как и ее мама занималась математикой, а в разговорах на научные темы обходила даже ребят из Кембриджа и Оксфорда. Среди других людей, в основном женского пола, это вызвало скрытую злость и зависть. О ней нередко говорили как о чем-то темном, даже дьявольском. Надо сказать, что Ада и сама в себе чувствовала необычные силы (забавно, но на русском ее имя звучит и правда немного дьявольски). Но в этом нет ничего необычного, так как девушка-математик в высшем английском обществе того времени – со стороны это действительно выглядело странно. А многие мужчины меж тем были от нее без ума.
Математика математикой, но как же так вышло, что помнят о ней в первую очередь именно программисты? Одной из самых судьбоносных встреч Ады Лавлейс стала встреча с Чарльзом Бэббиджем – изобретателем первой аналитической вычислительной машины.
В то время, во Франции, куда и прибыл Бэббидж, был развернут крупномасштабный проект по созданию таблиц значений логарифмов и тригонометрических функций. Бэббидж стал мечтать о том, чтобы автоматизировать этот труд, заодно исключив возможные человеческие ошибки, так как в то время именно люди вручную занимались созданием таких таблиц. Так Бэббидж задумался о построении своей разностной машины (вычисление многочлена с помощью разностного метода).
Им было создано огромное количество чертежей, а сам прототип закончен в 1832 году, тот самый, который Ада Лавлейс увидит спустя год.
В 1835 году Ада выйдет замуж за очень достойного человека – барона Уильяма Кинга, который впоследствии был удостоен титула графа, а сама Ада стала графиней Лавлейс. Спустя четыре года у них уже было трое детей – два сына и дочь. Сыновьям Ада дала имена в честь отца – одного назвали Ральфом Гордоном, а другого – Байроном.
А как же с той самой первой в мире программой? И какова судьба машины Бэббиджа? В 1842 году итальянский ученый Луис Манебреа напишет книгу о машине Бэббиджа. Ада по просьбе Бэббиджа займется ее переводом. Во время перевода самой книги она сделала огромное количество замечаний, видя в этой машине кажется больше, чем сам Бэббидж.
Вот ее слова: «Суть и предназначение машины изменятся от того, какую информацию мы в нее вложим. Машина сможет писать музыку, рисовать картины и покажет науке такие пути, которые мы никогда и нигде не видели» Алан Тьюринг впоследствие читал ее записи, введя в свои работы термин возражение леди Лавлейс относительно способности машин мыслить.
В то же самое время, при описании машины Бэббиджа именно Ада ввела в обиход такие компьютерные термины как цикл и ячейка. Она также составил набор операций для вычисления чисел Бернулли. Именно это по сути и стало самой первой компьютерной программой. Бэббидж так и не построил свою машину, она была собрана уже после его смерти и сейчас хранится в Музее науки в Лондоне.
Сама Ада Лавлейс умерла 27 ноября 1852 года всего в возрасте 36 лет. Ровно столько, сколько прожил ее отец. Ее похоронили в фамильном склепе вместе с отцом, которого она так и не узнала.
В честь Ады Лавлейс был назван разработанный в 1980-х годах Министерством Обороны США язык программирования Ада.
1940-50-е годы: от Ассемблера к Fortran и AGOL
Электронно-вычислительные машины работают с командами, состоящими из нулей и единиц (машинным кодом). Однако такой язык получается громоздким и неудобным. Поэтому специалисты решили автоматизировать набор машинного кода. В конце сороковых - начале пятидесятых стал применяться Ассемблер. В нем для обозначения объектов и команд использовались буквы или укороченные слова (например, add вместо 000010). Это был язык низкого уровня, то есть созданный для конкретного типа процессора. Он значительно упростил труд программистов.
Следом появились так называемые языки высокого уровня (или машинонезависимые). В отличие от предшественников, они не были привязаны к конкретным устройствам. Для них создавались компиляторы - "переводчики" программ, созданных на языках высокого уровня, на "низкоуровневые". Первым из них стал Shortcode (1949). В 1950 Уильям Шмитт адаптировал его для компьютера UNIVAC.
C 1954 по 1957 в IBM под руководством Джона Бэкуса (1924-2007) был разработан знаменитый Fortran (от formula translator). Он использовался для технических расчетов и научных задач. Fortran стал первым относительно массовым языком программирования - к 1963 году существовало уже 40 компиляторов для различных машин. Он попал и в Советский союз, благодаря общению советских физиков с коллегами, работавшими в CERN. В 1967 году был создан компилятор для ЭВМ "Минск-2", в 1968 - для БЭСМ-6. Язык используется до сих пор - в основном, для сложных вычислений.
Успех "Фортрана" заставил действовать конкурентов. Немецкое Общество прикладной математики и механики создало комитет и поставило перед ним задачу разработки нового универсального языка программирования. То же самое сделала американская Ассоциация вычислительной техники. К счастью, вместо противостояния получилось сотрудничество (если не считать спора из-за того, какой знак использовать для десятичных дробей - точку или запятую). Комитеты объединились и создали ALGOL (1958), "дедушку" Java, Pascal и C++. Как и Fortran, ALGOL распространился по миру, но в Европе и СССР был встречен гораздо теплее, чем в США. Язык отличался блочной структурой, что для того времени было прогрессивным решением, а затем стало стандартом.
Другие современники Fortran и ALGOL - это LISP (1958) и COBOL (1959). Первый построен на обработке списков (отсюда название - list processing) и до сих пор в ходу (например, в корпорации Boeing). Второй создавался для экономических процессов (кредитные карты, банкоматы), тоже по-прежнему "в строю" и применяется в банковских системах. Заменить его на современный можно, но дорого и энергозатратно - в этом уже убедились в Commonwealth Bank of Australia.
1960-70-е: от структурного программирования к объектно-ориентированному
Первая "звезда" шестидесятых - BASIC (он же Beginner's All-purpose Symbolic Instruction Code, универсальный код символических инструкций для начинающих), созданный Томасом Курцем и Джоном Кемени, профессорами Дартмутского колледжа в 1964 году. Разработчики хотели создать простой язык, с помощью которого непрофессионалы могли бы разрабатывать несложные программы для решения прикладных задач. BASIC был основан на Fortran II и Algol. Популярным язык стал уже в 1970-х с распространением микрокомпьютеров.
За BASIC стояла конкретная философия. Курц и Кемени считали, что компьютерная грамотность - обязательный навык будущего, что и было отражено в названии языка. Как минимум они хотели, чтобы BASIC без труда могли освоить преподаватели и студента Дартмута.
В конце 1960-х сформировалась парадигма структурного программирования, основанного на представлении о программе как системе блоков. "Отцом" методологии считают Эдсгера Дейкстру (1930-2002), автора письма "Оператор Goto считается вредным". Новая парадигма позволила оптимизировать код и сделать его более компактным благодаря внедрению функций и процедур. Кстати, Дейкстра критиковал BASIC, говоря что сделать хорошего программиста из того, кто начинал с этого языка, очень трудно. Это, конечно, было большим преувеличением.
Следующим большим достижением стало появление классов - структур, содержащих переменные и работающие с ними функции. В семидесятых - начале восьмидесятых "на сцену" вышло объектно-ориентированное программирование (ООП). Оно сочетало в себе наработки структурного программирования с нововведениями вроде полиморфизма подтипов.
Первые ООП-языки - это Simula (1967) и основанный на нем Smalltalk (1972). Последний привнес в программирование множество идей и концептов, актуальных по сей день: взаимодействие между элементами через сообщения, возможность редактировать код "на ходу" и динамическая типизация. Logitech и ряд других компаний и сейчас используют Smalltalk для отдельных операций.
В 1972 появились С и SQL (первоначально назывался SEQUEL). C (прародитель С#, Java, Python и других), был создан Деннисом Ричи, сотрудником Bell Telephone Laboratories для работы с Unix. SQL - детище специалистов IBM Бойса и Чемберлена, ориентирован на работу с информацией из баз данных. Оба до сих пор используются.
1980-1990-е: мультипарадигмальность, визуальные языки, Интернет
В начале 1980-х сотрудник Bell Labs Бьерн Страуструп решил улучшить язык С и добавил к нему ряд возможностей Simula (1967). Так появился C++, объединивший в себе черты объектно-ориентированных и системных языков. Страуструп внедрил в С возможность работать с объектами и классами, строгую проверку типов, аргументы по умолчанию и т.д. Первые версии языка (1980) назывались "Си с классами", а наименование С++ стало использоваться в 1985 году с выходом очередной версии. К этому моменту возможности языка еще больше расширились. С++ актуален до сих пор, активно используется (например, в игровых движках и Adobe Photoshop) и развивается.
Еще одной важной вехой стало появление объектно-ориентированного Ada (1980/81), названного в честь Ады Лавлейс. Его разработала команда Жана Ишбиа по заказу Министерства обороны США. В основу языка легли Pascal (1970) и Algol (1960), однако присущий им синтаксис был упорядочен. "Ада" создавался для военных и смежных задач - прежде всего для систем управления кораблями и самолетами. Сейчас используется для управления воздушным движением в некоторых странах, а также в космических проектах.
В эту эпоху началось активное применение модулей - крупных единиц организации кода. Они позволили упростить процессы тестирования и поиска ошибок. Помимо Ada модульными были Modula-2 (1978) и Oberon (1986) (оба разработаны создателем Pascal Никлаусом Виртом), сам Pascal (1970), Haskell (1990) и другие. Кстати, Вирт высказал мнение, что программы становятся медленнее "куда шустрее, чем компьютеры становятся быстрее". Иными словами, программное обеспечение не успевает за аппаратным. Этот тезис известен под разными названиями: "закон Вирта", "закон Гейтса" или "закон Пейджа".
Получили развитие языки, предназначенные для обработки текстовой информации - например, Perl (1987), Python (1991), и Ruby (1993). Perl, разработанный для редактирования текстов, в наши дни применяется в самых разных целях - от системного администрирования до работы с базами данных. Python, созданный голландцем Гвидо ван Россумом, был назван в честь знаменитой комедийной группы из Великобритании "Монти Пайтон". Сейчас это универсальный язык, широко известный и удобный. Ruby Юкихиро Мацумото тоже актуален по сей день и используется для веб-приложений.
Другой тренд конца восьмидесятых - начала девяностых - развитие визуальных языков. В них программа создается при помощи манипуляций с графическими объектами вместо написания кода. Первыми стали Visual Basic (1991), Delphi (1995) и C++ Builder (1997). Современный пример - ориентированный на детскую и подростковую аудиторию Scratch (2007).
В начале девяностых началось активное развитие Интернета. Понадобились инструменты для создания веб-сайтов. Сначала активно применяли уже упомянутый нами Perl и HTML. В 1995 был выпущен PHP - С-подобный язык для разработки интернет-страниц и веб-приложений (активно применяется и сейчас, в том числе WordPress и Wikipedia). В том же году вышла первая версия популярного JavaScript Брендана Эйха, также применяющегося для динамической веб-разработки, браузеров и виджетов.
Джеймс Гослинг выпустил один из самых популярных языков наших дней Java (1995), который не стоит путать с JavaScript.. Сейчас он часто используется для создания Android-приложений и веб-сервисов. И конкурирует с Kotlin (2011), о котором мы еще скажем.
В отличие от ранних языков, представлявших собой слабо распространенные инструменты с ограниченной функциональностью, наиболее популярные языки восьмидесятых и девяностых были гораздо более доступными и применялись для широкого спектра задач. Вокруг них формировались свои инфраструктуры - учебники и пособия, библиотеки и фреймворки. Программирование стало более массовым занятием.
От нулевых до наших дней
Первый "хит" нового тысячелетия - это C# (2001), разработанный в Microsoft Андерсом Хейлсбергом, создателем Delphi. Это С-подобный язык, синтаксически близкий к C++ и Java, взявший многое от Delphi, Modula и Smalltalk. C# активно используется самой Microsoft, применяется при разработке игр на Unity и веб-разработке.
В 2003 свет увидел Scala, созданный в Швейцарии под руководством Мартина Одерски. Его "фишкой" стала масштабируемость, а также объединение объектно-ориентированного и функционального программирования. Ближайшие "родственники" языка - это Java и C++. "Ровесник" Scala - язык Groovy, созданный для платформы Java. Синтаксически он близок Java, но имеет ряд отличий.
В нулевые и десятые набирала силу Google, не оставшаяся в стороне от большой игры - в ноябре 2009 компания представила язык Go (также известен как Golang - не путать с языком Go!). Продукт Google разрабатывался как относительно простая замена C и C++, которая сможет эффективно работать на многоядерных процессорах и распределенных системах. Go не стал "прорывом", но вошел в число популярных современных языков и, в основном, применяется для создания микросервисов и веб-приложений.
Российские программисты тоже внесли вклад в развитие языков нулевых-десятых. С 2010 по 2011 компанией JetBrains (под руководством Андрея Бреслава) был разработан Kotlin. Это объектно-ориентированный язык, функционирующий на базе Java Virtual Machine, создававшийся как более лаконичная и простая альтернатива Java и Scala. Как и Java, он часто используется Android-разработчиками.
Swift (2014) создавался Apple как более простая и эффективная замена C, C++ и Objective-C. Это универсальный язык, на котором прежде всего пишут продукты для macOS, iOS и других систем корпорации. Иногда может использоваться для поддержки сайтов и веб-приложений.
🫶CRAZY: Ну вот ребятки это очень короткая часть инфы о программировани, только самое важное и не много истории, дальше будет только больше буду стараться поднимать и освещать разные темы вокруг мира программ и технологий.
Всем заранее большая благодарность кто прочитает напишет коментарий пролайкает, и подпишется на канал впереди только самое интерсное и безумное из мира технологий, и конечно не забывайте заскочить и подписаться на наши другие соц сети ждем всем и там.
До следующего раза ПОКА ПОКА ....