87

Ответ на пост «C++ жил, жив и будет жить: зачем его продолжают изучать?»

С "С"-подобными языками есть довольно простая гипербола.
Сам "С"(молитесь неверные) - это дедушка который брал Берлин.
С++ это сын его который сидит за пультом запуска МБР и владеет всем, вплоть до схем запуска двигателей.
Питон... расслабленный внук, растаман и распиздяй с главным тезисом "Зачем напрягаться, если у меня есть наследство".
Java - его старшая сестра, проститутка...

9

Ответ на пост «C++ жил, жив и будет жить: зачем его продолжают изучать?»

Простой ответ что есть С, С++ и прочая змея...
Начнём с истории человечества.
Почему до сих пор медики пишут рецепты на латыни?
Потому что сотни лет "римский" был единственным языком естественных наук, а медицина одна из первых успела стать естественной наукой - основанной на наблюдениях, а не на метафизических мифах. Что вообще естественно, когда игра идёт на собственный зад.
Если говорить про языки программирования - о, это исключительно интересная история!
Я таки расскажу её вам - всё началось с того что при реализации аппаратной части таки выяснилось что дешевле всего реализовать на аппаратном уровне двоичный код - со всей приложенной арифметикой и логикой.
Математически операции с двоичным кодом никак не отличаются от десятичных - это просто система записи величин.


Почему тебе, дебил, нравится десятичная система?

Ебс-сыс - у тебя десять пальцев и приложенный к ним механизм спинного и головного соответственно мозга.


Поскольку двоичная на уровне реализации была дешевле всего(есть напряжение - нет напряжения) - с компьютерами всё очень быстро свелось к "Булевой логике", это когда у вас все цифры "1" и "0".
Но программистов требовалось всё больше, Тьюрингов среди них было исчезающе мало - в какой-то момент до самых тупых дошло что писать команды процессоров в двоичных кодах, и данные с адресами тоже - это пиздецный геморой, никаких залов и бумажных простыней не хватит.
Тогда был придуман ассемблер. Который был по сути переводом двоичного кода на человеческий язык - но и тут выяснилось что когда вы описываете каждую команду процессора - это может не хватить времени жизни на написание сраных шахмат на экране.
...
Здесь за дело взялись... да по сути никто не напрягался, просто люди которым реально требовался компьютер не для того что бы дрочить на порно, размещать видосики в тик-токе, гонять демонов по лабиринтам - а для того что бы считать математические модели и делать это быстро - физики с математиками запилили небезизвестный FORTRAN.
Библиотеки которого используются до сих пор, потому что их писали исключительно грамотные люди.
В чём был смысл - мы используем программу "компилятор" которая привычную для нас запись логики и математики переводит в ассемблер, а далее в машинный код.

Проще говоря если нам надо сложить два числа мы пишем X=Y+Z.
Компилятор переводит это в четыре команды ассемблера:
MOV AX, [0ff0]
MOV BX, [12c4]
ADD AX, BX
MOV [76Fa], AX
Что тут происходит - первые две команды помещают нужные нам числа из указанных адресов памяти в регистры процессора.
Команда ADD - складывает числа и помещает результат в регистр AX - процессор может работать только с собственными регистрами, это просто ебаная микросхема, ей неоткуда больше взять данные. И некуда их больше поместить.
Последняя команда - передача содержимого регистра AX в память. Которая ячейка обозначенная в коде как "X".


Очевидная идея и FORTRAN был очевиден - проблемы начались когда к этому подлезли американские военные жаждущие победы на СССР.
Тогда в 60х годах 20го века шла космическая гонка - американские военные требовали от проклятых высокооплачиваемых американских узколобых победы над проклятыми коммунистами.
И начали американские военные программисты писать PID-регуляторы на FORTRAN...

Дело в том что ракета любая - она нестабильна аэродинамически, центр сопротивления впереди центра тяжести пока она топливо не сожрала достаточно - хуже всего на взлёте.
Поэтому её надо подруливать всё время.
Что бы она не перевернулась вперёд задом под влиянием набегающего потока.
И начали они писать эти регуляторы на FORTRAN - надо отметить что этот язык был крайне демократичен. Не нужно было описывать вообще нихера - если вам нужно было завести переменную с плавающей точкой(физическое число) - вы просто писали Е=2.71
Компилятор понимал сам что это чисто с плавающей точкой(точка есть? - есть!) и заводил сам переменную нужного типа.
Кончилось всё по американски.
В описании цикла управляющего рулевым двигателем программист перепутал точку с запятой.

Это должно было быть:
DO IT=1,5 - далее там шло тело цикла управляющее приводом рулевого двигателя.
Ещё один момент - в FORTRAN имена переменных могли быть какие угодно

У программиста получилось:
DO IT=1.5 - переменной "DO IT" присваивается значение 1.5 - тело цикла за оператором выполнялось один раз, а не 5.
А это были иттерации вывода рулевого двигателя на нужный угол

Что получилось... ракета-носитель "Титан" с венерианским спутником на борту потеряла стабильность при взлёте и уже собиралась наказать программеров НАСА свалившись реально на фанерный городок у космодрома на мысе Канаверал - ГДЕ ВСЕ ЭТИ ПРОГРАММИСТЫ И СИДЕЛИ!

Но военные таки чёткие всё таки парни - успели нажать кнопку самоликвидации.
После того как программисты НАСА отряхнулись и постирали джинсы - был разбор полётов.
Что говорили американские генералы американским программистам... я не знаю.
50 лямов баксов - тех лямов баксов - потому что вместо запятой была поставленна точка...
...
Желающие могут погуглить эту историю - но кроме херни полной вы ничего не найдёте. НАСА сделало всё что бы не рассказать правду - реально это позор "американской идеи" который не с чем сравнить.
То что в Википедии описано я читаю с чуством некоторого оторопения - там не было таких языков:)
Откуда я знаю... вы уже не узнаете ребята, тех людей нет.
Которые из СССР заехали в США, там общались с участниками историями и поделились в кулуарах.
...
При чём здесь "С","С++" и Python... это всё части общей истории, если интересно - пишите, расскажу.

Показать полностью

C++ жил, жив и будет жить: зачем его продолжают изучать?

C++ может показаться сложным для старта на фоне JavaScript, Python и других технологий. Но у него есть преимущества, которые делают его достойным кандидатом на роль первого языка. Рассмотрим, почему новичку стоит выбрать C++, и разберем, кому действительно подходит этот язык.

C++ жил, жив и будет жить: зачем его продолжают изучать?

Причина 1: вы получите базу для изучения других языков

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

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

Причина 2: вы узнаете, как работает компьютерное железо

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

Другой пример — работа с потоками. В Python существует механизм GIL (Global Interpreter Lock). Он позволяет выполнять байткод только одному потоку одновременно внутри процесса, чем сильно упрощает жизнь разработчику, так не нужно думать о проблемах с синхронизацией. Но в C++ придется самостоятельно следить за безопасным доступом к данным, а для этого пригодятся инструменты синхронизации: мьютексы и семафоры.

Если хотите получить прочные знания по каждому аспекту языка, попробуйте курс «Разработчик C++» от Практикума. За 9 месяцев вы не просто освоите язык с нуля, но и создадите реальные проекты: от базового графического приложения на Qt, до крупной программы с полноценным дизайн-проектом.

Причина 3: вы разовьете дисциплину

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

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

Попробовать себя в роли C++ разработчика можно в бесплатной части курса Практикума — узнаете о профессии и интересен ли вам язык.

Причина 4: вы изучите основы алгоритмов и структур данных

Хорошему программисту желательно знать алгоритмы и структуры данных. В C++ для этого есть стандартная библиотека — STL (Standard Template Library). В ней уже реализованы многие базовые структуры данных:

  • векторы (std::vector) — используются для хранения динамических массивов;

  • списки (std::list) — позволяют эффективно работать с последовательностями элементов;

  • очереди (std::queue) — помогают организовать обработку данных по принципу FIFO.

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

Причина 5: вы научитесь компилировать

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

После этого у новичка формируется понимание языка.

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

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

  • Среда разработки (IDE) — это тоже отдельная программа. Она не является частью языка, а только предоставляет удобные инструменты: подсветку синтаксиса, поиск ошибок, анализ кода, отладку.

Разобравшись с этим один раз, программист начинает гораздо лучше понимать, как устроена разработка программ. В дальнейшем это часто приводит к новым вопросам: например, чем компилируемые языки отличаются от интерпретируемых, как работает интерпретатор Python, что такое JIT-компиляция и зачем она нужна. Но главное — исчезает иллюзия, что достаточно нажать кнопку F5 в IDE, и программа каким-то образом «сама» скомпилируется и запустится.

Сложно ли учить C++

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

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

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

Кому действительно стоит изучать C++

Это язык, который ценят за высокую производительность и контроль над ресурсами компьютера. Кроме того, у него хорошая обратная совместимость, многие программы, написанные в 90-х, можно скомпилировать и сегодня.

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

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

В итоге язык вам подойдет, если вы хотите:

  • создавать игры и графический софт;

  • разрабатывать ОС, драйвера и прочее ПО близкое к «железу»;

  • программировать Embedded-устройства;

  • работать над высоконагруженными системами.

Если вы хотите заняться фронтенд разработкой, создавать нейросети, мобильные приложения или вообще метите в DevOps с тестированием, C++ вам, скорее всего, не пригодится.


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

Или сразу пробуйте бесплатный вводный модуль курса «Разработчик C++» — поймете, интересен ли язык и как устроено обучение в Практикуме, прежде чем переходить к полной программе.

Реклама ООО «Яндекс», ИНН: 7736207543

Показать полностью 2
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества