nedoPC.org

Electronics hobbyists community established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 16 Apr 2024 09:51



Reply to topic  [ 90 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6  Next
CLASHA - Объектно-ориентированное программирование на Си 
Author Message
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Хотя времени полно прошло. А Линус - фигура крупная - перевели ужо...

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


13 Apr 2011 11:51
Profile
Senior

Joined: 07 Aug 2006 10:18
Posts: 185
Reply with quote
Post 
Lavr wrote:
А всёж интересно было бы ссылочку глянуть. Читал я, что Linus Torvalds
высказался в том плане, что человек он обеспеченный и ему на многое плевать...
А тут...

Да там смешная история была: в список рассылки git (система управления версиями) пришёл C++ программист и удивлённо начал вопрошать что-то типа "Вы пишите на C? Это же устаревший ужасный язык! Там нет наследования, шаблонов, перегрузки операторов. Вы используете макросы -- это же небезопасно Почему вы не пишете на C++? В нём так удобно работать со строками! А ну-ка переписывайте git на C++, или Страуструп обидится." Ну и так далее, в общем он нёс бред обычный среди C++-программистов. Ему предложили идти мимо, но он не понял, продолжал замусоривать список рассылки своими сообщениями. Тогда пришёл Торвальдс и написал что C++ это бычачье дерьмо. В списке рассылки после этого холивар достаточно быстро прекратился, но потом полгода C++-программисты по всему интернету писали в своих блогах записи типа "почему C сосёт у C++".


14 Apr 2011 04:12
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
bar wrote:
но потом полгода C++-программисты по всему интернету писали в своих блогах записи типа "почему C сосёт у C++".

Я как-то старался не влезать в холивары и мне даже казалось, что все
повзрослели и всё кончилось... Но НЕЕЕЕТ!!!! Чисто для приколу ткнул
Гугл... всё НЕ кончилось... всё продолжается бесконечно... :cry:
Логикой убивает так, что даж смеяцца не хочется: :o
Quote:
С - да простят мне эту вольность - надассемблерный язык. Т.е. фактически картина такая: ассемблер - джидайский световой меч (чуток нето задел - и пис*ец), С - самурайский меч(в принципе можно рискнуть помахать - но без должной подготовки, готовся принять иудаизм), VB - бейсбольная бита. Очень по американски. Мощно , красиво, быстро, эффективно - но ! реально сосет против самурайского меча, не говоря уже о джидайском!

http://xakepy.cc/showthread.php?t=37335&pagenumber=


14 Apr 2011 06:40
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22519
Location: Silicon Valley
Reply with quote
Post 
Всё правильно Линус пишет
Вон в америке уже в некоторых университетах стали убрать ООП как обязательный предмет - ибо не учит параллельному программированию и т д
Вообще людей, которые с разу на C++ подсаживаются в качестве своего первого языка, к серъёзному программированию подпускать нельзя - у них башка снесена полностью...
P.S. По последнему линку несколько не то - там VB "воюет" с C/C++ (большинство людей до сих пор думают, что C и C++ это один и тот же язык)

_________________
:dj: https://mastodon.social/@Shaos


14 Apr 2011 06:54
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Shaos wrote:
P.S. По последнему линку несколько не то - там VB "воюет" с C/C++

Да ктоб с кем ни воевал - логика на уровне приведённой цитаты...
Уважая посетителей форума и коллег, я не стал цытировать борцов
С - С++... Они... скажем так... более суровы в высказываниях. :lol:

Но если лично у меня есть кусок кода на С++ (или на чем другом),
который решает нужную мне проблему - то я его использую, не глядя
на мнения.


14 Apr 2011 07:23
Profile
Banned
User avatar

Joined: 20 Mar 2005 13:41
Posts: 2141
Location: От туда
Reply with quote
Post 
Лично я не признаю никакие языки кроме нативного АСма под конкретную платформу и Васика для сложных вычислений и формул. В остальное время под х86 пишу на паскале, так как мне не трудно набирать токены полностью, а не тыцкать по одной клавише в погоне за ленью. И да, ЯВУ отличается от НЕ ЯВУ тем, что программа должна выглядеть понятным ЧЕЛОВЕКУ языком. Программа на бейсике понятна? Без сомнений. Программа на паскале тоже (человеку знакомому с английским). А вот на С, что означают эти закорючки и фигурные скобки?! И не говорите мне, что С - это ЯВУ... :3 Мое ИМХО, не обязано совпадать с вашим.


14 Apr 2011 10:36
Profile
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
HardWareMan wrote:
И не говорите мне, что С - это ЯВУ...

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

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

Image

PS. Но в чем я с HardWareMan-ом бесспорно согласен, да и не мы с ним это придумали,
ЯВУ должен быть максимально близок к понятному человеку языку.


14 Apr 2011 12:50
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22519
Location: Silicon Valley
Reply with quote
Post 
недавно в инете пролетало - пишу по памяти: чувак захотел научиться программировать игры - поставил студию, создал проект - написал текстом "симулятор игры в футбол" и чего-то у него оно не скомпилировалось и не заработало - подумал, что тупой компилятор...

P.S. лично я не признаю никакие языки - только программирование в кодах конкретного процессора ;)
однако иногда бывает не хватает времени и приходится наступать песне на горло и мучать ассемблер с его буковками :)
но частенько лень пересиливает любовь к прекрасному (когда очень быстро надо получить работающую программу) - приходится писать на сях :roll:

_________________
:dj: https://mastodon.social/@Shaos


14 Apr 2011 18:41
Profile WWW
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22519
Location: Silicon Valley
Reply with quote
Post 
Lavr wrote:
Не это ли??? (Нарыл по Гуглю: Linus Torvalds C++ bullshit)

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

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


Кстати я это сообщение почти сразу же тут в форуме процетировал - ещё в 2007 году:

http://www.nedopc.org/forum/viewtopic.php?t=9479

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

P.P.S. Вобщем я для себя сделал вывод, что если хочется получить по настоящему переносимую программу - пиши на си. Я не спорю, что на С++ тоже можно писать переносимые программы, однако С++ компиляторов несколько меньше чем С компиляторв (что уже сужает рамки портабельности), ну и чтобы программа на С++ была переносимой между разными платформами и компиляторами, нужно использовать только очень узкое подмножество языка С++, причём оказывается, что всё тоже самое можно написать и на обычном С (см. начало топика) - тогда зачем гнаться за С++ с его фенечками и рюшечками?

_________________
:dj: https://mastodon.social/@Shaos


14 Apr 2011 18:48
Profile WWW
Banned
User avatar

Joined: 20 Mar 2005 13:41
Posts: 2141
Location: От туда
Reply with quote
Post 
Shaos wrote:
P.S. Не понимаю людей, которые прикипели к Паскалю - как им не лень набирать все эти BEGIN-ы и END-ы...

Вот именно: не лень. Более того, я на пасе (точнее дельфи, но можно и голом пасе) напишу нужную мне тулзу за полчаса, при этом если мне надо будет ИДЕ мне прекрасно поможет в отладке. Но как правило, мой код начинает работать в 95% случаев, некоторый сразу с первого набора и компиляции, без проверки на синтаксис даже (было такое, да)...


14 Apr 2011 20:29
Profile
Admin
User avatar

Joined: 08 Jan 2003 23:22
Posts: 22519
Location: Silicon Valley
Reply with quote
Post 
HardWareMan wrote:
Shaos wrote:
P.S. Не понимаю людей, которые прикипели к Паскалю - как им не лень набирать все эти BEGIN-ы и END-ы...

Вот именно: не лень. Более того, я на пасе (точнее дельфи, но можно и голом пасе) напишу нужную мне тулзу за полчаса, при этом если мне надо будет ИДЕ мне прекрасно поможет в отладке. Но как правило, мой код начинает работать в 95% случаев, некоторый сразу с первого набора и компиляции, без проверки на синтаксис даже (было такое, да)...


ага, дельфи - мертвечина ещё та :roll:

_________________
:dj: https://mastodon.social/@Shaos


15 Apr 2011 03:53
Profile WWW
Senior

Joined: 07 Aug 2006 10:18
Posts: 185
Reply with quote
Post 
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 и не знать проблем. В паскале есть куча других раздражающих неудобств, от которых избавиться сложнее.


15 Apr 2011 03:58
Profile
Banned
User avatar

Joined: 20 Mar 2005 13:41
Posts: 2141
Location: От туда
Reply with quote
Post 
bar wrote:
HardWareMan wrote:
Более того, я на пасе (точнее дельфи, но можно и голом пасе) напишу нужную мне тулзу за полчаса, при этом если мне надо будет ИДЕ мне прекрасно поможет в отладке. Но как правило, мой код начинает работать в 95% случаев, некоторый сразу с первого набора и компиляции, без проверки на синтаксис даже (было такое, да)...

Да все и так знают, что паскалисты любят паскаль по двум причинам, как раз по этим:
1. они отлично знают именно паскаль;
2. им очень удобна IDE под названием Delphi.

Не соглашусь в пунктом ¹1: я отлично знаю бэйсик (стандартный, типо QBASIC'а) и ассемблер (и не только х86).

И, кстати, я на отлично сдал Borland C в универе именно из-за их IDE, горячие клавиши которой одинаковы и для Turbo Pascal'я.
bar wrote:
В паскале есть куча других раздражающих неудобств, от которых избавиться сложнее.

Например?


15 Apr 2011 04:31
Profile
Devil

Joined: 26 May 2003 06:57
Posts: 859
Reply with quote
Post 
bar wrote:
Да все и так знают, что паскалисты любят паскаль по двум причинам, как раз по этим:
1. они отлично знают именно паскаль;
2. им очень удобна IDE под названием Delphi.

Стопудово.

bar wrote:
В паскале есть куча других раздражающих неудобств, от которых избавиться сложнее.

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

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

А про какие сложности ты говорил?

_________________
Страничка эмулятора наших компьютеров
http://bashkiria-2m.narod.ru/


15 Apr 2011 04:42
Profile WWW
Supreme God
User avatar

Joined: 21 Oct 2009 08:08
Posts: 7777
Location: Россия
Reply with quote
Post 
Shaos wrote:
Вобщем я для себя сделал вывод, что если хочется получить по настоящему переносимую программу - пиши на си. Я не спорю, что на С++ тоже можно писать переносимые программы, однако С++ компиляторов несколько меньше чем С компиляторв (что уже сужает рамки портабельности), ну и чтобы программа на С++ была переносимой между разными платформами и компиляторами, нужно использовать только очень узкое подмножество языка С++, причём оказывается, что всё тоже самое можно написать и на обычном С (см. начало топика)


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

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


15 Apr 2011 04:55
Profile
Display posts from previous:  Sort by  
Reply to topic   [ 90 posts ]  Go to page Previous  1, 2, 3, 4, 5, 6  Next

Who is online

Users browsing this forum: No registered users and 8 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.