Карьера GeekBrains _
17 683

Почему C++ крут, актуален и бессмертен

Колонка от образовательного портала GeekBrains, автора курса «Разработчик С++».

В закладки
Аудио

В начале 80-х годов прошлого века сотрудник Bell Labs Бьёрн Страуструп после долгих мучений с существующими языками программирования провёл эксперимент со скрещиванием C и Simula. Он даже не рассчитывал, что его детище, получившее название C++, привлечёт столько внимания.

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

Поэтому, если вы думаете, что C++ безнадёжно устарел, у нас для вас новость – отправить на пенсию его может только какая-нибудь невероятная технологическая революция. И вот почему.

Он быстр

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

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

В противовес этому часто ставится скорость написания кода, которая, например, у интерпретируемых языков на порядок выше. В этом есть доля истины — C #, Java и конечно же Python даже визуально занимают меньше места, с их помощью можно создавать сложные программы, затратив минимум времени. Однако подумайте, что лучше для конечного пользователя: время разработки приложения или его медленная работа? Ответ очевиден.

Он универсален

Компиляторы C++ есть на каждой операционной системе, большинство программ легко переносится с платформы на платформу, со средой разработки и библиотеками у вас точно не возникнет проблем. C++ — это демонстрация идеи классического программирования, когда 90% мыслей связано с кодом и лишь 10% с используемой периферией.

Достаточно просто вспомнить, где он используется: микроконтроллеры, IoT, роботы, десктопные и мобильные приложения, веб, игры, системы моделирования, прогнозирования, обработки статистики и в нейронных сетях. Везде. Просто не существует такой области программирования, где C++ был бы бесполезен.

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

Он активно поддерживается

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

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

Он полезен в качестве фундамента для обучения

Java, JavaScript, C #, как и огромное количество других популярных языков программирования, содержит в основе принципы C++. Именно поэтому учебные программы многих вузов содержат курс «плюсплюс», который идёт сразу за получением основ на C.

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

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

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

Он востребован

Всё вышеописанное является причиной тому, что программисты C++ востребованы по всему миру, что не в последнюю очередь сказывается на зарплатах. Так, средняя зарплата по России составляет 75 тысяч рублей. Более того, в отличие от многих популярных языков, офисная работа с которыми предполагает переезд в крупный город, востребованность программистами C++ имеет распределённый характер.

Перейдя по ссылке выше, вы узнаете, что максимальная зарплата предлагается не в Москве, а в Самарской области (средняя — свыше 100 тысяч рублей), в топе — Калужская и Липецкая.

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

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

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

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

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

Алексей Кузнецов
программист Mail.Ru Group

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

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

C++ активно поддерживается — тут всё верно: есть очень большое сообщество программистов, десятки книг, сотни форумов. Ищущий всегда найдёт ответ. Язык действительно позволяет многое понять, цена — сложность, а значит время на изучение.

С мнением, что если изучить С++, то любой другой язык не вызовет затруднений, я категорически не согласен.

Вакансий действительно много: практически везде, где жёсткие требования к производительности, требуются программисты С++. «Работая с ним, ты ощущаешь, что куда больше создаёшь, чем используешь», – увы, это так, но это один из его недостатков. Я бы не стал преподносить это как достоинство.

Игорь Семенов
ведущий программист Mail.Ru Group

Материал опубликован пользователем. Нажмите кнопку «Написать», чтобы поделиться мнением или рассказать о своём проекте.

Написать
{ "author_name": "GeekBrains _", "author_type": "self", "tags": [], "comments": 200, "likes": 34, "favorites": 56, "is_advertisement": false, "subsite_label": "hr", "id": 50161, "is_wide": false, "is_ugc": true, "date": "Sun, 04 Nov 2018 10:14:59 +0300" }
{ "id": 50161, "author_id": 114436, "diff_limit": 1000, "urls": {"diff":"\/comments\/50161\/get","add":"\/comments\/50161\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/50161"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 199121 }

200 комментариев 200 комм.

Популярные

По порядку

Написать комментарий...
110

Как С++ синьёр скажу, что это полная чушь.
1) Он быстр
Нет. Он не быстр. Современные конфиги и оптимизаторы для C# и Java позволяют им работать на равных. Попробуйте отключить GC и вызывать его руками. Получите разницу всего в 1-1.5 раза.
Скорость компиляции у С++ в 20-50 раз медленнее. И растет не линейно. Проект может начать компилироваться часами просто из-за какой-то либы и шаблонов.
2) Он универсален
Нет. Он универсален только с версии С++11. Да и тащить приходится кучу сторонних библиотек (типа boost). И там тоже есть баги. С++ абсолютно не переносим. Компиляторы ловят разные ошибки разными способами. Если включить -Wall на MSVC и GCC, то они будут падать на разных ошибках и разных ворнингах. Ах, а чего только стоят средства отладки... для каждой платформы они абсолютно разные. Хочешь хорошо дебажить плюсцы - будь гуру линуха и его средств, и гуру винды и его средств.
3) Он активно поддерживается
Вы можете найти проекты, в которых рядом с сырой памятью (и фичами из С) будут фичи из С++17. Мммм, найс. Счастливой отладки.
4) Он полезен в качестве фундамента для обучения
Нет. Фундамент для обучения это С.
5) Он востребован
Нет. Он не востребован. Просто на нем было написано столько, что это физически переписать нереально. Поэтому приходится поддерживать эти все продукты.
Вывод:
С++ это как Perl или С. Круто только в 2х случаях:
1) ты студент
2) ты супер-гуру-маньяк плюсов
Для остальных это ад.

Ответить
13

По всем пунктам уже разжевали. Я много лет писал чувствительные к скорости выполнения части приложений, которые почти наверняка установлены или были установлены у вас на компьютере и/или телефоне.
И правда жизни в том, что на C++ прямо сейчас пишется очень много именно нового кода, потому что альтернативы нет. Здесь в долине тусовка довольно тесная, и я прекрасно вижу, что Facebook, Microsoft, Google, Amazon пишут великие тонны абсолютно нового C++ кода прямо сейчас в то время, как LinkedIn, например, на сервере весь в жаве, включая критичные части, от чего они иногда серьезно страдают.
Ну так, чтобы уж не без аргументов:
1) Активное использование стека, placement new, свои аллокаторы, устранение false sharing и прочих проблем с кешем при полном сохранении ООП. Да, C умеет то же самое, но там нет ООП.
2) Он универсален точно так же, как и C. Если что-то не работает, не используй это. Моя библиотека в одном популярном мессенжере много лет назад компилировалась под 11 таргетов на С++03 включая все мобильные платформы, и там был STL.
3) Прямо сейчас так выглядит мой текущий проект. Он активно работает на >миллиарде устройств без крешей (за исключением "космических лучей", на таких масштабах довольно веселые эффекты, но это единицы в день).
4) Он полезен как универсальный фундамент для изучения любого императивного языка в ООП. Большего брейнфака нет ни в одном подобном языке, поэтому если ты хорошо знаешь C++, ты знаешь их все.
5) Уже говорил в начале.

Ответить
0

Как минимум, Google активно пытается заменить C++ на GO там, где это возможно. Ради этого они и придумали GO.

Ответить
0

Не думаю, что идея Google состояла именно в избавлении о C++. Куда вероятнее, это попытка избавиться от геморроя, которым в обязательном порядке сопровождается C++-разработка. От затрат на зарплаты С++-программистам (сколько-нибудь приличный С++-программист — это не вчерашний студент за $40-50K в год). А Go как раз и позволяет легко посадить на проект ораву junior'ов.

Ответить
2

Достаточно написать что ты сеньор и далее много текста с частными случаями, ничего в общем не опровергающими, и тебе поверят

Ответить
26

Опровергни хоть один пункт.

Ответить
10

Основная идея плюсов: not pay for what you don't use, как раз ты не платишь за GC. Java без GC это весьма странное решение, тк оверхед на каждый класс 18 байт. В Java есть jit и в некоторых ситуациях он может дать буст, но на деле lto, pgo, bolt дают значительный рост производительности. Скорость компиляции никого не интересует, все большие проекты собираются в облаках и это занимает от силы 5 минут.

Он переносим. Кланг и гцц отлично собирают код под разными платформами. Msvc интересен только как среда для разработки, как компилятор он плох.

Сырые указатели это норм в случая листов, например. Если где-то идёт мешанина из new, то это проблема проекта. Но она вполне решаема санитайзерами, сейчас даже время жизни объектов можно проверить при сборке.

У нас все проекты, которые заработали, переписывают с питона c++. Работа найдётся всегда.

Ответить
8

ПРЕКРАТИТЕ!
тут все-таки полно гуманитариев, пожалейте их мировосприятие.

Ответить
–1

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

Ответить
0

distcc ccache поищите. Хотя у нас своя реализация.

Ответить
–1

Всё равно это на порядки медленее, чем билды java. Не говоря уже про go

Ответить
1

Не знаю что вы собираете, вот только что отправлял два коммита в проект на 4,5 млн строк кода. Статическая сборка с libc и прогон 3000 функциональных тестов/5000 юнит тестов заняли 15 минут. Может вы что-то делаете не так?

Ответить
5

"C++ не быстр, потому что он всего в полтора раза быстрее C# (если отключить тому GC)." Лол

Ответить
2

Почему Вы тогда стали C++ Senior, если для Вас в нем столько минусов?

Ответить
21

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

Ответить
1

Самая странная вещь, которую я слышал в контексте про разработчиков. Хороший разработчик думает в таком аспекте, что использует только удобные ему инструменты и удобные инструменты для решение каких-либо задач. Если ты потратил около 5 лет своей жизни на изучение и работы с языком, то это исключительно твой выбор!

Ответить
1

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

Ответить
1

Я имел ввиду, что он выбирает подходящий под текущую задачу инструмент, с которым ему приятно работать.

Ответить
1

У каждого языка есть свои сильные и слабые стороны. Сущесвтуют задачи где лучше всего подходит C++(браузеры, системные утилиты, антивирусы и т.д.). Там где есть ограничения по памяти и скорости, но не настолько, чтобы уходить в чистый C. У каждого популярного языка есть свои ниши, где они подходят хорошо.

Ответить
6

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

Ответить
–2

Rust, как по мне, скорее замена C, ну может конкурент Go. Там ООП через типажи неполный по сравнению с C++.

Ответить
2

Хочешь ООП - бери высокоуровневый язык. ООП вообще не очень хорошо сочетается с производительностью. Любой vcall - это D-cache miss + I-cache miss.

Ответить
0

Давайте отключим GC и получим, что ява с отключенным gc всего в 2 раза медленней плюсов без такового.
Аргументация уровня «Бог»

Ответить
5

Вот тебе еще один аргумент уровня "Супер-Бог": Если на С++ писать без системных оптимизаций (пулл памяти, SIMD, выравнивание памяти и данных и прочее) и с аллокациями, то будет 1 в 1 Java без GC.

Ответить
2

А смысл их отключать?

Ответить
9

Это аргумент по типу "А ты без рук сможешь отпиздить меня?"

Ответить
1

Наверное он хотел сказать, что высокая скорость С++ от оптимизации компилятором, а не от парадигм языка.

Ответить
0

Ужас, чуда не произошло...

Ответить
0

Т.е. использовать все возможности глупо? И на боевых проектах плюсы используются в голом виде?

Ответить
2

Так и что же учить в таком случае? :)

Ответить
–7

Учи Rust, Go если хочется лоу-левел.

Ответить
15

С каких пор язык со сборщиком мусора low-level?

Ответить
7

Был неправ, погорячился!

Ответить
1

Python.

Ответить
–4

Иди во фронтенд! Язык там может и не идеальный зато один единственный во всем фронтенде! Все фреймворк жизнеспособны, инструментов отладки тысячи, база библиотек отличнейшая! Без работы не останешься и продвигать свежие фреймворк проще чем на бэкенде и десктопе.

Ответить
0

фронтенд это html, css, php, javascript?

Ответить
3

PHP - фронтэнд?
Да и html/css сложно языками назвать (там алгоритмы и логика не нужны, только запоминание тегов и свойств). Хотя даже если это и языки, то их освоить хорошо можно за неделю каждый... как минимум до уровня "верстальщик мидл+")

Ответить
6

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

Ответить
0

Это JavaScript.

Ответить
–11

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

Ответить
36

Влажные мечты и сказки джунов, пока не столкнувшихся с десятилетним легаси и безумными стэками.

Ответить
1

В пользу C++ есть один, но несокрушимый аргумент: у C++ НЕТ альтернатив.

Ответить
0

Можете привести пример, в какой именно задаче у C++ нет альтернатив (кроме задач типа "мы уже написали код на C++, поэтому альтернативы нет")?

PS: я себя считаю фаном этого языка, но сам вижу, что альтернатив ему довольно много практически во всех сферах

Ответить
–1

Браузер, игровой движок, любая другая низкоуровневая задача.

Ответить
0

кек
и везде - чистый Си будет альтернативой

Ответить
0

Есть Rust, на который сделала ставку Mozilla. Они переписывают части движка с C++ на Rust.

Ответить
–4

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

Ответить
4

Какая каша в голове...

Ответить
–4

Огнетушитель принести?. Нету на сегодня даже и на завтра замена С++.Кулхацкеры писавшие крипторы для шифровки файлов га компе собрали себе бабла на безбедную жизнь.

Даже it спецы по безопасности говорили юзером ,что лучше заплатить, так невозможно больше с этой адЦской прогой совладать

Ответить
3

Романтика у вас повыветрится с окончанием института, даю гарантию.

Ответить
0

романтика выветривается только у тех кому нах. это не надо, но язнаю как ломали люди с blackbox банкоматы и тянули лаве

Ответить
2

При чём здесь криптор? Его что, нельзя ни на каком другом языке написать?
Я знаю несколько людей, которые заработали себе денег, зная php, C# и прочие "недоC++" языки.
Давай другой пример неси, этот протух

Ответить
–3

Ну откуда вы лезете? Вы хоть понимаете разницу между компилируемых и интерпретируемых языков? Только не надо говорить про jit компиляцию и тому подобную динамическую ересть.

Ответить
–4

"Современные конфиги и оптимизаторы для C# и Java позволяют им работать на равных. Попробуйте отключить GC и вызывать его руками. Получите разницу всего в 1-1.5 раза."

Что-то Вы какие-то сказки про скорость Java рассказываете, что-то посерьезней HelloWorld-то оптимизировали по скорости? А по потреблению памяти? А мультитредовый проект оптимизировали хоть раз?

Ответить
0

Для обучения еще паскаль можно вспомнить, раз уж пошла такая пьянка :)

Ответить
40

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

Ответить
22

вы сейчас гик брейнсу бизнес разрушаете! астанавитесь!

Ответить
7

2019 на носу, а кто-то хочет делать бизнес на C++

Ответить
40

Для бизнеса важна скорость внедрения больше, чем производительность. Подтверждений тьма, тот же веб не пишется на сях, хотя это возможно. Поэтому между ‘быстро запрогать’ и ‘запрогать, чтобы работало быстро’ почти всегда перевес к первому хоть и не абсолютный(например web based мобильные приложения против нативных). Бизнесу важно проверить гипотезу, выйти на рынок, заработать как можно скорее и потом оптимизировать.
И да, наши мощности почти никогда не нагружены на 100%, поэтому ‘надо сделать самый оптимизированный продукт’ чаще всего звучит как ‘я умею только си, джава и пайтон для лохов’ - непродуктивный буллшит зажравшегося прогера, которому вы до сих пор почему-то доверяете. Нет потребности в повсеместной оптимизации. Если у вас на сайте полтора человека и для загрузки страницы нужно сорок sql запросов это не значит, что нужно оптимизировать. Скорее всего ваш сайт так и будут посещать полтора человека, даже если вы будете отдавать его статикой моментально. Любая оптимизация должна быть оправдана экономически, а не теоретически, поэтому написанное лишь неимоверно субъективное и необоснованное практически мнение.
Я рад, что вы постигли с++ и получаете в среднем 75 тыс в России. Этим можно субъективно гордиться, но объективно это так себе результат, в долине с++ не сдался почти никому. На что брать ориентир айтишнику, если не на долину.

Ответить
3

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

Ответить
1

А Go чем вам не угодил? Его и придумали, как простую замену C/C++. Чтобы вливаться в работу было просто, чтобы не было проблем с поддержкой, чтобы был быстр. Не вижу проблем запускать веб-сервис на GO, особенно, если требуется микросервисная архитектура. Другое дело, что сейчас не так много спецов по GO, но с каждым годом всё больше и больше

Ответить
0

Go нужен, когда юзеров сотни тысяч хотя бы, а иначе тот же nodejs справится вполне. Я полагаю, Вы не станете отрицать, что кодеры на JS немного более доступны, чем кодеры на Go :)
Да и Go все же замена C, а не плюсам, как ни крути..

Ответить
0

JS просто больше времени существует. Как я и говорил, пока мало спецов на GO. Обычно это переходящие с PHP. Кто работает с нодой, тому не нужен GO по религизоным соображениям :)

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

А вообще странно, что упомянули JS и ноду, но не упомянули PHP, на котором вообще стартовать не проблема, а спецов вагон и целая тележка. У серверного JS намного меньше специалистов.

Ответить
0

PHP нынче не в моде, а в некоторых местах за такие слова даже побьют :)

Ответить
1

не в моде среди школьников и типакрутых спецов, в коммерческой разработке все в порядке с PHP :)

Ответить
0

Всяк кулик свое болото хвалит :)

Ответить
0

Я пишу много на чем, в том числе и Go и Node. Подбираются инструменты под задачу, поэтому забавно читать про это все вот)

Ответить
1

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

Ответить
0

Что в Долине сейчас рулит? Javascript? Node.js?

Ответить
1

То, на чем можно быстро собрать и запустить MVP — JS/Node/React/Angular/Vue

Ответить
0

Ruby on Rails. Запустить MVP на них можно вдвое быстрее.

Ответить
3

А фронтэнд кто делать будет ? Дядя ваня ?
На питчах никто серверную часть не смотрит. Все хотят покликать, пощупать руками.

Ответить
0

Чтобы покликать и пощупать достаточно invision с картинками. Для рабочего MVP фронт-энд фреймворк это последнее о чем нужно думать. Если вы начинаете с фразы "ща забацаю компонентов" - у вас проблемы.

Ответить
0

«Чтобы покликать и пощупать достаточно invision с картинками»

Безусловно. Но на такое денег не дают. это же prototype а не mpv.

Давайте будем честны, куда не плюнь — всюду фронт. Мобильное приложение ? Веб в обёртке вебвью. Дешевле взять парочку фуллстек фронтендэров, которые сделают приложение, прикрутят aws и nosql какой-нибудь.

Конечно, если у вас под капотом бигдата, хадупы и тензорвловы, то без команды бэкэндеров не вывезти. Но камон, много вы таких mpv видели ?

Ответить
0

Если ваш продукт не связан с беком, конечно)

Ответить
0

Главное - навыки программиста. Вы можете собрать годный продукт на голом htm+js с использованием firebase/..., можете быстро писать сайты на php(тот же wp)/python(flask/django), ...
Главное - результат, поэтому выбирайте те технологии, которыми вы умеете пользоваться. В умелых руках даже маленький инструмент способен привести к значительным результатам. Все упирается в архитектуру, приятные мелочи и решения проблем безопасности. Есть объективные проблемы безопасности у многих популярных решений, хотя в умелых руках и wp может стабильно выдерживать кучу трафика(лайфхакер например), при том что архитектура мета-тегов ужасна, но это не менее мешает wp держать 1 место среди cms и собирать на нем вполне полноценные решения за считанные часы.

Ответить
1

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

Ответить
0

Для бизнеса важна скорость внедрения больше, чем производительность

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

Ответить
1

Если говорить про веб, то с++ не актуален. Вряд ли вы напишите что-нибудь более быстрое, чем nginx/apache, да и смысла нет в этом. Писать ещё один парсер http? Зачем? Потом отдадите также html.
В итоге - си либо глубоко в серверсайд, либо в десктоп/мобайле, что в текущих реалиях далеко не самые популярные отрасли. Большинство сегодня в вебе, хотя 10 лет назад веб был менее популярен, чем десктоп(2гис диски раздавал, сегодня их вставить-то некуда).
Количество веб-сервисов в разы больше, чем десктоп/мобайл приложений. Последние скорее приятный бонус для вашего НЕ c-developed веб-сервиса. Таким образом сяшники где-то далеко от топов. Очень далеко.

Ответить
3

Вы наверное не слышали про 100Гбит/с интерфейсы и что на таких каналах тоже нужно отдавать тот же самый html. Если вокруг вас нет людей, которым нужны решения производительнее nginx, то это не значит, что-то кто-то где-то это уже реализовал и использует ;)

Ответить
–1

Ну то есть nginx плохо оптимизирован и вы смогли обойти их своим кодом? Почему тогда nginx с апачем остаются лидерами по больнице, а не ваше решение? Может вы что-то не договариваете? )
Понятно, что есть тарантул например, который может, но вы видимо не о нем, там своя специфика и lua

Ответить
1

Ну нужно различать решение массовое и узкоспециализированное.

Ответить
1

Почему тогда nginx с апачем остаются лидерами по больнице, а не ваше решение? Может вы что-то не договариваете? )

Он тесно интегрирован со внутренними сервисами и чистить код вряд ли кто-то будет. Быстрее, т.к. фсмки по-другому написаны, работает немного в другой моделе многозадачности, сетевое взаимодействие проихсодит без участия ОС.

Понятно, что есть тарантул например, который может, но вы видимо не о нем, там своя специфика и lua

При чем тут тарантул?

Ответить
0

жаль, что вы канал на ютубе забросили. Это было интересно

Ответить
0

Спасибо за отзыв. Пытаюсь повысить уровень)

Ответить
0

Да, но, к большому сожалению, поэтому у нас естть электрон приложения, которые жрут память, как не в себя, и медленно работают.

Ответить
31

Гикбрейнс называет себя образовательным порталом.

Штош....

Ответить
23

За обсуждением C++ все забыли написать, что GeekBrains - унылое говно, где тебя всё равно ничем у не научат.

Ответить
6

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

Ответить
20

Вся статья пронизана одной мыслью - С++ - лучший язык в мире.
Нет, нет и нет.
"большинство программ легко переносится с платформы на платформу"
ЧЕВООООО?? Автор когда-нибудь пытался перенести проект с винды, написанный с плотным участием условного WinAPI, на условную линуху? Просто гигантское количество человеко-часов потратишь на то, что бы это все перенести, а потом еще в 2 раза больше, что бы это работало хотя бы так же быстро, как тот же самый проект на питоне, написанный за пару часов.
С++ нормально использовать, как частичный функционал для проектов. Например, на Java через JNI. Но разрабатывать полноценные проекты - не стоит тех усилий.
Ты за пару часов на Python или Java поднимешь сервер с API, удобно запуская это все через systemd и имея очень комфортную скорость работы, или будешь месяц пытаться запустить тот же самый API сервер на С++, который будет работать в лучшем случае в 1.5 раза быстрее, что не будет являться критичным, потому что пользователю будет плевать, загружается страничка у него 50 мс, или 75 мс. А за этот месяц на Python ты сможешь сделать шикарную асинхронную архитектуру, которая будет делать все если не быстрее, то столько же.

Ответить
7

И в итоге все все равно упрется в I/O - сеть или БД :)

Ответить
0

Да, время загрузки не имеет значения, конечно. Сеть у вас бесконечная, а скорость света уже преодолели. Только вот глупые Гугл, Яндекс, Амазон оптимизируют время загрузки.

Ответить
13

То-то обновленный gmail так быстро работает...

Ответить
0

Это уже вопрос к фронтендерам. gmail грузится быстро, а вот отрисовывается долго.

Ответить
4

А фронтендеры не в гугле работают? Вот заменили бы JavaScript на С++ и наступило бы счастье. :) Одна надежда на WebAssembly, но пока все идет в сторону PWA, потому что это выгоднее.

Ответить
2

Для не знающих. PWA - тоже говно, только в обертке.

Ответить
3

Ясное дело, что если рассматривать IT гигантов, у которых по несколько млн подключений к сервисам в секунду, нужно оптимизировать как не в себя.
Но теперь рассмотрим обычный рядовой бизнес.
Есть смысл тратить по полгода-год на решение на С++, если можно не хуже набросать за месяц на Java? Если нормально распределять нагрузку, то все будет грузиться моментально.
Ну и да, в этом вашем гугле почему-то очень активно использовали Python, пока его разработчик от них не ушел :)

Ответить
0

Откуда такие цифры? Это такой же миф, что и миф о Java. У Java действительно есть оверхед по памяти и на плюсах писать код медленнее, если ты на них никогда до этого не писал. Я вижу обратную практику: только дата сатанисты пишут код на питоне, при том ужасно, а если в проекте есть разработчики, то пишут сразу на плюсах ну или расте.
В гугле до сих пор используют питон для скриптования сценариев автоматизации. В области поиска на питоне никогда не было никакого продакшен кода.

Ответить
0

Всё равно бОльшая часть кода в мире — это веб, который на плюсах никто в здравом уме не пишет.
Конечно, есть смысл писать на них какие-то дико производительные штуки, но всё подряд смысла нет, потому что придётся раздувать штат. Вон даже всякие вк/фб пилят свои версии пхп для производительности, но не пишут на C/C++.

Ответить
1

Всё равно бОльшая часть кода в мире — это веб, который на плюсах никто в здравом уме не пишет.

Большая часть кода в мире - это кровавый интерпрайз и Java. А вот backend часть на плюсах вполне часто встречается. Да, таких решений мало, но оно конечно и не нужно для человека, который с горем пополам освоил nodejs.

потому что придётся раздувать штат

Откуда берутся выводы про штат и время? С++17 и свой STL сабсет позволяют писать так же, как на python или Java.

фб пилят свои версии пхп для производительности, но не пишут на C/C++.

Но вы же не работаете в фб и делаете такие выводы. В фб еще как пишут на плюсах.

Ответить
1

ну по тестам там питон не в полтора раза, а на порядок медленнее

Ответить
1

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

Ответить
0

В математике или в i/o?

Ответить
1

У Java много билиотек написанных на Java. Но вот если оставить Python на едине с Python, скорость окажется очень печальной). Множество библиотек Python просто биндинги C/C++ билиотек, что позволяет хоть какую-то производительность выдерживать. Вообщем, чтобы Вам удобно было писать на Python, множество программистов пишут на C/C++. Я уж молчу про GIL.

Ответить
12

Какая мокрая вода, а теперь попробуйте вчерашних юристов за 2 месяца обучить на каких-то курсах, JS с React они как-то в своей голове ещё уместить смогут, отверстают пару формочек, посчитают себя спецами и пойдут просить 100 рублей в нерезиновой.

Как вы им плюсы впаривать будете? Изучать долго и сложно, особенно гуманитариям, быстрого результата сразу не увидеть, джунам платят мало, предложений по работе намного меньше, всем же сайтики пилить нужно, все остальные же, с языком в том или ином виде уже знакомы, «продвигать» его не на техническом ресурсе, а на попсовом VC, очень странный подход.

Ответить
8

Зачем это на VC?

Ответить
12

VC растет, сюда с хабра переезжают люди, блоги компаний и т.д., в аудитории портала давно не один программист.

Ответить
2

Вот интересно, а почему с хабра бегу? Надоевшая псевдоэлитарность?

Ответить
15

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

Ответить
8

Для меня в нем самый главный минус - это пресловутая система самомодерации, когда лютейше минусуется мнение, отличное от мнения большинства (аудитории хабра), хотя оно находится в рамках этики и морали, и вообще ничьих чувств не затрагивает, но оно другое. И ладно бы это были бы просто плюсы и минусы, минусуйте на здоровье, если больше никак свое ЧСВ не поднять, но главное в карму при этом срут, и остаешься с возможностью комментирования раз в час (в лучшем случае). Поэтому тоже уже там почти не сижу, в дальнейшем может блог корпоративный там заведу если вдруг стану инди, но не более.

Ответить
1

Тут тоже самое.

Ответить
1

Ну не настолько. Плюс кармы нет, поэтому пусть ЧСВ-шники минусуют сколько влезет. Дело не в том что минусы по самооценке бьют, а ограничениях в связи с ними.

Ответить
1

какое там величие?
Там вообще есть действительно полезные статьи?

Ответить
–1

кому не в коня корм, тому не в коня корм.

Ответить
1

а по-существу вопроса?
Там же переводы одни. Переводы для кого... для разработчиков? Даже смешно. Авторские тексты люто обсирают - ибо недостойны. Вот вы, например, типичный хабровчанин.

Ответить
–4

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

Ответить
0

жестко вы меня раскатали.
Себя-то вы считаете ого-го кем. Понимаю.

Ответить
–1

Я бы на вашем месте не только понимал меня, но и завидовал мне

Ответить
0

Вы часто советуете людям завидовать вам?

Ответить
1

Сказали же уже, типичный хабравчанин)

Ответить
0

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

Ответить
–4

омг... держи в курсе своих переживаний, анал-итик

Ответить
3

Денис Крючков, перелогиньтесь

Ответить
0

Таки недавно он уже обратно собрался в Хабр, ога)

Ответить
0

Таки в моем комментарии об этом тоже написано )

Ответить
0

Оу, извиняюсь, читаю комменты всегда внимательно (как минимум чтобы такого не было), но тут отвлекся на напоминалку)

P. S. А закрыться не закроется, как говорится не дождетесь, на самом хабре статья была, где какой-то стартап решил посчитать выручку от своих будущих проектов, но так увлеклись, что нечаянно посчитали выручку хабра :D Дак вот там лямы в месяц доход, лямов пять, если не ошибаюсь, понятно что никто не будет закрывать такой клондайк. Неспроста Крючков его покупал на пару с Яндексом. Ну не на пару, а Яндекс ему в долг дал, типа отдашь когда сможешь.

Ответить
1

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

Ответить
1

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

Ответить
0

А, ну в таком случае да, если это чистая прибыль - это уже интереснее звучит )

Ответить
0

Во-воооо, во-во)))

Ответить
15

а почему с хабра бегут

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

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

Это как форум из двухтысячных, со старожилами с 20000 сообщений, которые уже просто несут хуйню ради того чтобы продолжать что-то постить. И если какой-то новичок приходит с новой темой и не рад комментариям с петросянством и ответами "rtfm, юзайте поиск", тему просто закрывает такой же обидчивый старожил-мочератор.

Сейчас на хабре две категории читателей: или токсичные усатые старожилы, которые юзают хабр как площадку для своего ежедневного говнобложика (поездка в исландию милфгарда, серьёзно? это технический ресурс, иди нахуй оттуда в жж)
или совсем зелёные ламеры, которые радостно плюсуют любую статью с основами или шутеечками, или новостями про IT в РФ и полностью игорируют любую хардкорную статью. Что приводит к засилью унылого говна на главной.

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

Стоит отметить переводы - это отдельный лол. Все, кому тема переводной темы была важна, уже прочитали статью в виде новости на Y news, может ответили автору на медиуме или создали issue на гитхабе, и забыли, пока какой-то недоумок не принёс на хабр, чтобы все комментаторы, кто вообще не интересуется тематикой, могли размешать свои ненужные мнения в общем чане невежественности.

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

p.s. ещё хочется сказать о рубрике с публикацией каких-то влажных детских стишков и рассказов, но даже мне не хватит слов, чтобы описать это омерзительное явление, и ответить, почему такая рубрика вообще существует на ТЕХНИЧЕСКОМ МАТЬ ЕГО ресурсе, а не на diary.ru

dixi

Ответить
0

Сообщение удалено

Ответить
1

…потому что прилетало НЛО.

Ответить
1

В целом моё мнение. Хотя перетасовка гиктаймса и хабра непонятна.

На хабре существует 4 категории статей:

1. Кармадрочерская статья - Написать 4 абзаца как ты сделал крутую софтину без единого примера работы. При этом "Если интересно, то лайкните, а я сделаю еще одну статью". Как правило больше 2 статей не выходят, а софт никто в итоге не пощупал.

2. Исследовательские статьи - хуй пойми что, без Jameson'a не разобраться. Как правило слишком сложно, да и в общем-то похуй. Тематики обычно из "Если убрать пробел, то скорость возрастёт аж на 0,00003%!!!!".

3. Переводы - как правило нытье из запада про возраст, собеседования, зарплаты, openspace.

4. Обучалка - очень редко, но бывает, что-то годное помогающая разобраться в чём-то.

Я очень рад, что на хабре закрыты по умолчанию комменты. Так ты сразу видишь какое сообщество на ресурсе. В основном унылое говно.

Ответить
1

Реклама можт

Ответить
0

Выбор технологии для проекта один из важнейших.

Ответить
10

В 2к18 учить С++ имеет смысл если хочешь идти разгребать легаси говно или идти прогать в какую-нибудь гос.контору.

Ответить
2

А в яндексе легаси говно или это гос.контора?

Ответить
5

Яндекс это градообразующий завод

Ответить
2

В яндексе придется переучививаться на их stroka и wtroka

Ответить
2

Или на завод. Но смысла в этом 0 - чтобы нормально разобраться в языке нужно стать монахом

Ответить
0

TensorFlow / Caffe2 / MXNET / CNTK и еще тонна тулов для ML/DL.

Ответить
0

TensorFlow интерфейсы для C++ намного ущербнее чем Python'овские.
"A word of caution: the APIs in languages other than Python are not yet covered by the API stability promises.
"

Ответить
3

Я имел ввиду разработку самих тулов в Google/Facebook/Amazon/Microsoft а не их использование. Так да, Python API наше все, разве что за исклюением некоторых случаев использования моделей в подакшине.

Ответить
0

Собственно, чем и занимается 80% наших спецов? =)

Ответить
8

Все приложения рано или поздно мигрируют в веб. Для веба писать сервисы на плюсах тяжеловато. Имхо перспектива плюсов в разрезе веба: маргинальные фичи с агрессивной оптимизацией(читай костылирование на низком уровне) и поддержка всего, что уже написано. Еще геймдев, где это будет долго востребовано, но очень тяжелые условия, на грани рабства.

Ответить
2

Удивительно, и ведь многие сознательно идут на это

Ответить
1

Откуда сведения про тяжелые условия?

Ответить
0

Еще геймдев, где это будет долго востребовано

Вообще все, что связано с графическим программированием. 3D редакторы, видеоредакторы, фотошопы и т.д.

Ответить
1

Редакторы впереди всех несутся в веб с очевидными перспективами: распределенные на много хостов приложения по подписке(возможно состоящие из микросервисов, где местами будет с++). Рендеринг в сети, составные части моделей в сети, разделение с другими членами команды онлайн. Осторожно предполагаю, что UI на плюсах не выживет. Тот же фотошоп через несколько лет может стать соседней вкладкой с vc.

Ответить
0

Все приложения рано или поздно мигрируют в веб.

Все приложения рано или поздно разбиваются на микросервисы. Не вижу проблем держать крестовый микросервис с REST API, на который могут ходить другие демоны и бд.

Ответить
5

Если хотите быстрее начать зарабатывать хорошие деньги, лучше выбрать другие языки: Go, JavaScript, Python, Java. Выбирая плюсы, надо отчетливо осознавать, что во первых, сам язык не из простых с кучей нюансов и подводных камней, во вторых, ниши в которых он востребован или схлопывается или год от года отвоевывают другие языки. Курсы только познакомят вас с языком, но если вы хотите стать профессиональным С++ разработчиком придется приложить немало усилий и потратить годы практику. Я долгое время писал на плюсах, недавно сменил стек на Go и ни капли не жалею

Ответить
3

Ну вот на счет Go у меня лично есть большие сомнения - сейчас это выглядит так, будто Go словил хайп и на этой волне некоторые компании начали на него переходить. Однако это не означает, что он закрепится как Java, C# или даже PHP.

Ответить
1

а если начинать с нулевых знаний, то сколько времени надо потратить на изучение Go, javascript, phyton, java чтобы хорошо зарабатывать?

Ответить
3

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

Сейчас наиболее востребована Веб и Мобайл разработка. Можно выбирать на вкус фриланс, стартапы, галеры и продуктовые компаниями. Возьмем, например, бэкенд разработку: нужно знать основной фреймворк и стандартную библиотеку вашего языка, сетевой стек, как работают протоколы, понимать как операционная система работает с потоками, процессами, сокетами. Практически везде нужно знание SQL и NoSQL баз данных.

С нуля при должном усердии, наличии опытных наставников и постоянной практики до хорошего уровня мастерства и ЗП можно дорасти за 3-5 лет ИМХО

В случае с плюсами не очень понятно куда новичку после курсов(а не выпускнику вуза по специальности) податься. Десктопная разработка умирает, геймдев - своя специфика, потогонка и не всем по вкусу, системное программирование и embedded также спорно. Web = highload и магия низкоуровневых оптимизаций. Machine learning и анализ данных без фундаментального образования очень сомневаюсь.

Ответить
0

10 лет, хотя через лет 5 можете на джуна пробовать

Ответить
0

А ещё Котлин

Ответить
2

Очень спорное утверждение

Ответить
1

Котлин харош для тех кто давно ворочается в стеке жавы

Ответить
3

цпп хейтерам: интересно, на чем написаны компиляторы, интерпретаторы и vm вашего любимого ЯП, БД и т.д. и т.п.;)

Ответить
11

обычно на голых сях без плюсов

Ответить
4

на чем написаны компиляторы

Roslyn на шарпе написан.

БД

С без плюсов, java.

интерпретаторы

AOT-компилятор на шарпе, AFAIK. Рантайм на смеси плюсов, сей, и асма местами.

Ответить
2

А так же всякие дрова, железо различное...

Ответить
2

Компилятор go написан на go. Да и у многих языков программирования так же. У Python использутся plain C, потому что плюсы им нафиг не сдались.

Ответить
1

UPDATE: tl;dr я не прочитал, что написали ниже и написал примерно то же самое, этот коммент можно не читать

В основном же всё на C написано, не на плюсах :)

Например:
- Python (тот, который CPython)
- Postgres
- ядро Linux

Исключение: Qt и KDE - там да, плюсы

Ответить
1

- Java уже переписали на Java
- Новые БД пишут не на С++
- Как вам написали выше, остальные ЯП тоже уже давно сами на себе пишут

Вы товарищ от жизни отстали, засиделись за вашим легаси на крестах, а мир то меняется, в 21 век уже как 18 лет вошли. Оглядитесь, Java официально в нейтив компилится, интринсики внедряет и прочую низкоуровщену. Так и без работы можете остаться, хотя ковыряние в легаси на ваш век хватит.

Ответить
4

Это всё накипело в процессе работы. Я не выбирал, лол.

Ответить
3

Однако подумайте, что лучше для конечного пользователя: время разработки приложения или его медленная работа? Ответ очевиден.

Ложка хороша к обеду?

Ответить
4

Ваш выбор:Электрон. Вместе с ложкой ещё кусок дерьма:)))

Ответить
2

С каких пор электрон стал языком?
И в целом с каких пор он стал плохим? VScode на нем, прекрасно работает.

Ответить
6

Вскод это исключение. Есть слак, атом, фигма, и куча других тормознутых и жрущих память кусков говна

Ответить
1

Там оверхед дикий - апп тащит с собой целый хромиум. Где-то это оправдано, где-то нет.

Ответить