В мире программирования есть несколько базовых языков. Соблазн их изучения очень велик, а возможности практически безграничны. На них, так или иначе, написана значительная часть современного программного обеспечения. Речь идёт про языки C и C++ (правильное произношение названий - "Си" и "Си плюс плюс").
Удивительным образом так сложились обстоятельства, что именно в этих языках сошлись высокая производительность, гибкость, хорошая архитектура и относительно высокая (на момент их появления) понятность. Можно даже сказать чуть больше. Оба этих языка определили развитие профессии "программист" на многие десятилетия вперёд. Язык C++ в принципе развил и популяризовал концепцию ООП, на которой основана добрая часть современного IT-мира.
Забегая вперёд, и продолжая обозначенную тему. Я не рекомендую начинать изучать программирование с этих языков. Особенно в 2023 году. Это действительно сложные языки. Работа с ними требует фундаментальной подготовки, знания многих принципов устройства компьютера, а так же многих особенностей программирования. Но давай будем последовательны, и рассмотрим эту тему чуть подробней.
C и C++. Языки начала начал 🌏
Языки C и С++ работают практически на любых устройствах. Да не просто работают, а доминируют на уровне далёких глубин операционных систем. Почему это так?
Windows, Linux, Unix, Android, iOS – в недрах этих платформ мы увидим очень много кода на C и C++. Причина такой популярности в том, что "С" был одним из первых относительно "удобных" языков программирования. Вслед за ним появился C++, который позиционировался как преемник "С", но уже как язык "высокого уровня".
И если язык C сложно назвать "Объектно-ориентированным" (потому что наличие только лишь структур не относит язык к ООП в полной мере), то C++ уже в полной мере предложил программистам объектно-ориентированный подход. Иначе говоря, C++ сильно очень упростил концептуализацию окружающей реальности.
В общем говоря, у разработчиков того времени не было особенно широкого выбора в том, на чём писать качественный код. Языки C и С++ были первыми языками, на которых за разумное время можно было создавать стабильные программы. Что и стали активно применять коммерческие организации, например Microsoft и Apple.
Кто придумал языки С и C++ 🔮
Язык C появился аж в 1972 году. Его разработал Деннис Ритчи - сотрудник Bell Labs (нынешняя AT&T).
К слову сказать, помимо языков C и C++, внутри Bell Labs так же придумали транзисторы, ПЗС-матрицы, а так же открыли эффект Холла и много чего ещё. За всё время своей работы, сотрудники Bell Labs получили 7 нобелевских премий в различных областях. Подробнее об этом, конечно же, пишут в вики.
На следующей фотографии Деннис Ритчи стоит справа. Слева от него - Кен Томпсон. И если Деннис Ритчи придумал язык C, то вместе с Кеном Томпсоном они разработали операционную систему Unix.
Следом за языком C, в 1983 году, вышел в свет язык C++. Его разработал Бьерн Страуструп. И да - он тоже был сотрудником Bell Labs. В отличие от языка C, язык C++ представлял из себя язык высокого уровня с поддержкой объектно-ориентированного программирования.
Немаловажно, что C++ явился предком и прообразом современных высокоуровневых языков - таких как C#, Java, Python, PHP и других. То есть, современные высокоуровневые языки имеют более "высокий уровень" в сравнении с C++, хотя он тоже является высокоуровневым.
Спустя 2 года после выпуска в свет языка C++ (и соответственно спустя 13 лет после выпуска языка C) была представлена первая версия операционной системы Windows - Microsoft Windows 1.0. Система была написана на языках asm и C. Вот первый загрузочный экран знакомой ОС того времени.
Иными словами, широкая популяризация языков программирования стартанула практически сразу, после появления этих самых языков. И если внутри Bell Labs больше уделяли внимание научной стороне вопроса и исследовательскому подходу в программировании, то компании вроде Apple и Microsoft проложили путь в коммерческое использование этих языков.
Особенности низкоуровневого программирования ⚙️
Языки C / C++ дают программисту очень широкие возможности. Можно работать напрямую с физическим оборудованием, памятью компьютера, создавать очень эффективный и быстрый программный код. Но, как говорится - не всё так просто!
В обоих языках практически нет ограничений на какие-либо действия - делай что хочешь, но и ответственность вся твоя. Это имеет большие отличия от например моего любимого языка C#, который содержит множество способов защитить программиста от его же дури. Концепция C / C++ противоположно другая - накосячил в коде - получи профилактического леща.
Как говорили в одном фильме, большая сила - это большая ответственность. На мой взгляд, это определение очень хорошо применимо к языкам C и C++. На них можно создавать удивительные программы, быстрые и элегантные в своей простоте. Но и ответственность за качество и правильную работу такого кода целиком и полностью возлагается на программиста.
C++ как вариант для хардкор-старта 🚀
В общем. Хочешь работать поближе к «началу начал» - изучай C++. Язык древний как динозавр, надёжный как лопата, эффективный как молоток, незаменимый как кирпич в кирпичном доме. Но вот простым, конечно, назвать его нельзя.
И тем более нельзя назвать его Friendly. Начиная обучение с этого стека, будешь морально бит, жестоко и неоднократно. Но есть и плюс - после C / C++ остальные языки покажутся лёгкими, простыми и совершенно очевидными.
На мой взгляд, изучение языков C и С++ в 2023 году подходит далеко не всем. Это важно понимать, особенно для начинающих программистов. Успешная работа на этих языках требует фундаментальных знаний. Требует усидчивости, времени, инвестиций в образование, моральной готовности к долгой и трудной дороге. Говоря другими словами, коммерческая состоятельность программиста на C++ наступает через 5-7 лет, в то время как для C# / PHP / Java этот срок сжат до 1-3 лет.
Для тех отчаянных храбрецов, которые всё-таки решат изучить С++. Две базовые книги с которых стоит начать: «Объектно-ориентированное программирование в С++ | Лафоре Роберт» и «Язык программирования С++ | Страуструп Бьерн». Первая книга известный бестселлер, достаточно подробно описывает язык и приводит хорошие примеры. Вторую книгу написал непосредственно автор языка C++, а именно Страуструп Бьерн.
🔥 Понравилось? Подпишись! Победим восстание роботов вместе! 🔥
🚀 P.S. Ты можешь круто поддержать меня и проект "Войти в IT" на boosty! Я публикую там более эксклюзивный и профессиональный, иногда немного личный контент. Хочешь посмотреть как я выгляжу в реальной жизни? Тогда жми: Ссылка 🚀
P.S.2 У меня ещё есть Telegram-канал. Там посты чуть попроще, и чуть повеселей. Ссылка
P.S.3. Есть среди читателей корифеи C / C++? Поделитесь, как живётся отцам-основателям программирования в современной реальности Тик-Тока и котиков в соцсетях? 😉
P.S.4. Как считаете уважаемые знатоки, стоит ли новичкам начинать свой путь в программировании с изучения C / C++ в 2023 году? Или лучше начать с простой и коммерчески-ориентированной классики вроде PHP?