С++ - ужасен, его выбор для проекта - плохое решение
От: Michael7 Россия  
Дата: 06.09.07 19:17
Оценка: 23 (4) :))
Так говорит Линус Торвальдс, основатель ядра операционной системы Gnu/Linux.

здесь

Мне кажется, учитывая его заслуги, что это достаточно интересное мнение.
Re: С++ - ужасен, его выбор для проекта - плохое решение
От: Cyberax Марс  
Дата: 06.09.07 19:38
Оценка: +7
Michael7 wrote:
> Так говорит Линус Торвальдс, основатель ядра операционной системы Gnu/Linux.
> здесь
> <http://thread.gmane.org/gmane.comp.version-control.git/57643/focus=57918&gt;
> Мне кажется, учитывая его заслуги, что это достаточно интересное мнение.
> С++ — ужасен, его выбор для проекта — плохое решение
Он в своё время обжегся на ранних версиях С++. И похоже с тех пор
нормально его не использовал.

Его возражения, по большей части "full of bullshit". Их всего два, в
общем-то:

- infinite amounts of pain when they don't work (and anybody who tells me
that STL and especially Boost are stable and portable is just so full
of BS that it's not even funny)

Да, как будто с С-шными библиотеками проще, когда они глючат.
Естественно, использовать Boost.Lambda лучше не надо.

- inefficient abstracted programming models where two years down the road
you notice that some abstraction wasn't very efficient, but now all
your code depends on all the nice object models around it, and you
cannot fix it without rewriting your app.

Угу, с чистым С, конечно, такого никогда не случается. Сколько там раз в
ядре USB-стек переписывали?
Posted via RSDN NNTP Server 2.1 beta
Sapienti sat!
Re: С++ - ужасен, его выбор для проекта - плохое решение
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 06.09.07 19:47
Оценка: +2
Здравствуйте, Michael7, Вы писали:

M>Так говорит Линус Торвальдс, основатель ядра операционной системы Gnu/Linux.


M>здесь


M>Мне кажется, учитывая его заслуги, что это достаточно интересное мнение.


Для ядра — вполне.
The God is real, unless declared integer.
Re[2]: С++ - ужасен, его выбор для проекта - плохое решение
От: Cyberax Марс  
Дата: 06.09.07 19:51
Оценка:
Здравствуйте, netch80, Вы писали:

M>>Так говорит Линус Торвальдс, основатель ядра операционной системы Gnu/Linux.

M>>здесь
M>>Мне кажется, учитывая его заслуги, что это достаточно интересное мнение.
N>Для ядра — вполне.
Тем не менее, существуют вполне себе неплохие ядра на С++. Например: http://l4ka.org/projects/pistachio/

Про крупные проекты типа KDE тоже не забываем — они вполне себе нормально живут.

Так что я категорически несогласен с Линусом. На чистом С все точно так же плохо можно сделать.
Sapienti sat!
Re[2]: С++ - ужасен, его выбор для проекта - плохое решение
От: Michael7 Россия  
Дата: 06.09.07 19:58
Оценка:
Здравствуйте, netch80, Вы писали:

N>Для ядра — вполне.


По ссылке речь шла вовсе не о ядре, а о git — многопользовательской, распределённой системе контроля версий, которая сейчас используется вместо BitKeeper для разработки ядра линукс. Она была написана пару лет назад Линусом и другими.
Re: С++ - ужасен, его выбор для проекта - плохое решение
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 06.09.07 20:00
Оценка:
Здравствуйте, Michael7, Вы писали:

M>Так говорит Линус Торвальдс, основатель ядра операционной системы Gnu/Linux.


M>здесь


M>Мне кажется, учитывая его заслуги, что это достаточно интересное мнение.


Насколько я понял из чтения "по-диагонали" — он вообще против объектно-ориентированного подхода

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[3]: С++ - ужасен, его выбор для проекта - плохое решение
От: Michael7 Россия  
Дата: 06.09.07 20:01
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Про крупные проекты типа KDE тоже не забываем — они вполне себе нормально живут.


Согласен.

C>Так что я категорически несогласен с Линусом. На чистом С все точно так же плохо можно сделать.


Для крупных проектов Си всё же неудобен, хотя при чётко поставленной организации работы, на нём
можно делать очень большие проекты в сотни тысяч и миллионы строк кода. Например, собственно linux, Gnome, X11R6 и другие.
Re[3]: С++ - ужасен, его выбор для проекта - плохое решение
От: Michael7 Россия  
Дата: 06.09.07 20:07
Оценка: +1
Здравствуйте, Cyberax, Вы писали:

C>Тем не менее, существуют вполне себе неплохие ядра на С++. Например: http://l4ka.org/projects/pistachio/


У C++ есть очень крупный недостаток по сравнению с Си в том, что код C++ библиотек в виде торчащих наружу ООП-интерфейсов не совместим между разными компиляторами. Для совместимости приходится обёртывать в функции.
Re: С++ - ужасен, его выбор для проекта - плохое решение
От: 0xDEADBEEF Ниоткуда  
Дата: 06.09.07 20:31
Оценка: 25 (6) +2 :)
Здравствуйте, Michael7, Вы писали:

M>Мне кажется, учитывая его заслуги, что это достаточно интересное мнение.

Это мнение типичного "сишника". Слышал не раз и не от одного человека.
Не поручусь, что оно неправильное. Категоричное — да, но в нем есть рациональное зерно.
Хотя бы то, что C++, в отличие от C, имеет "скрытые" пути исполнения — конструкторы/деструкторы, исключения и виртуальные вызовы. С точки зрения "правоверного сишника" — ересь несусветная.

С точки зрения "плюсовика" — палка о двух концах, т.к. с одной стороны удобно, с другой — при кривом дизайне, очень больно вылазит боком, причем в неожиданных местах. А если еще это дело зарефакторить не получается, то вообще гасите свет — начинается писание "антибагов", что есть постоянный источник дичайших регрешенов forever and ever.

ЗЫ. Не далее как сегодня, один из местных C++ "программистов" громко возмущался по поводу, что std::map не имеет доступа к элементам по... ИНДЕКСУ! Его, видите ли, BidirectionalIterator устраивает... Я даже не нашел что сказать, но очень хотелось дать пинка...
__________
16.There is no cause so right that one cannot find a fool following it.
Re[3]: С++ - ужасен, его выбор для проекта - плохое решение
От: c-smile Канада http://terrainformatica.com
Дата: 06.09.07 20:34
Оценка: +1
Здравствуйте, Cyberax, Вы писали:

C>Про крупные проекты типа KDE тоже не забываем — они вполне себе нормально живут.


Строго говоря KDE написан на нечто что можно назвать "Objective C++" ибо оно требует
специального препроцессора. Dances around slot/signal как мне помнится.
Да и потом... Чего-то Gnome прозводит более целостное впечталение что-ли. По многим параметрам.

C>Так что я категорически несогласен с Линусом. На чистом С все точно так же плохо можно сделать.


Плохо можно сделать на всем что угодно. C более формален или предсказуем что-ли.
В С++ к сожалению каждый compiler это свой C++ flavor. Куча нюансов которые на больших codebase могут просто убить
идею переносимости на корню.
Re: С++ - ужасен, его выбор для проекта - плохое решение
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 06.09.07 20:45
Оценка: 32 (4) +1 :))) :))) :)
Здравствуйте, Michael7, Вы писали:

M>Так говорит Линус Торвальдс, основатель ядра операционной системы Gnu/Linux.


M>здесь


M>Мне кажется, учитывая его заслуги, что это достаточно интересное мнение.


There are only two kinds of languages: the ones people complain about and the ones nobody uses

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


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re: С++ - ужасен, его выбор для проекта - плохое решение
От: -MyXa- Россия  
Дата: 06.09.07 20:48
Оценка:
Здравствуйте, Michael7, Вы писали:

[]

А Бьёрн слушает да ест.
Если не поможет, будем действовать током... 600 Вольт (C)
Re[2]: С++ - ужасен, его выбор для проекта - плохое решение
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 06.09.07 20:49
Оценка: +1
M>>Так говорит Линус Торвальдс, основатель ядра операционной системы Gnu/Linux.

M>>здесь


M>>Мне кажется, учитывая его заслуги, что это достаточно интересное мнение.


E>There are only two kinds of languages: the ones people complain about and the ones nobody uses


E>Б.Страуструп, создатель языка C++. Учитывая его заслуги, это достаточно интересное мнение.


Кстати, интересно сравнить еще пару цитат:

Торвальдс:

In other words, the only way to do good, efficient, and system-level and
portable C++ ends up to limit yourself to all the things that are
basically available in C.


Страуструп:

I never saw a project for which C was better than C++ for any reason but the lack of a good C++ compiler.


По-моему, они говорят об одном и том же, только у Торвальса представления о C++ компиляторах 10-ти летней давности.


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[2]: С++ - ужасен, его выбор для проекта - плохое решение
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 06.09.07 21:04
Оценка:
Здравствуйте, eao197, Вы писали:

E>Здравствуйте, Michael7, Вы писали:


M>>Так говорит Линус Торвальдс, основатель ядра операционной системы Gnu/Linux.


M>>здесь


M>>Мне кажется, учитывая его заслуги, что это достаточно интересное мнение.


E>There are only two kinds of languages: the ones people complain about and the ones nobody uses


E>Б.Страуструп, создатель языка C++. Учитывая его заслуги, это достаточно интересное мнение.


Не, неинтересное. Страуструп — лицо заинтересованное

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re[2]: С++ - ужасен, его выбор для проекта - плохое решение
От: kochetkov.vladimir Россия https://kochetkov.github.io
Дата: 06.09.07 21:09
Оценка:
Здравствуйте, eao197, Вы писали:

E>There are only two kinds of languages: the ones people complain about and the ones nobody uses


E>Б.Страуструп, создатель языка C++. Учитывая его заслуги, это достаточно интересное мнение.


А то, что он пишет про С#: "С# не видел, но осуждаю, т.к. его придумали в MS". После этой фразы, воспринимать что-либо объективно оттуда...

[Интервью] .NET Security — это просто
Автор: kochetkov.vladimir
Дата: 07.11.17
Re: С++ - ужасен, его выбор для проекта - плохое решение
От: -aka- Россия http://wtware.ru
Дата: 06.09.07 21:10
Оценка:
Здравствуйте, Michael7, Вы писали:

M>Так говорит Линус Торвальдс, основатель ядра операционной системы Gnu/Linux.

M>здесь
M>Мне кажется, учитывая его заслуги, что это достаточно интересное мнение.

- infinite amounts of pain when they don't work (and anybody who tells me
that STL and especially Boost are stable and portable is just so full
of BS that it's not even funny)


C'шные конструкции (и особенно МАКРОСЫ!) можно руками расписать руками вплоть до элементарных операций, в случае сильного ступора сопоставить с генерируемым ассемблером. Удачи фанатам плюсов читать ассемблер операций с std::map в листингах, без дебагера

Наверное, об ответственности стоит говорить. Линус хочет всегда иметь возможность найти и исправить ошибку. А рядовые писатели на С++ не виноваты, что std::map работает не так как они ожидали, и это не их проблемы — они следуют своему пониманию данной им спецификации.

Я. правда, плохо понимаю, с какой радости у git "efficiency was a primary objective". Хранилище кода каких много... Вот если убрать из его текста обощения о любых проектах и говорить только о ядре и проектам подобным ядру (цена разработки не имеет значения, нужен эффективный код, крайне важна легкость вхождения и прозрачность любого уровня абстракции до уровня ассемблера), тогда я с ним согласен.
... << RSDN@Home 1.2.0 alpha rev. 720>>
Re[2]: С++ - ужасен, его выбор для проекта - плохое решение
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 06.09.07 21:24
Оценка: 2 (1)
Здравствуйте, -aka-, Вы писали:

A>Я. правда, плохо понимаю, с какой радости у git "efficiency was a primary objective". Хранилище кода каких много... Вот если убрать из его текста обощения о любых проектах и говорить только о ядре и проектам подобным ядру (цена разработки не имеет значения, нужен эффективный код, крайне важна легкость вхождения и прозрачность любого уровня абстракции до уровня ассемблера), тогда я с ним согласен.


git — таки версионное хранилище вообще, не только кода. Даже наоборот — код не основное применение. Мне попадались варианты как на нём строили универсальный бэкап — вот например:

http://mithraen.livejournal.com/61142.html

С другой стороны, именно чрезмерная ориентация на "всё что угодно" и распределённость — то, что мне в нём сильно не нравится.
The God is real, unless declared integer.
Re[4]: С++ - ужасен, его выбор для проекта - плохое решение
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 06.09.07 21:33
Оценка: -1
Здравствуйте, c-smile, Вы писали:

CS>Строго говоря KDE написан на нечто что можно назвать "Objective C++" ибо оно требует

CS>специального препроцессора. Dances around slot/signal как мне помнится.
CS>Да и потом... Чего-то Gnome прозводит более целостное впечталение что-ли. По многим параметрам.

За внутренности Glib, за код mc, за основы gtk я бы увольнял без выходного пособия.
Более кошмарный дизайн трудно себе придумать. Его можно назвать "C++ для нищих притом через зад".

CS>Плохо можно сделать на всем что угодно. C более формален или предсказуем что-ли.

CS>В С++ к сожалению каждый compiler это свой C++ flavor. Куча нюансов которые на больших codebase могут просто убить
CS>идею переносимости на корню.

Qt почему-то под винду идёт без переделок диалекта.:)
The God is real, unless declared integer.
Re: С++ - ужасен, его выбор для проекта - плохое решение
От: Шахтер Интернет  
Дата: 06.09.07 23:59
Оценка: +6
Здравствуйте, Michael7, Вы писали:

M>Так говорит Линус Торвальдс, основатель ядра операционной системы Gnu/Linux.


M>здесь


M>Мне кажется, учитывая его заслуги, что это достаточно интересное мнение.


Товарищу Торвальдсу надо быть чуток поскромнее.
В XXI век с CCore.
Копай Нео, копай -- летать научишься. © Matrix. Парадоксы
Re[2]: С++ - ужасен, его выбор для проекта - плохое решение
От: Шахтер Интернет  
Дата: 07.09.07 00:02
Оценка: 1 (1) +2 :)
Здравствуйте, Cyberax, Вы писали:

C>Угу, с чистым С, конечно, такого никогда не случается. Сколько там раз в

C>ядре USB-стек переписывали?

И как был он гавном, так и остался.
Ну кстати говоря, ядро Линукса -- замечательный пример, что C must die. Если его на С++ переделать, то код сожмется в несколько раз.
В XXI век с CCore.
Копай Нео, копай -- летать научишься. © Matrix. Парадоксы
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.