CLASHA - Объектно-ориентированное программирование на Си

Использование и разработка софта (преимущественно на ПЦ)

Moderator: Shaos

User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Хотя времени полно прошло. А Линус - фигура крупная - перевели ужо...

Линус Торвальс против С++
http://cplusplus.dshevchenko.biz/critiq ... lds_vs_cpp
Линус Торвальдс wrote:C++ - ужасный язык. Еще более ужасным его делает тот факт, что его использует множество неквалифицированных программистов, причем там, где с его помощью проще всего создать полнейшее фуфло. Честно говоря, даже если язык C использовался бы только для того, чтобы держать в отдалении программистов на C++, это само по себе послужило бы достаточным оправданием использования этого языка.Другими словами, выбор языка C является единственным разумным выбором. Я пришел к выводу, что программист, который предпочел бы при написании какой-либо программы использовать язык C++, а не C, скорее всего, принадлежит к такому типу программистов, которых я бы предпочел выгнать вон, так, чтобы они не смогли прийти и испортить проект, которым я занимаюсь. C++ является причиной плохих проектных решений. Вы неизбежно начинаете использовать «изящные» возможности таких библиотек языка, как STL, Boost и другую подобную ерунду, которая может «помочь» вам программировать, однако добиваетесь этим только:
- бесконечного геморроя, когда они не работают (и каждый, кто скажет мне, что STL и, в особенности, Boost, стабильны и переносимы, просто несет полный бред, и это даже не смешно).
- создания неэффективных, оторванных от жизни программных моделей; в результате через пару лет вы замечаете, что некоторые абстракции не слишком эффективны, однако весь ваш код уже находится в зависимости от всех этих изящных объектных моделей, и вы не можете исправить его, не переписав при этом всё приложение.
Другими словами, единственный способ использовать хороший, эффективный, системный и переносимый C++ заключается в том, чтобы ограничить себя теми возможностями, которые в принципе доступны в языке C. Кроме того, использование языка C означает, что никто не испортит ваш проект, и вы сможете найти кучу программистов, которые действительно разбираются в низкоуровневых проблемах и не испортят все дело какой-нибудь идиотской объектно-моделируемой чепухой.
bar
Senior
Posts: 185
Joined: 07 Aug 2006 10:18

Post by bar »

Lavr wrote:А всёж интересно было бы ссылочку глянуть. Читал я, что Linus Torvalds
высказался в том плане, что человек он обеспеченный и ему на многое плевать...
А тут...
Да там смешная история была: в список рассылки git (система управления версиями) пришёл C++ программист и удивлённо начал вопрошать что-то типа "Вы пишите на C? Это же устаревший ужасный язык! Там нет наследования, шаблонов, перегрузки операторов. Вы используете макросы -- это же небезопасно Почему вы не пишете на C++? В нём так удобно работать со строками! А ну-ка переписывайте git на C++, или Страуструп обидится." Ну и так далее, в общем он нёс бред обычный среди C++-программистов. Ему предложили идти мимо, но он не понял, продолжал замусоривать список рассылки своими сообщениями. Тогда пришёл Торвальдс и написал что C++ это бычачье дерьмо. В списке рассылки после этого холивар достаточно быстро прекратился, но потом полгода C++-программисты по всему интернету писали в своих блогах записи типа "почему C сосёт у C++".
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

bar wrote:но потом полгода C++-программисты по всему интернету писали в своих блогах записи типа "почему C сосёт у C++".
Я как-то старался не влезать в холивары и мне даже казалось, что все
повзрослели и всё кончилось... Но НЕЕЕЕТ!!!! Чисто для приколу ткнул
Гугл... всё НЕ кончилось... всё продолжается бесконечно... :cry:
Логикой убивает так, что даж смеяцца не хочется: :o
С - да простят мне эту вольность - надассемблерный язык. Т.е. фактически картина такая: ассемблер - джидайский световой меч (чуток нето задел - и пис*ец), С - самурайский меч(в принципе можно рискнуть помахать - но без должной подготовки, готовся принять иудаизм), VB - бейсбольная бита. Очень по американски. Мощно , красиво, быстро, эффективно - но ! реально сосет против самурайского меча, не говоря уже о джидайском!
http://xakepy.cc/showthread.php?t=37335&pagenumber=
User avatar
Shaos
Admin
Posts: 24088
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Всё правильно Линус пишет
Вон в америке уже в некоторых университетах стали убрать ООП как обязательный предмет - ибо не учит параллельному программированию и т д
Вообще людей, которые с разу на C++ подсаживаются в качестве своего первого языка, к серъёзному программированию подпускать нельзя - у них башка снесена полностью...
P.S. По последнему линку несколько не то - там VB "воюет" с C/C++ (большинство людей до сих пор думают, что C и C++ это один и тот же язык)
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Shaos wrote:P.S. По последнему линку несколько не то - там VB "воюет" с C/C++
Да ктоб с кем ни воевал - логика на уровне приведённой цитаты...
Уважая посетителей форума и коллег, я не стал цытировать борцов
С - С++... Они... скажем так... более суровы в высказываниях. :lol:

Но если лично у меня есть кусок кода на С++ (или на чем другом),
который решает нужную мне проблему - то я его использую, не глядя
на мнения.
User avatar
HardWareMan
Banned
Posts: 2139
Joined: 20 Mar 2005 13:41
Location: От туда

Post by HardWareMan »

Лично я не признаю никакие языки кроме нативного АСма под конкретную платформу и Васика для сложных вычислений и формул. В остальное время под х86 пишу на паскале, так как мне не трудно набирать токены полностью, а не тыцкать по одной клавише в погоне за ленью. И да, ЯВУ отличается от НЕ ЯВУ тем, что программа должна выглядеть понятным ЧЕЛОВЕКУ языком. Программа на бейсике понятна? Без сомнений. Программа на паскале тоже (человеку знакомому с английским). А вот на С, что означают эти закорючки и фигурные скобки?! И не говорите мне, что С - это ЯВУ... :3 Мое ИМХО, не обязано совпадать с вашим.
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

HardWareMan wrote:И не говорите мне, что С - это ЯВУ...
И не рискнём, уважаемый. С - это кроссплатформенный ассемблер. Васиком он
быть не обязан. А если уж говорить о ЯВУ - то что там говорили в ВУЗ-е?
В пределе оси развития ЯВУ, машина должна научиться понимать тебя со слов.
Щелкнул пальчиками - и сказал: "А налейка мне кофе!" А она - "Нет такого
оператора, ошибка компиляции, Сер!"

В этом плане что-то всегда вспоминается заставка к "Another World", когда
перец садится за трёхмерный терминал - а машина ему:"Бон джорно, профессуре!" :lol:

Image

PS. Но в чем я с HardWareMan-ом бесспорно согласен, да и не мы с ним это придумали,
ЯВУ должен быть максимально близок к понятному человеку языку.
User avatar
Shaos
Admin
Posts: 24088
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

недавно в инете пролетало - пишу по памяти: чувак захотел научиться программировать игры - поставил студию, создал проект - написал текстом "симулятор игры в футбол" и чего-то у него оно не скомпилировалось и не заработало - подумал, что тупой компилятор...

P.S. лично я не признаю никакие языки - только программирование в кодах конкретного процессора ;)
однако иногда бывает не хватает времени и приходится наступать песне на горло и мучать ассемблер с его буковками :)
но частенько лень пересиливает любовь к прекрасному (когда очень быстро надо получить работающую программу) - приходится писать на сях :roll:
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24088
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

Lavr wrote:Не это ли??? (Нарыл по Гуглю: Linus Torvalds C++ bullshit)

http://harmful.cat-v.org/software/c++/linus

Довольно давнее сообщение: Date: 2007-09-06 17:50:28 GMT
Кто-бы перевёл... весьма специфичный на разные "термины" текст... :wink:
Кстати я это сообщение почти сразу же тут в форуме процетировал - ещё в 2007 году:

viewtopic.php?t=9479

P.S. Не понимаю людей, которые прикипели к Паскалю - как им не лень набирать все эти BEGIN-ы и END-ы...

P.P.S. Вобщем я для себя сделал вывод, что если хочется получить по настоящему переносимую программу - пиши на си. Я не спорю, что на С++ тоже можно писать переносимые программы, однако С++ компиляторов несколько меньше чем С компиляторв (что уже сужает рамки портабельности), ну и чтобы программа на С++ была переносимой между разными платформами и компиляторами, нужно использовать только очень узкое подмножество языка С++, причём оказывается, что всё тоже самое можно написать и на обычном С (см. начало топика) - тогда зачем гнаться за С++ с его фенечками и рюшечками?
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
HardWareMan
Banned
Posts: 2139
Joined: 20 Mar 2005 13:41
Location: От туда

Post by HardWareMan »

Shaos wrote:P.S. Не понимаю людей, которые прикипели к Паскалю - как им не лень набирать все эти BEGIN-ы и END-ы...
Вот именно: не лень. Более того, я на пасе (точнее дельфи, но можно и голом пасе) напишу нужную мне тулзу за полчаса, при этом если мне надо будет ИДЕ мне прекрасно поможет в отладке. Но как правило, мой код начинает работать в 95% случаев, некоторый сразу с первого набора и компиляции, без проверки на синтаксис даже (было такое, да)...
User avatar
Shaos
Admin
Posts: 24088
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Post by Shaos »

HardWareMan wrote:
Shaos wrote:P.S. Не понимаю людей, которые прикипели к Паскалю - как им не лень набирать все эти BEGIN-ы и END-ы...
Вот именно: не лень. Более того, я на пасе (точнее дельфи, но можно и голом пасе) напишу нужную мне тулзу за полчаса, при этом если мне надо будет ИДЕ мне прекрасно поможет в отладке. Но как правило, мой код начинает работать в 95% случаев, некоторый сразу с первого набора и компиляции, без проверки на синтаксис даже (было такое, да)...
ага, дельфи - мертвечина ещё та :roll:
Я тут за главного - если что шлите мыло на me собака shaos точка net
bar
Senior
Posts: 185
Joined: 07 Aug 2006 10:18

Post by bar »

HardWareMan wrote:И да, ЯВУ отличается от НЕ ЯВУ тем, что программа должна выглядеть понятным ЧЕЛОВЕКУ языком. Программа на бейсике понятна? Без сомнений. Программа на паскале тоже (человеку знакомому с английским).
Нет, если программа пишется на понятном незнакомому с программированием человеку, то эта программа написана не на ЯВУ а на естественном языке, родном (или впоследствии изученном) для человека. К высокому уровню это не имеет никакого отношения. ЯВУ -- это несколько иное, это высокий уровень абстракции от единичек и ноликов при программировании.
И при таком подходе паскаль приравнивается к C. Их уровень абстракции практически идентичен. basic -- какой басик имеется в виду? Тот на котором я писал в школе на БК-0010? Или что-то уровня Visual Basic? Visual Basic -- это тот же паскаль/C, но там ещё классы. Классы считают повышением уровня абстракции, поэтому VB будем считать уже уровня Delphi и Java. C++ я затрудняюсь куда-то приписать -- сам я им не пользуюсь, C++-программисты считают его венцом развития, поэтому оставим его в стороне. VB/Delphi/Java -- это, конечно, ещё не самый верх уровня программирования, куда можно залезть. Но в область всяких там лиспов я тоже не полезу.
Я лишь к тому, что не надо привязывать высокоуровневость языка к "фигурным скобочкам". Да, C -- это низкоуровневый язык, и он с гордостью носит неофициальное звание кроссплатформенного ассемблера. Но это вовсе не потому, что при создании C из алгола удалили begin'ы и end'ы, и заменили их фигурными скобочками.
HardWareMan wrote:Более того, я на пасе (точнее дельфи, но можно и голом пасе) напишу нужную мне тулзу за полчаса, при этом если мне надо будет ИДЕ мне прекрасно поможет в отладке. Но как правило, мой код начинает работать в 95% случаев, некоторый сразу с первого набора и компиляции, без проверки на синтаксис даже (было такое, да)...
Да все и так знают, что паскалисты любят паскаль по двум причинам, как раз по этим:
1. они отлично знают именно паскаль;
2. им очень удобна IDE под названием Delphi.
Shaos wrote: P.S. Не понимаю людей, которые прикипели к Паскалю - как им не лень набирать все эти BEGIN-ы и END-ы...
Я несколько лет назад был вынужден связаться с паскалём, и писал на паскале в emacs'е. begin/end -- это всё фигня и мелочи. При желании можно заточить текстовый редактор, чтобы он менял {} на begin/end и не знать проблем. В паскале есть куча других раздражающих неудобств, от которых избавиться сложнее.
User avatar
HardWareMan
Banned
Posts: 2139
Joined: 20 Mar 2005 13:41
Location: От туда

Post by HardWareMan »

bar wrote:
HardWareMan wrote:Более того, я на пасе (точнее дельфи, но можно и голом пасе) напишу нужную мне тулзу за полчаса, при этом если мне надо будет ИДЕ мне прекрасно поможет в отладке. Но как правило, мой код начинает работать в 95% случаев, некоторый сразу с первого набора и компиляции, без проверки на синтаксис даже (было такое, да)...
Да все и так знают, что паскалисты любят паскаль по двум причинам, как раз по этим:
1. они отлично знают именно паскаль;
2. им очень удобна IDE под названием Delphi.
Не соглашусь в пунктом ¹1: я отлично знаю бэйсик (стандартный, типо QBASIC'а) и ассемблер (и не только х86).

И, кстати, я на отлично сдал Borland C в универе именно из-за их IDE, горячие клавиши которой одинаковы и для Turbo Pascal'я.
bar wrote:В паскале есть куча других раздражающих неудобств, от которых избавиться сложнее.
Например?
b2m
Devil
Posts: 907
Joined: 26 May 2003 06:57

Post by b2m »

bar wrote:Да все и так знают, что паскалисты любят паскаль по двум причинам, как раз по этим:
1. они отлично знают именно паскаль;
2. им очень удобна IDE под названием Delphi.
Стопудово.
bar wrote:В паскале есть куча других раздражающих неудобств, от которых избавиться сложнее.
Зато не надо возиться с буферами для строк :)
В плюсах, конечно, тоже придумали свой класс для этого, но если мы про С, то в нём возиться со строками - то ещё удовольствие.

Я, кстати, начиная знакомиться с дельфями (и имея опыт работы с C++) был весьма удивлён наличию как class, так и object, и не сразу понял, в чём их отличие.

А про какие сложности ты говорил?
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/
User avatar
Lavr
Supreme God
Posts: 16689
Joined: 21 Oct 2009 08:08
Location: Россия

Post by Lavr »

Shaos wrote:Вобщем я для себя сделал вывод, что если хочется получить по настоящему переносимую программу - пиши на си. Я не спорю, что на С++ тоже можно писать переносимые программы, однако С++ компиляторов несколько меньше чем С компиляторв (что уже сужает рамки портабельности), ну и чтобы программа на С++ была переносимой между разными платформами и компиляторами, нужно использовать только очень узкое подмножество языка С++, причём оказывается, что всё тоже самое можно написать и на обычном С (см. начало топика)
В принципе можно повторить эту фразу, заменив С на Васик. За исключением
"свистелок-перделок" (особенности интерфейса и графики), то, что я написал
давным-давном на Васике "Специалиста" благополучно дожило до "VB".
Что можно испортить в алгоритме Рунге-Кутты при переносе? Да ничего. Можно
только улучшить - а если лень, то и так пойдёт.
А насчёт С - я столкнулся ещё в версиях 3.хх от Борланда. Написанное на
Борланд С, не обязательно пойдёт на Турбо С, хотя фирма одна и та же.
Можно кивнуть на мои кривые руки. Но исходник был не мой. Ему80 Пыхонина
никак не комплился на Турбо, пока я Борланд не поставил. Так с тех пор и
тащится за мной тот древний Борланд с исходниками Виктора в одной папочке.

Мужики... а вам не кажется, что мы подспудно холивар сюда вытащили?
Я всегда считал - владеет человек каким-либо языком - дык счастья ему
и всем! Если он умеет - он и на этом языке себя и всех софтом осчастливит...