LINUX.ORG.RU

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

slovazap ★★★★★
()

Очевидно же, что разработчики не осилили плюсы.

four_str_sam
()
Ответ на: комментарий от slovazap

Получится C с классами

До C++14 почти так и было, но с выходом GCC 5.0 новый стандарт добавит много интересностей, улучшающих читаемость кода, и позволяющих многое делать в compile-time. Вот только как это на скорости конпеляции скажется?

one_more_hokum ★★★
()

И вообще, кто тебе сказал, что железячные библиотеки не пишут на плюсах?

Я как-то долго писал сишный интерфейс к плюсовой говнобилиотечке для работы с ПЗСкой (переписывать все на сях не было ни сил, ни желания: там несколько десятков тысяч строк кода было!).

Eddy_Em ☆☆☆☆☆
()

Вот Curiosity полностью загружен Си-программами. Разработчики обосновали, мол, отладка проще.

xoomer
()
Ответ на: комментарий от Eddy_Em

Эм, ты опять нажрался спиртику?

// плюсы несколько менее предсказуемые, как правило, и больше вероятность столкнуться с нежелаемым поведением. ИМХО, это является одной из причин.

wakuwaku ★★★★
()
Последнее исправление: wakuwaku (всего исправлений: 1)

У С++ есть дополнительный код, а сишка близка к ассемблеру. Ну и еще потому что так повелось.

hibou ★★★★★
()
Ответ на: комментарий от mbivanyuk

Весь толстый std:: это часть стандартной библиотеки, которая постоянно используется в С++. Это и есть толстый рантайм, который нужно таскать с собой. Если не таскать, то это уже какое-то подмножество С++.

g0t0
()
Ответ на: комментарий от anonymous

В 1992 году?

In fact, in Linux we did try C++ once already, back in 1992.

It sucks. Trust me - writing kernel code in C++ is a BLOODY STUPID IDEA.

The fact is, C++ compilers are not trustworthy. They were even worse in 1992, but some fundamental facts haven't changed:

the whole C++ exception handling thing is fundamentally broken. It's _especially_ broken for kernels.

any compiler or language that likes to hide things like memory allocations behind your back just isn't a good choice for a kernel.

you can write object-oriented code (useful for filesystems etc) in C, _without_ the crap that is C++.

In general, I'd say that anybody who designs his kernel modules for C++ is either

(a) looking for problems

(b) a C++ bigot that can't see what he is writing is really just C anyway

(c) was given an assignment in CS class to do so.

Feel free to make up (d).

anonymous
()
Ответ на: комментарий от g0t0

Если не таскать, то это уже какое-то подмножество С++.

Ну так и ядра пишут на подмножестве С, так как стандартная либа не используется.

anonymous
()

Потому что грамотных программистов мало. Особенно среди системщиков.

cord
()
Ответ на: комментарий от g0t0

Если не таскать, то это уже какое-то подмножество С++

Ну и если не таскать, что чем «подмножество» С++ будет отличаться от «подмножества» Си по жирности?

mbivanyuk ★★★★★
()
Ответ на: комментарий от mbivanyuk

Ну и если не таскать, что чем «подмножество» С++ будет отличаться от «подмножества» Си по жирности?

По жирности - почти ничем. По фичам - тоже почти ничем.

ИМХО единственное, чем такой «C++ без рантайма» будет значительно отличаться от C - это поддержкой шаблонов. Но в C их и так уже привыкли заменять макросами разной степени упоротости.

Deleted
()
Последнее исправление: Deleted (всего исправлений: 1)
Ответ на: комментарий от Eddy_Em

ООПщина нужна лишь в гуйне.

Конечно, ООП не место в ядре. Я вот уже давно выкинул ядро линукса, оно же дерьмовое, потому что там ООП. А ты?

gentoo_root ★★★★★
()
Ответ на: комментарий от Deleted

Ну в смысле нормальное ООП как это реализовано в С++. То что ООП можно реализовать и через жопу в чистом Си я понимаю.

mbivanyuk ★★★★★
()
Ответ на: комментарий от slovazap

От системщины требуется явность, а C++ как-бы про наоборот.

Да, язык для системного программирования должен быть предсказуемым. Но Си не менее непредсказуемый, если вспомнить про strict aliasing, например. Недаром линукс собирается с -fno-strict-aliasing. Так что стандартный Си тоже не подходит для системщины.

gentoo_root ★★★★★
()
Ответ на: комментарий от DeadEye

Ты на хурде или на чем?

Это был сарказм к сообщению о ненужности ООП.

gentoo_root ★★★★★
()
Ответ на: комментарий от mbivanyuk

Ну в смысле нормальное ООП как это реализовано в С++. То что ООП можно реализовать и через жопу в чистом Си я понимаю.

То есть если я напишу компилятор C++ -> C (вместо стандартного C -> asm), то он сможет неким волшебным образом переделывать «нормальное» ООП в «ненормальное»? Круто, чо.

Deleted
()

Потому что Линус не любит плюсы.

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

Dark_SavanT ★★★★★
()

C++ is a horrible language. It's made more horrible by the fact that a lot of substandard programmers use it, to the point where it's much much easier to generate total and utter crap with it. Quite frankly, even if the choice of C were to do *nothing* but keep the C++ programmers out, that in itself would be a huge reason to use C.

(c) Linus Torvalds



вот почему

unt1tled ★★★★
()
Ответ на: комментарий от mbivanyuk

А кто ты такой чтобы судить через жопу оно реализовано или нет? В плюсах такой же рантайм, даже жирнее.

hibou ★★★★★
()
Ответ на: комментарий от hibou

А что, мне чтобы высказать мнение нужно получить от тебя разрешение? Ты сам то кто такой? Насчёт "через жопу" - это зачёркнуто было в моей фразе, типа шутка. Хотя доля истины может и есть.

mbivanyuk ★★★★★
()
Последнее исправление: mbivanyuk (всего исправлений: 2)
Ответ на: комментарий от Deleted

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

ckotinko ☆☆☆
()
Последнее исправление: ckotinko (всего исправлений: 1)
Ответ на: комментарий от mbivanyuk

Ну в смысле нормальное ООП как это реализовано в С++.

Я слышу овации, переходящие в истерику у публики.

hateyoufeel ★★★★★
()
Ответ на: комментарий от Deleted

ИМХО единственное, чем такой «C++ без рантайма» будет значительно отличаться от C - это поддержкой шаблонов. Но в C их и так уже привыкли заменять макросами разной степени упоротости.

Одних шаблонов уже хватает для обоснования зачем стоит использовать C++ вместо C. Но это было лет 10 назад. Сейчас добавили constexpr, лямбды, литералы, вменяемые инициализаторы, static_assert, move-семантику, variadic templates, ещё большая строгость приведений типов. Если всё-таки использовать стандартную библиотеку, то она обогатилась атомарными операциями и потоками, type_traits, алгоритмами, chrono. Причём большинство в заголовочниках и не требует рантайма.

Dendy ★★★★★
()
Ответ на: комментарий от qulinxao

мнение (сожаление) Кена Томпсона и Пайка о Линуксе тебе ведь известно?

Мне неизвестно, можно ссылку? Интересно было бы узнать.

knovich
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.