C как первый язык программирования
Перейти к содержимому

C как первый язык программирования

  • автор:

C# vs C++ vs Python, как первый язык программирования

Что же лучше для новичка?Не могу понять хорош ли питон для начала?Одни говорят что да, другие что нет.Кто то говорит что C++ через пару лет умрет, будущие за C# и т.д. Все говорят что шарп легче, но мне было гораздо приятней писать конвертер на плюсах.Может потом на плюсах что то ужасное?

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

Пиши на том языке, который лучше подходит для решения твоей проблемы.
Питон довольно хорош для новичка, но вообще если писать игры, то неплохо было бы изучить С++. Кстати, после изучения С++ большинство других(не функциональных) языков дадутся тебе с лёгкостью.
А вообще нельзя программировать используя один язык, поэтому я бы выбрал тот язык, который также даст тебе хорошую платформу для решения твоей конкретной задачи.

Для обучения: совсем первый язык — это C. Для ООП — ява или C# (C++ только в случае, если все слишком хорошо прошло с C).
Если, таки, C++ хорошо знать, то другие императивные языки учатся за 40 минут каждый.

AmigoNikita
> Кто то говорит что C++ через пару лет умрет, будущие за C# и т.д.
угу так говорят ещё со времён появления явы а это уже 16 лет. (к тому же щас только началась эпоха возражения С++ ;7 )
AmigoNikita
> Что же лучше для новичка?
бери питон он формирует грамотный стиль написания и базовые знания ооп. потом бери С++ научишься работать с памятью и вообще поймёшь как всё работает.
потом бери С# для формошлёпства.
Chipmunk
> Если, таки, C++ хорошо знать, то другие императивные языки учатся за 40 минут
> каждый.
+100

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

AmigoNikita
> C#
я за C#. причина простая— громадное количество документации

За путхон.
Чтобы кот научился форматировать.

Chipmunk
> Если, таки, C++ хорошо знать, то другие императивные языки учатся за 40 минут
> каждый.
Попробуй выучить D хотя бы за сорок часов 🙂

Chaos_Optima
> к тому же щас только началась эпоха возражения С++
Вот как раз на это ничто не указывает. Даже выход нового стандарта и даже то, что в студию воткнули некоторые из его фич. Наоборот бурления говн всё больше и больше.

Chipmunk
> Для обучения: совсем первый язык — это C.

Кстати, для меня самое важное выучить Objective-C, но мне советовали с него не начинать и выучить сначало C++.А питон чисто для. даже не знаю чего, но говорят в игрострое полезный очень как дополнительный язык.И какого вы мнения о книге "Освой самостоятельно C++ за 21 день" Какие возможности у меня будут после прохождения?

AmigoNikita
> И какого вы мнения о книге "Освой самостоятельно C++ за 21 день" Какие
> возможности у меня будут после прохождения?

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

AmigoNikita
> Кстати, для меня самое важное выучить Objective-C, но мне советовали с него не
> начинать и выучить сначало C++.
Советчикам скажи, что они дураки. Obj-C это элегантная объектно-ориентированная надстройка над Си, они даже полностью обратно совместимы, его (Си) и учить надо в первую очередь. А кресты только извратят восприятие ООП, сделав переход на нормальные языки малопродуктивным, ты не будешь знать, чем Си отличается от С++ и не сможешь перестроиться обратно. Хотя наверняка рантайм Obj-C тоже в большой степени влияет на его отличие от предка.

Vladar
> Ни в коем случае: http://www.stolyarov.info/files/anti_c_v03.pdf
Да, использование Паскаля дает возможность тем, кому не дано, получать в универе хоть какие-то оценки.
Но при этом, такое обучение тормозит тех, кто реально потом будет программистом.

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

С++ как первый язык: путь преподавателя GeekBrains

В мире программирования если не все, то очень многие дороги ведут к Си. Интерпретаторы и компиляторы большинства модных сегодня языков написаны на С/С++. Если вы хотите выжать максимум из любого «железа», программировать роботов, создать свою ОС, свой язык или другую мощную и жадную до ресурсов штуку, надо учить «плюсы». Это де-факто стандарт и в крупных игровых студиях, таких как Electronic Arts и Blizzard.

Но есть ли смысл выбирать С/С++ в качестве первого языка программирования? И откуда взялся вокруг Си ореол неприступности? Я решила обсудить это с преподавателем GeekBrains Иваном Овчинниковым.

Иван начал изучать С++ с нуля в 29 лет. Сейчас ему 33 и он — ведущий специалист и начальник группы программистов в центре разработки информационных систем АО «Российские Космические Системы».

— Иван, в чем, на ваш взгляд, сила «плюсов»? Можно ли сказать, что на сегодня это — «Царь-язык»?

— Я против ранжирования языков, потому что каждый из них решает свои задачи. В целом, языки С/С++ отличает чрезвычайная скорость исполнения и тотальный контроль над происходящим.

Да, можно сказать, что С++ — один из самых влиятельных языков программирования и прародитель многих других ЯП. Это универсальный инструмент, который позволяет подобраться к «железу» ближе, чем любой другой высокоуровневый язык. Вы можете программировать микроконтроллеры и серьезную аппаратуру, ускорять требовательные к ресурсам системы.

— Зачем учить сложный язык, если можно выучить простой? Все наверняка слышали страшилки, что С++ адски сложен и коварен. Что вы об этом думаете?

— Выучить названия всех фреймворков для JavaScript куда сложнее, на мой взгляд!

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

Если у человека программа-максимум — всю жизнь верстать сайты для знакомых или писать попсовые приложеньки для хипстеров, учить С++ совершенно не обязательно. А если вы хотите написать свою операционную систему или программировать роботов, которые полетят в космос и будут кататься по другим планетам — добро пожаловать в С++!

Конечно, С/С++ устроены нетривиально: многое в них не так просто понять и выучить. Но это возможно. И это сильно расширит ваши возможности как программиста.

Опытные разработчики любят пугать новичков «этими жуткими плюсами». Правда в том, что простых языков программирования не бывает, как и простой работы. Любая работа — сложная. Работа программиста — тоже, вне зависимости от выбранного языка. И да, дорогу осилит идущий: если не начать изучать С/С++, они так и останутся невероятно и запредельно сложными.

— Как можно упростить изучение C++ для студентов?

— Понятными объяснениями, которые помогли и мне в свое время. Я ведь стал программистом довольно поздно — в 29 лет. До этого никак не был связан с IT-сферой. Поэтому рассказываю студентам о языке, как рассказал бы себе начинающему.

Есть такой канал на Reddit — ELIF (Explain like I’m five — «Объясни, как пятилетнему»). Так можно сформулировать принцип, по которому я стараюсь доносить до людей сложную информацию, в том числе и про «этот страшный Си».

Еще хочу сказать, что в изучении языка (а оно никогда не заканчивается) я для себя изначально выбрал кратчайший путь — путь практики. И это себя оправдывает.

— Как случилось, что к 30 годам вы решили сменить профессию? И почему начали сразу с трудного языка?

— Решение освоить новую специальность пришло быстро и безболезненно. Мук выбора не было, потому что с прошлой профессией при 12-летнем стаже я зарабатывал что-то около 35 тысяч рублей. Это, в принципе, равнялось зарплате начинающего программиста-стажера. А если учесть, что программирование подразумевало интересные для меня задачи, выбор был очевиден.

Поскольку решение я принимал сам, а не под влиянием рекламы, исследовать рынок и выбирать язык для изучения тоже пришлось самостоятельно. В итоге сделал вывод, что если один раз выучить С, дальше легко освоишь практически любой популярный язык. Ведь почти все они — «наследники Си». Так и произошло.

Сейчас профессионально работаю на Java (Spring, VAADIN, EclipseLink). В быту — для себя — очень люблю писать на Python. Например, когда нужен Telegram-бот с напоминалками и детектором, фотографирующим котиков в кадре веб-камеры.

Есть у меня и кусочек умного дома, созданный с использованием Raspberry PI, и маленькая домашняя бухгалтерия на Django. Плюс всякие смешные поделки на Arduino — вроде новогодней елки.

— Сколько времени потребовалось, чтобы начать зарабатывать программированием?

— На поиск первой работы ушло около полугода. Я пришел к работодателю и выложил все как есть: мне 30 и я совсем без опыта, недавно дошел до изучения указателей в С. Попросился работать «за еду и опыт» — взяли. Через три месяца я полностью влился в коллектив и уже обучал коллег, как пользоваться трекерами задач и git-ом.

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

К тому же у меня в запасе всегда была и остается интересная история, как один тридцатилетний парень решил перевернуть свою жизнь с ног на голову. Начал учить С++, через полгода после устройства на работу — закрыл свое первое ТЗ, а дальше пошло-поехало.

— Какими были ваши первые проекты?

— Первые мои задачи были типовыми для начинающего программиста: надо было разобраться, как работает «вот этот код, написанный чуваком, который год назад уволился».

https://amdy.su/wp-admin/options-general.php?page=ad-inserter.php#tab-8

Мне поручали мелкие доделки готовых программ для аппаратов, которые недавно вернулись с испытаний.

Опытным разработчикам за такие задачи браться скучно, а мне на тот момент — в самый раз. Мне нравилось, что можно посмотреть на готовый код, сделать что-то полезное, но в глобальном плане ничего не сломать.

— Что считаете самым сложным в изучении С++? Есть какие-то темы, которые, если осилишь, то остальное — не сложнее, чем в других языках?

— На мой взгляд, самые сложные темы в изучении С — это указатели, указатели на указатели и указатели на функции. Если уж про них у вас в голове все встанет на свои места, остальное — детский лепет.

С++ сложно выражает идеи объектно-ориентированного программирования (ООП). Нужно время, чтобы вникнуть, чем отличаются между собой виртуальные, абстрактные, приватные и публичные методы. Еще есть модификаторы видимости и связывания, несколько видов конструкторов и деструкторов. С этим тоже нужно разобраться.

Проблема в том, что учебники и руководства по программированию просто вываливают на студента гору информации и как бы говорят: «Либо ты это все запоминаешь, либо ты бесполезен».

Преподаватели «старой школы» действуют по тому же принципу. Они забывают, каково быть новичком. Что программисту с опытом «интуитивно понятно», то для студента — 100500 новых слов, не подкрепленных опытом и практическими навыками. Студент еще не понимает внутренних механизмов языка и не может увязать их с реальным кодом.

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

— Я слышала, что в C++ легко допустить ошибки, которые потом очень сложно найти, потому что в языке нет «защиты от дурака». Так ли это? Или главная сложность все-таки в другом? Если говорить именно об особенностях языка, а не о проблемах мотивации студента.

— Да, когда вы работаете с языками типа С/С++, легко наделать ошибок, которые могут годами себя никак не проявлять. Но они связаны не с самим языком или «защитой от дурака», а, скорее, с невнимательностью программиста.

Возьмем, к примеру, потоки ввода-вывода. Их надо закрывать и в Java/C#, и в C++. Если в Java/C# поток не закрыть, он будет висеть и тормозить программу. Если в C++ поток не закрыть, он будет… Да! Висеть и тормозить. А проявится проблема когда? Когда таких незакрытых потоков наберется сотня-другая.

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

— Спрошу как раз о том, что дают курсы. Как вы балансировали учебную программу? У С/С++ очень много применений, а времени на изучение — всего год.

— Конечно, учебная программа будет очень сжатой, потому что, как заметил один мой коллега: «С, как религия — им надо заниматься всю жизнь». Отсюда и акценты — глубокое погружение в основы языка и беглый обзор всех его возможностей. Чтобы и игроделам, и банкирам, и браузерописцам будущим достались полезные знания.

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

Главное, вы будете понимать, как все работает, и узнаете о разных подходах к решению задач. Это заложит фундамент, на котором вы сможете строить то, что вам интересно. Конечно, придется много трудиться самостоятельно: читать, экспериментировать. Но вы уже не «потеряетесь» в языке.

— Я обратила внимание, что в учебном плане первым курсом идет Linux. Основы работы с этой ОС закладываются еще до уроков С/С++. Понятно, что Linux повлиял на многие платформы, в том числе MacOS и Windows. Но почему в курсе С++ такое внимание именно этой ОС?

— Считаю, что Linux — краеугольный камень в изучении программирования. Без знания этой ОС вы не сможете создавать кроссплатформенные приложения, потому что не будете понимать, в каком окружении им предстоит работать. 96 % устройств в интернете — это UNIX-подобные устройства. Куда без них?

UNIX, который стал родителем Linux и MacOS X, был написан на С. Собственно, С для того и создавали, чтобы написать на нем UNIX. Отсюда и свойства языка — его близость к аппаратному обеспечению. Можно сказать, что история развития современных ОС пересекается с историей языка Cи. И на примере Linux это хорошо видно.

Даже если вы твердо решили программировать исключительно для Windows, знание Linux расширит ваши горизонты: позволит посмотреть на дивный новый мир, от которого вы отказываетесь.

— Иван, спасибо! Что скажете в напутствие своим будущим студентам?

— Если вы повелись на рекламу и пришли в программирование только потому, что тут много денег, — остановитесь. Через пару-тройку лет на нелюбимой работе, которая держит лишь финансово, вы просто свихнетесь от тоски. Но! Если кто-то отговаривает вас становиться программистом, а вы этого очень хотите — игнорируйте мнение этих людей и идите к своей цели. Не пожалеете! Желаю вам заниматься тем, что вам нравится. До встреч!

C#. История появления языка программирования C# и технологии Microsoft .NET

История появления языка программирования C# и технологии Microsoft .NET. Причины возникновения, преимущества и недостатки Microsoft .NET

Содержание

  • 1. Технологии программирования, основанные на C-ориентированных языках. История и этапы развития. Язык программирования C
  • 2. Языки программирования C++ и Java
  • 3. Язык программирования C# и платформа .NET
  • 4. Причины возникновения платформы Microsoft .NET
  • 5. Преимущества и недостатки платформы Microsoft .NET

Поиск на других ресурсах:

1. Технологии программирования, основанные на C-ориентированных языках. История и этапы развития. Язык программирования C

К C-ориентированным языкам программирования относятся такие известные языки как C++, C#, Java. Часть синтаксиса языков была задействована во многих других языках, таких как Kotlin, JavaScript, PHP, Python.

Первым языком семейства C-ориентированных языков был язык программирования C. Язык был разработан в 1972 году известным ученым Денисом Ритчи. Язык базировался на структурном подходе к программированию и решал проблемы кризиса программного обеспечения тех времен. Таким образом, 1972 стал годом начала развития большого семейства языков программирования, введении нового синтаксиса по сравнению с языком Паскаль, обеспечении более гибкого структурированного кода и т.д. Автор этой статьи и этого сайта также родился в этом году.

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

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

Основной недостаток проектов написанных на языке C было значительное усложнение при увеличении размеров программных проектов (масштабов проекта). Это было следствием так называемого императивного программирования, при котором получение результата достигалось путем выполнения последовательности инструкций, изменявших состояние программы.

В языке C были введены базовые элементы, которые в языках-потомках (C++, C#, Java) получили дальнейшее развитие. К числу этих элементов относятся структуры, объединения, перечисления, макросы и т.д. Кроме того, по сравнению с другими языками существовавшими в то время, язык C объединял гибкость, мощность и удобство. Это служило залогом успеха и новых языков программирования.

2. Языки программирования C++ и Java

Дальнейшее развитие C-ориентированные языки получили в 1979 году с появлением языка C++, разработанного Бьярном Страуструпом. Этот язык реализовал парадигму объектно-ориентированного подхода в программировании и стал развитием языка C. В языке C++ синтаксис был полностью заимствован из языка C. Язык C++ добавлял в язык C новые объектно-ориентированные возможности.

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

  • межплатформенную переносимость программного обеспечения;
  • удобную передачу проектов по сетям;
  • сокращение времени разработки программного обеспечения и т.д.

Программное обеспечение должно работать правильно на любой платформе (Windows, UNIX, Linux, Mac OS и другие). Основным здесь отсутствие конфликтов с операционной системой при переносе приложения с одной операционной системы на другую.

Как следствие, в 1991 году компанией Sun Microsystems было реализовано решение этой проблемы с помощью нового языка программирования «Oak», позже получившего название Java. Автором языка Java считается Джеймс Гослинг.

Чтобы обеспечить кроссплатформенность необходимо наличие интегрированной среды исполнения Java. Для обеспечения выполнения приложений Java, операционная система должна иметь соответствующее установленное программное обеспечение адаптирующее Java-приложение под нужды конкретной операционной системы. Для каждой операционной системы компанией Sun был разработан соответствующий вариант среды выполнения. Благодаря этому межплатформенная переносимость для Java-приложений является одной из самых лучших среди известных технологий.

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

3. Язык программирования C# и платформа .NET

После появления языка программирования Java продолжилось создание C-ориентированных языков.
В 2000 году компания Microsoft анонсировала появление нового языка программирования под названием C#. Главным архитектором языка считается Андерс Хейлсберг, также являющийся автором Turbo Pascal, Delphi, TypeScript. Этот язык предлагал более богатый набор языковых средств и механизмов по сравнению с Java.

В языке C# реализованы положительные стороны предыдущих языков C, C++, Java. Синтаксис C# перенял основу синтаксиса C++. Кроме того, здесь введены новые элементы, в частности свойства, модификаторы, используемые в параметрах функций, индексаторы и другое.

Язык C# есть составной частью платформы .NET и ее связующим звеном. Платформа .NET является концепцией Microsoft для развития средств разработки программного обеспечения. В основе технологии лежит совокупность программных модулей, входящих в набор средств под названием Microsoft .NET Framework. С помощью этого программного набора в операционной системе Windows выполняются .NET-приложения.

4. Причины возникновения платформы Microsoft .NET

К причинам возникновения технологии .NET можно отнести:

  • обеспечение межплатформенной переносимости. Развитие глобальной сети Internet и средств коммуникации потребовали создания приложений (приложений, программных решений), которые могли бы выполняться на любом компьютере независимо от архитектуры операционной системы;
  • потребность в упрощении процесса развертывания программного обеспечения. Современное программное обеспечение требует правильного сопровождения. Это означает, что появляются новые версии приложений, которые не должны конфликтовать с предыдущими версиями. Процесс сопровождения достаточно частый, а потому требует максимальной оперативности;
  • потребность в создании среды исполнения программных решений. Такая среда создает необходимые условия для безопасного выполнения разнообразных приложений, решает проблемы контроля распределения ресурсов в операционной системе;
  • обеспечение необходимых коммуникационных возможностей в соответствии с существующими стандартами по созданию соответствующей технологии разработки программных решений;
  • обеспечение межъязыковой интеграции. Здесь предполагается создание такого программного кода, который интегрируется с кодом, созданным с использованием других технологий.
5. Преимущества и недостатки платформы Microsoft .NET

С появлением технологии Microsoft .NET было решено ряд актуальных проблем. Эти проблемы решают передачу приложения по системам коммуникации и его развертывание на клиентской машине вне зависимости от расстояния размещения.
К преимуществам этой технологии относятся:

  • эффективное решение проблемы межъязыкового взаимодействия. Это достигается путем реализации механизмов, позволяющих импортировать программные модули из сборок, написанных на других языках программирования. Также следует отметить приведение данных «неизвестных» или «специфических» типов в соответствующие типы общей системы типов .NET Framework. Все эти возможности умножаются наличием соответствующего специализированного программного обеспечения;
  • решение проблемы развертывания приложений. При этом все приложения являются архитектурно неправильными. Процесс развертывания достигается путем компилирования приложений не в исполнительный код, а в промежуточный код. Этот промежуточный код называется Common Intermediate Language (CIL или IL). После того, как сформирован промежуточный код, команда запуска программы вызывает компиляцию промежуточного кода в исполнительный код с учетом особенностей архитектуры компьютера, на котором происходит компиляция. Этот процесс обеспечивается с помощью так называемой JIT-компиляции (Just In Time Compilation);
  • размер .NET-приложений невелик. Это объясняется тем, что все необходимые библиотеки базовых классов (Base Class Library) содержатся на каждом клиентском компьютере. Здесь предполагается, что .NET Framework обязательно должен быть установлен на компьютере клиента для корректной работы .NET-приложения. Таким образом, .NET-приложение не сохраняет все необходимые библиотеки в своем исходном коде. Эти библиотеки подключаются при запуске приложения, и, как результат, размер .NET-приложения есть минимальным;
  • использование единой среды времени выполнения приложений – CLR (Common Language Runtime). Благодаря этой среде возможно использование безопасного (управляемого) программного кода (Managed Code). В безопасном коде среда выполнения управляет выделением памяти и различного рода ресурсов, а также управляет доступом к ним. Благодаря этому у разработчика уменьшается количество проблем путем избегания дополнительного программирования задач управления памятью, распределения ресурсов и т.д. Таким образом, программист непосредственно сосредотачивается на решении поставленной задачи.

Однако не все проблемы были решены этой технологией. Ниже перечислены недостатки технологии Microsoft .NET:

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

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

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

Первый язык программирования
Знаете ли вы, что первый в мире язык компьютерного программирования был изобретен еще в 1843 году? Ада Лавлейс изобрела первый в истории машинный алгоритм для одной из первых вычислительных машин, который она записала на листе бумаги, потому что в то время компьютеров не существовало! С тех пор языки программирования, очевидно, прошли долгий путь, но для того, чтобы понять историю языков, нужно сначала понять их происхождение.

История языков программирования: хронология
Ниже приведен график истории языков программирования. Первые известные языки были сложными машинными кодами, которые вручную вводились в первые вычислительные машины. Как вы понимаете, компьютерное программирование быстро превратилось из машинных кодов в полностью автоматизированный, читаемый человеком код.

1843: Машинный алгоритм Ады Лавлейс
Ада Лавлейс изобретает первый в истории машинный алгоритм для разностной машины Чарльза Бэббиджа, который закладывает основу для всех языков программирования.

1944-45: Планкалкюль
Где-то между 1944-45 годами Конрад Цузе разработал первый «настоящий» язык программирования под названием Plankalkül (Расчет плана). Язык Zeus (помимо прочего) позволял создавать процедуры, в которых хранятся фрагменты кода, которые можно было вызывать снова и снова для выполнения рутинных операций.

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

1949: Shortcode
Шорткод (или сокращенный код) был первым языком высокого уровня (HLL), предложенным Джоном Макколи в 1949 году. Однако именно Уильям Шмитт реализовал его для компьютера BINAC в том же году и для UNIVAC в 1950 году.

1952: Автокодирование
Автокод был общим термином, используемым для семейства языков программирования. Autocode, впервые разработанный Аликом Гленни для компьютера Mark 1 в Университете Манчестера, был первым в истории скомпилированным языком, который был реализован, что означает, что он может быть переведен непосредственно в машинный код с помощью программы, называемой компилятором. Автокод использовался на первых вычислительных машинах Ferranti Pegasus и Sirius в дополнение к Mark 1.

1957: Fortran
FORmula TRANslation или FORTRAN был создан Джоном Бэкусом и считается старейшим языком программирования, используемым сегодня. Язык программирования был создан для научных, математических и статистических вычислений высокого уровня. FORTRAN до сих пор используется в некоторых из самых передовых суперкомпьютеров в мире.

1958: ALGOL (Алгоритмический язык)
Алгоритмический язык или АЛГОЛ был создан совместным комитетом американских и европейских компьютерных ученых. Алгол послужил отправной точкой для разработки некоторых из наиболее важных языков программирования, включая Pascal, C, C ++ и Java.

1958: LISP (обработчик списков)
Процессор списков или LISP был изобретен Джоном Маккарти в Массачусетском технологическом институте (MIT). Первоначально предназначенный для искусственного интеллекта, LISP является одним из старейших языков программирования, которые все еще используются сегодня, и его можно использовать вместо Ruby или Python. Такие компании, как Acceleration, Boeing и Genworks, по-прежнему используют LISP в своих технических стеках.

1959: КОБОЛ (Общий бизнес-ориентированный язык)
Общий бизнес-ориентированный язык (COBOL) — это язык программирования, лежащий в основе многих процессоров кредитных карт, банкоматов, телефонных и сотовых вызовов, сигналов больниц и систем сигналов светофора (и это лишь некоторые из них). Разработкой языка руководила доктор Грейс Мюррей Хоппер, и он был разработан таким образом, чтобы его можно было использовать на компьютерах всех марок и типов. COBOL до сих пор используется в первую очередь для банковских систем.

1964: BASIC (универсальный символьный код инструкций для начинающих)
Универсальный код символических инструкций для начинающих или BASIC был разработан группой студентов Дартмутского колледжа. Этот язык был написан для студентов, которые плохо разбирались в математике или компьютерах. Этот язык был разработан основателями Microsoft Биллом Гейтсом и Полом Алленом и стал первым товарным продуктом компании.

1970: ПАСКАЛЬ
Названный в честь французского математика Блеза Паскаля, Никлаус Вирт разработал язык программирования в его честь. Он был разработан как средство обучения компьютерному программированию, что означало, что его легко освоить. Apple предпочитала его на заре своей деятельности из-за простоты использования и мощности.

1972: Smalltalk
Smalltalk, разработанный в исследовательском центре Xerox в Пало-Альто Аланом Кей, Адель Голдберг и Дэном Ингаллсом, позволял программистам изменять код на лету. Он представил множество аспектов языка программирования, которые сегодня являются видимыми языками, такими как Python, Java и Ruby. Такие компании, как Leafly, Logitech и CrowdStrike, заявляют, что используют Smalltalk в своих технических стеках.

1972: C (Си)
Разработан Деннисом Ричи из Bell Telephone Laboratories для использования с операционной системой Unix. Он был назван C, потому что был основан на более раннем языке под названием «B». Многие из ведущих в настоящее время языков являются производными от C, включая; C #, Java, JavaScript, Perl, PHP и Python. Он также использовался / до сих пор используется такими крупными компаниями, как Google, Facebook и Apple.

1972: SQL (в то время SEQUEL)
SQL был впервые разработан исследователями IBM Рэймондом Бойсом и Дональдом Чемберленом. SEQUEL (как его тогда называли) используется для просмотра и изменения информации, хранящейся в базах данных. В настоящее время язык является аббревиатурой — SQL, что означает язык структурированных запросов. Существует множество компаний, использующих SQL, и некоторые из них включают Microsoft и Accenture.

1980/81: Ада
Изначально Ada была разработана командой во главе с Джин Ичбиа из CUU Honeywell Bull по контракту с Министерством обороны США. Названный в честь математика середины 19-го века Ады Лавлейс, Ada представляет собой структурированный, статически типизированный, императивный, объектно-ориентированный язык программирования высокого уровня с широким спектром возможностей. Ада была расширена из других популярных в то время языков программирования, таких как Паскаль. Ada используется в системах управления воздушным движением в таких странах, как Австралия, Бельгия и Германия, а также во многих других транспортных и космических проектах.

1983: C ++
Бьярн Страуструп модифицировал язык C в Bell Labs, C ++ — это расширение C с такими улучшениями, как классы, виртуальные функции и шаблоны. Он был включен в 10 лучших языков программирования с 1986 года и получил статус Зала славы в 2003 году. C ++ используется в MS Office, Adobe Photoshop, игровых движках и другом высокопроизводительном программном обеспечении.

1983: Objective-C
Objective-C, разработанный Брэдом Коксом и Томом Лавом, является основным языком программирования, используемым для написания программного обеспечения для операционных систем Apple macOS и iOS.

1987: Perl
Perl был создан Ларри Уоллом и представляет собой универсальный язык программирования высокого уровня. Первоначально он был разработан как язык сценариев, предназначенный для редактирования текста, но в настоящее время он широко используется для многих целей, таких как CGI, приложения баз данных , системное администрирование, сетевое программирование и графическое программирование.

1990: Haskell
Haskell — это язык программирования общего назначения, названный в честь американского логика и математика Хаскелла Брукса Карри. Это чисто функциональный язык программирования, то есть в первую очередь математический. Он используется во многих отраслях, особенно в тех, которые имеют дело со сложными вычислениями, записями и обработкой чисел. Как и многие другие языки программирования той эпохи, не так уж часто можно увидеть, что Haskell используется для хорошо известных приложений. С учетом сказанного, язык программирования был использован для написания ряда игр, одна из которых — Nikki and the Robots.

1991: Python
Названный в честь британской комедийной труппы «Монти Пайтон», Python был разработан Гвидо Ван Россумом. Это универсальный язык программирования высокого уровня, созданный для поддержки различных стилей программирования и приятный в использовании (ряд руководств, примеров и инструкций часто содержат ссылки на Monty Python). Python по сей день является одним из самых популярных языков программирования в мире, который используют такие компании, как Google, Yahoo и Spotify.

1991: Visual Basic
Visual Basic, разработанный Microsoft, позволяет программистам использовать стиль перетаскивания для выбора и изменения предварительно выбранных фрагментов кода через графический интерфейс пользователя (GUI). В наши дни этот язык не используется слишком часто, однако Microsoft частично использовала Visual Basic для ряда своих приложений, таких как Word, Excel и Access.

1993: Ruby
Ruby, созданный Юкихиро Мацумото, представляет собой интерпретируемый язык программирования высокого уровня. Язык обучения, на который повлияли Perl, Ada, Lisp и Smalltalk — среди прочих. В основном Ruby используется для разработки веб-приложений и Ruby on Rails. Twitter, Hulu и Groupon — известные примеры компаний, использующих Ruby.

1995: Java
Java — это универсальный язык высокого уровня, созданный Джеймсом Гослингом для проекта интерактивного телевидения. Он обладает кросс-платформенной функциональностью и неизменно входит в число самых популярных языков программирования в мире. Java можно найти везде, от компьютеров до смартфонов и парковочных счетчиков.

1995: PHP
Ранее известный как «Персональная домашняя страница», что теперь означает «Препроцессор гипертекста», PHP был разработан Расмусом Лердорфом. Его основное применение включает создание и поддержку динамических веб-страниц, а также разработку на стороне сервера . Некоторые из крупнейших компаний по всему миру используют PHP, включая Facebook, Wikipedia, Digg, WordPress и Joomla.

1995: JavaScript
JavaScript был создан Бренданом Эйхом, этот язык в основном используется для динамической веб-разработки, документов PDF, веб-браузеров и виджетов рабочего стола. Почти каждый крупный веб-сайт использует JavaScript. Gmail, Adobe Photoshop и Mozilla Firefox включают несколько хорошо известных примеров.

2000: C #
Разработанный в Microsoft с надеждой на объединение вычислительных возможностей C ++ с простотой Visual Basic, C # основан на C ++ и имеет много общего с Java. Этот язык используется почти во всех продуктах Microsoft и используется в основном при разработке настольных приложений.

2003: Scala
Scala, разработанная Мартином Одерски, объединяет математическое функциональное программирование и организованное объектно-ориентированное программирование. Совместимость Scala с Java делает его полезным при разработке под Android. Linkedin, Twitter, Foursquare и Netflix — это всего лишь несколько примеров многих компаний, которые используют Scala в своих технических стеках.

2003: Groovy
Унаследованный от Java, Groovy был разработан Джеймсом Страчаном и Бобом МакВиртером. Язык повышает продуктивность, поскольку он лаконичен и прост в изучении. Некоторые известные компании, которые используют Groovy в своих технических стеках, — это Starbucks, Transferwise и Craftbase.

2009: Golang (Go)
Go был разработан Google для решения проблем, возникающих из-за больших программных систем. Благодаря своей простой и современной структуре Go завоевал популярность среди некоторых крупнейших технологических компаний по всему миру, таких как Google, Uber, Twitch и Dropbox.

2014: Swift
Разработанный Apple в качестве замены C, C ++ и Objective-C, Swift был разработан с целью быть проще, чем вышеупомянутые языки, и оставлять меньше места для ошибок. Универсальность Swift означает, что его можно использовать для настольных, мобильных и облачных приложений. Ведущее языковое приложение Duolingo запустило новое приложение, написанное на Swift.

Какие старые языки программирования все еще используются?
Не все языки программирования существуют вечно. Будь то результат развития технологий или просто замена более сложным языком. С учетом сказанного, ИТ специалисты по-прежнему используют некоторые старые языки программирования:

FORTRAN
Первоначальная версия FORTRAN была предложена в IBM Джоном Бэкусом еще в 1953 году. Это был первый компилятор-оптимизатор, который широко использовался в научной работе, поскольку его оптимизированный код выгодно конкурировал с написанным вручную кодом ассемблера. Этот язык до сих пор используется на некоторых из самых быстрых суперкомпьютеров в мире. С 1953 года была выпущена серия обновлений, последняя версия которых была выпущена в 2018 году.

COBOL
COBOL был разработан еще в 1959 году и был одним из первых языков программирования высокого уровня. Несмотря на то, что COBOL был изобретен так давно, он по-прежнему широко распространен. В одних только США 43% банковских систем построены на COBOL, что составляет 95% операций с банкоматами и 80% транзакций, совершаемых лично.

Ранние языки программирования Microsoft и Apple
Microsoft и Apple — две из самых фундаментальных компаний в истории языков программирования. BASIC (впервые выпущенный в 1964 году) был модифицирован основателями Microsoft Биллом Гейтсом и Полом Алленом в 1975 году. Их модифицированная версия стала Altair BASIC , который был первым продаваемым и распространяемым продуктом Microsoft, который привел к созданию компании.
Паскаль был предпочтительным языком программирования в первые дни Apple. Паскаль, изобретенный в начале 1970-х годов, понравился разработчикам Apple из-за его мощности и простоты использования. Однако, когда Apple приобрела библиотеку кода NeXTSTEP в 1996 году, Objective-C (который был лицензирован под NeXTSTEP) стал популярным языком, выбранным техническим гигантом.

Вывод
История языков программирования увлекательна. Кто бы мог подумать, что алгоритм середины 19 века проложит путь для технологического общества, в котором мы живем сегодня. От ранних машинных кодов до сложного, удобночитаемого кода, на котором сегодня работают наши любимые технологии, языки программирования прошли долгий путь. Несомненно, компьютерное программирование продолжит развиваться, как это происходило в течение последних 150 лет, и интересно смотреть, что принесет будущее.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *