Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

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

Евгений Высочин Просветленный (37989), закрыт 4 года назад
Создатель Linux Линус Торвальдс:
C++ -ужасный язык. Еще более ужасным его делает тот факт, что его использует множество неквалифицированных программистов, причем там, где с его помощью проще всего создать полнейшее фуфло. Честно говоря, даже если язык C использовался бы только для того, чтобы держать в отдалении программистов на C++, это само по себе послужило бы достаточным оправданием использования этого языка. Другими словами, выбор языка C является единственным разумным выбором. Я пришел к выводу, что программист, который предпочел бы при написании какой-либо программы использовать язык C++, а не C, скорее всего, принадлежит к такому типу программистов, которых я бы предпочел выгнать вон, так, чтобы они не смогли прийти и испортить проект, которым я занимаюсь. C++ является причиной плохих проектных решений. Вы неизбежно начинаете использовать «изящные» возможности таких библиотек языка, как STL, Boost и другую подобную ерунду, которая может «помочь» вам программировать, однако добиваетесь этим только:
- бесконечного геморроя, когда они не работают (и каждый, кто скажет мне, что STL и, в особенности, Boost, стабильны и переносимы, просто несет полный бред, и это даже не смешно).
- создания неэффективных, оторванных от жизни программных моделей; в результате через пару лет вы замечаете, что некоторые абстракции не слишком эффективны, однако весь ваш код уже находится в зависимости от всех этих изящных объектных моделей, и вы не можете исправить его, не переписав при этом всё приложение.
Другими словами, единственный способ использовать хороший, эффективный, системный и переносимый C++ заключается в том, чтобы ограничить себя теми возможностями, которые в принципе доступны в языке C. Кроме того, использование языка C означает, что никто не испортит ваш проект, и вы сможете найти кучу программистов, которые действительно разбираются в низкоуровневых проблемах и не испортят все дело какой-нибудь идиотской объектно-моделируемой чепухой.
Лучший ответ
user49913 Просветленный (38733) 4 года назад
Потому что Линус Торвальдс занимается (или занимался, не уверен насчёт текущего уровня его активности) преимущественно разработкой ядра ОС, а там лишние абстракции действительно могут только мешать.
Евгений ВысочинПросветленный (37989) 4 года назад
Абстракций там много, но они написаны на Си
Степан ЕмельяновУченик (120) 2 недели назад
А где тогда могут пригодиться абстракции C++?
Остальные ответы
Молот Шотландцев Высший разум (301470) 4 года назад
Скандинав, значит у него загадочная душа викинга

Евгений ВысочинПросветленный (37989) 4 года назад
Что за фото? :)
steam_old_engine Просветленный (29529) 4 года назад
Мне тоже больше нравится С. В С++ добавили очень много модных вещей. Код становится более компактным, но его трудно читать.
Илья Булучев Гуру (3204) 4 года назад
Потому что Линус Торвальдс сам же и говорил что он уже старый и не способен принимать новые технологии.
C++ не любят только три типа людей: Быдло кодеры, Школьники, Старики.
Более того С++ хорош тем что очень легко отсеиваются некомпетентные в нём люди. особенно такие как автор вопроса. который является простым школьником которой обозлился на С++, на котором в свою очередь, написано большая часть нативного кода. Что косается OS то Linux написана на С совершенно из-за других причин про которые чуть позже расказывал Торвальдс: "как пишу код так и генерируется, для строгих и не сложных систем это лучший вариант, будь ядро чуть посложней и сам же язык С стал бы для нас ловушкой". С++ позволяет делать огромное количество вещей в сотни а то и в тысячю раз проще особенно когда дело касается алгоритмически сложных систем такие как ядерная физика, компьютерные игры, сложный софт, компиляция.
*Базон хигса считали на С++
*Ядерные реакторы работают на С++
*Весь космос работает на С++
*Все AAA игровые движки написаны на С++
*Браузеры работают на С++
*Абсолютно всё медицинское оборудование
*Все высоко нагруженые сетевые сервисы.
*Виртуальные машины
*Автопром/AI
*Драйвера видеокарт пишутся только на С++
*Поисковые движки
*CERN
*Офис
* компиляторы
*Мат-вычислители, и идругие невероятно сложные архитектурно системы написаны на С++.
*Недавно С++ получил всемирную награду за вклад в кинематограф
C остается главным языком там где что-то потенциально устарело либо было задумано так.
Степан ЕмельяновУченик (120) 2 недели назад
То есть нет смысла сначала учить C, а потом C++? Можно ли только на C++ разработать отличную ОС(ну может где-то ассамблер поиспользовать), без глюков, тормозов, вылетов и прочего? И почему тогда андроид не пишут на C++, раз этот язык такой высокопроизводительный?
Александр Баранов Мыслитель (7915) 4 года назад
Загляните к нему github.com/torvalds
Он не то что С++, он Qt полюбил, однако большинство репозиториев всё же на Си. Я читал что, когда он начинал делать Линукс ему было 20 лет, а С++ был сделан недавно. Может он просто не знал о нём, хотя врятли.
Мне лично нравится С++, но сам классы я практически не создаю (только для Qt) т. к. в стандартной библиотеки их уже достаточно много, а в неродных вообще неисчислимое количество. И я думаю у многих такое же отношение к нему
Ярослав Искусственный Интеллект (107883) 4 года назад
Потому что кресты крестьянам... а мы, бояре, пишемъ на человекочитаемых, красивых языках))
Батаев ДмитрийПросветленный (23031) 4 года назад
Боярам - Бейсик, а дальновидным бояром Вижл Бейсик
PC USER Просветленный (27576) 2 года назад
Звучит красиво. Но когда на производстве или для производства создано ПО на с++ и переписать его ради вышеозначенного текста не представляется возможным то либо программист начинает работать на с++ либо он там не нужен. У меня был работник который пришел с такими идеями все переписать. Не задержался. Просто никто не хотел и не мог оплачивать его идеи. Это привело бы к остановке производственного продукта. И в дальнем если бы продукт был все таки переписан, то ещё нужно было время, которого как всегда нет на производстве, на тестирование и доводку до ума нового кода и самого продукта.
Такие идеи хороши с нуля, когда действительно есть задача создать новое и тут каждый готов делать это так как сочтет нужным. Победит лучший и быстрый и небагованный, а так же с лучшей функцией дебага.
Похожие вопросы