C/C++

Почему создатель Linux Линус Торвальдс называет C++ ужасным языком, а ядро ОС Linux пишется только на Си?

Создатель Linux Линус Торвальдс:
C++ -ужасный язык. Еще более ужасным его делает тот факт, что его использует множество неквалифицированных программистов, причем там, где с его помощью проще всего создать полнейшее фуфло. Честно говоря, даже если язык C использовался бы только для того, чтобы держать в отдалении программистов на C++, это само по себе послужило бы достаточным оправданием использования этого языка. Другими словами, выбор языка C является единственным разумным выбором. Я пришел к выводу, что программист, который предпочел бы при написании какой-либо программы использовать язык C++, а не C, скорее всего, принадлежит к такому типу программистов, которых я бы предпочел выгнать вон, так, чтобы они не смогли прийти и испортить проект, которым я занимаюсь. C++ является причиной плохих проектных решений. Вы неизбежно начинаете использовать «изящные» возможности таких библиотек языка, как STL, Boost и другую подобную ерунду, которая может «помочь» вам программировать, однако добиваетесь этим только:
- бесконечного геморроя, когда они не работают (и каждый, кто скажет мне, что STL и, в особенности, Boost, стабильны и переносимы, просто несет полный бред, и это даже не смешно).
- создания неэффективных, оторванных от жизни программных моделей; в результате через пару лет вы замечаете, что некоторые абстракции не слишком эффективны, однако весь ваш код уже находится в зависимости от всех этих изящных объектных моделей, и вы не можете исправить его, не переписав при этом всё приложение.
Другими словами, единственный способ использовать хороший, эффективный, системный и переносимый C++ заключается в том, чтобы ограничить себя теми возможностями, которые в принципе доступны в языке C. Кроме того, использование языка C означает, что никто не испортит ваш проект, и вы сможете найти кучу программистов, которые действительно разбираются в низкоуровневых проблемах и не испортят все дело какой-нибудь идиотской объектно-моделируемой чепухой.
Павел Васильев
Павел Васильев
37 945
Потому что Линус Торвальдс занимается (или занимался, не уверен насчёт текущего уровня его активности) преимущественно разработкой ядра ОС, а там лишние абстракции действительно могут только мешать.
Алексей Черевко
Алексей Черевко
36 956
Лучший ответ
Павел Васильев Абстракций там много, но они написаны на Си
Скандинав, значит у него загадочная душа викинга

Павел Васильев Что за фото? :)
Потому что кресты крестьянам... а мы, бояре, пишемъ на человекочитаемых, красивых языках))
LV
La Vie Est Belle
67 198
Алексей Левкоев Боярам - Бейсик, а дальновидным бояром Вижл Бейсик
Мне тоже больше нравится С. В С++ добавили очень много модных вещей. Код становится более компактным, но его трудно читать.
Коля Абдуллаев
Коля Абдуллаев
23 766
Звучит красиво. Но когда на производстве или для производства создано ПО на с++ и переписать его ради вышеозначенного текста не представляется возможным то либо программист начинает работать на с++ либо он там не нужен. У меня был работник который пришел с такими идеями все переписать. Не задержался. Просто никто не хотел и не мог оплачивать его идеи. Это привело бы к остановке производственного продукта. И в дальнем если бы продукт был все таки переписан, то ещё нужно было время, которого как всегда нет на производстве, на тестирование и доводку до ума нового кода и самого продукта.
Такие идеи хороши с нуля, когда действительно есть задача создать новое и тут каждый готов делать это так как сочтет нужным. Победит лучший и быстрый и небагованный, а так же с лучшей функцией дебага.
Загляните к нему github.com/torvalds
Он не то что С++, он Qt полюбил, однако большинство репозиториев всё же на Си. Я читал что, когда он начинал делать Линукс ему было 20 лет, а С++ был сделан недавно. Может он просто не знал о нём, хотя врятли.
Мне лично нравится С++, но сам классы я практически не создаю (только для Qt) т. к. в стандартной библиотеки их уже достаточно много, а в неродных вообще неисчислимое количество. И я думаю у многих такое же отношение к нему
Потому что Линус Торвальдс сам же и говорил что он уже старый и не способен принимать новые технологии.
C++ не любят только три типа людей: Быдло кодеры, Школьники, Старики.
Более того С++ хорош тем что очень легко отсеиваются некомпетентные в нём люди. особенно такие как автор вопроса. который является простым школьником которой обозлился на С++, на котором в свою очередь, написано большая часть нативного кода. Что косается OS то Linux написана на С совершенно из-за других причин про которые чуть позже расказывал Торвальдс: "как пишу код так и генерируется, для строгих и не сложных систем это лучший вариант, будь ядро чуть посложней и сам же язык С стал бы для нас ловушкой". С++ позволяет делать огромное количество вещей в сотни а то и в тысячю раз проще особенно когда дело касается алгоритмически сложных систем такие как ядерная физика, компьютерные игры, сложный софт, компиляция.
*Базон хигса считали на С++
*Ядерные реакторы работают на С++
*Весь космос работает на С++
*Все AAA игровые движки написаны на С++
*Браузеры работают на С++
*Абсолютно всё медицинское оборудование
*Все высоко нагруженые сетевые сервисы.
*Виртуальные машины
*Автопром/AI
*Драйвера видеокарт пишутся только на С++
*Поисковые движки
*CERN
*Офис
* компиляторы
*Мат-вычислители, и идругие невероятно сложные архитектурно системы написаны на С++.
*Недавно С++ получил всемирную награду за вклад в кинематограф
C остается главным языком там где что-то потенциально устарело либо было задумано так.