На заметку О том почему Линус Торвальдс обосрал С++


X-Shar

:)
Администрация
Регистрация
03.06.2012
Сообщения
6 085
Репутация
8 208
Линус Торвальдс признается, что ненавидит C++, а программистов на этом языке он оскорбляет. Разбираемся, в чем заключается причина ненависти.

В 2007 году пользователь Дмитрий Какурин написал письмо Линусу Торвальдсу, в котором спросил программиста, почему тот использует чистый Си вместо того, чтобы написать все на C++. Само использование чистого Си Дмитрий Какурин назвал емким словом bullshit.

В ответ Линус Торвальдс поделился своим мнением: bullshit — это сам Какурин, C++ — это ужасный язык, на котором кодеры генерируют, мягко говоря, «нечистоты», а программистов C++ вовсе не стоит допускать до Linux.

1710259439078.png


После откровенных оскорблений Торвальдс перешел к аргументам.Dmeh-Smeh-Smeh!!!

Позиция Линуса Торвальдса относительно C++​

В первую очередь, Линус говорит, что использование C++ неизменно приводит программиста к плохим решениям вроде использования библиотек STL или Boost, которые считаются прекрасными.

Однако на деле, по мнению Линуса, они постоянно ломаются, отладка кода становится испытанием, а сам код нестабильный и не портируемый.

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

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

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

Линус признался, что в 1992 году они уже пытались использовать C++ для написания Linux. С тех пор, по его мнению, мало что изменилось.

1710259540504.png


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

Еще C++ скрывает потребление ресурсов, поэтому использовать его для написания ОС Линус считает невероятно глупой затеей. Зато объектно-ориентированный код можно написать на С без всяких проблем.

Позиция защиты C++​

Линус думает, что ненавидит C++. Но, судя по его комментариям, он вообще не знает C++, а то, что он знает, давно устарело.

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

1710259617579.png


C++ был первым популярным объектно-ориентированным языком, а его ранние версии C++ были написаны на Smalltalk со странным синтаксисом. Поэтому ранний C++ работал плохо, и особенно плохо он работал в ядре Linux.

Похоже, что Линус сделал поспешные выводы, основанные на минимальном анализе. Когда он увидел, что C++ работает не так, как он ожидал, он просто отмахнулся от него, вместо того, чтобы изучить. К примеру, в C NULL может быть типобезопасным, а в C++ для этого нужно использовать nullptr, а не NULL.

С тем же успехом Линус Торвальдс мог бы заявить, что ненавидит язык суахили, потому что он его не знает.

Заключение​

В целом, Линус Торвальдс прав, и для ядра Linux действительно лучше подойдет низкоуровневый язык Си, а не C++. Но в остальном вся его ненависть сводится к тому, что он попробовал использовать C++ практически на старте языка, и тот ему не понравился.

Кроме того, стоит помнить, что Линус говорит о C++ в контексте использования языка для написания ядра операционной системы. Этой же позиции придерживаются и другие авторы ОС. Ядра Windows, Linux, iOS, MacOS, FreeBSD написаны на языке Си.

А что о C++ думаете вы? Справедливы ли нападки Торвальдса?
 

yum

Пользователь
Форумчанин
Регистрация
30.11.2023
Сообщения
47
Репутация
5
Нападки Линуса нет, слишком резко он отозвался. С++ лучший язык, который я видел
 

HMCoba

Активный пользователь
Активный
Регистрация
22.04.2023
Сообщения
157
Репутация
111
Линус Торвальдс признается, что ненавидит C++, а программистов на этом языке он оскорбляет. Разбираемся, в чем заключается причина ненависти.
C++ очень гибкий и хороший язык, но довольно сложный...
Если и есть одна критика в сторону C++, то это его неправильное понимание, (сложность его понимаия) так как
на нём можно очень легко попасть в ловушки, поскольку многие вещи просто скрыты от разработчика ...
Например, компилятор создает по умолчанию конструктор копирования, и если он не был явно создан, то это приведёт
к побайтовому копированию указателей, и это приведёт к краху программы!
Вобщем, что бы написать хороший и качественный продукт на C++ нужно обладать хорошей квалификацией,
и опытом за плечами, иначе готовьтесь к сюрпризам!
 
Последнее редактирование:
Верх Низ