LINUX.ORG.RU
ФорумTalks

Почему C++хейтеры не огрызаются на Си?

 ,


0

7

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

Во-первых, плюсохейтеры обвиняют C++ в своих собственных ошибках. Ошибки у них одного и того же сорта: пишем программу как на жаве, головой не думаем из принципа, проектирование придумали слабаки, проблемы «решаем» по месту их возникновения любой ценой и считаем это «обработкой». Из последнего, как я понял из недавней дискуссии на тему «как вы обработаете ошибку коммита в базу данных», и растет бомбаж задних торцов плюсохейтеров на тему «исключения в деструкторах». Причем проблемы с плюсами у хейтеров повторяются.

В общем-то понятная ситуация. Плохому танцору мешает даже пол. Но вот чего я в поведении рукожопых не понимаю: они не смеют гавкать на Си. То есть обвинять плюсы в своем рукожопии это без проблем, а на Си - претензий нет.

Ведь на Си писать еще геморойнее. Ооп вручную, методов нет, операторы перегрузить нельзя(например для операций с векторами и матрицами). То есть проблем даже больше. Я можно сказать ветеран Си. Я писал GObjectы руками. Си это боль. Он хуже.

Так почему плюсохейтерыне лают на си?

Я прям щас видел как плюсохейтер предлагал макросы как альтернативу not_null. Они согласны говнокодить. Они в принципе не против если их говнокод на си будет падать и течь

В чем причина? Почему плюсохейтеры не вякают на Си?

Никто не даст обезьянке писать код на си. Обезьянка будет, плюясь и чертыхаясь писать дальше на крестах, с завистью поглядывая на тех, кто пишет код в пространстве ядра.

annulen ★★★★★
()

Почему плюсохейтеры не вякают на Си?

Типичный Java/PHP-макак и на Си, и на Rust, и на D и вообще на всё вякает. См. этот форум.

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

Потому, как С (и Objective-C) язык весьма логичный, а про С++ приведу цитату гения:

«Автору C++ место в дурке или на погосте.»(С)

Bioreactor ★★★★★
()

так пиши на Erlang, или Haskell, или на Java/Scala, или на C#/F#, или на любом другом нормальном языке, и не нужно будет говнокодить

Почему плюсохейтеры не вякают на Си?

потому что Си используется очень редко, в качестве вставок для оптимизации чего-то машинно-специфичного. Иначе говоря, для байтоёбства. Эту задачу он исполняет шикарно. Но никто не предлагает писать на Си прямо настоящие программы. Поэтому мы на него и не вякаем.

в противоположность этому, C++ позиционируется как средство для написания высокоуровневой бизнес-логики очень обобщенным универсальным способом, т.е. претендует чуть ли не лавры Common Lisp. И соответственно огребает пиздюлей

stevejobs ★★★★☆
()

Я можно сказать ветеран Си. Я писал GObjectы руками. Си это боль. Он хуже.

весь этот тред, а особенно вот этот кусок говорит всего лишь навсего о том, что ты, тащемта, просто-напросто говнокодер например.

пиши на крестах дальше, не ломай свою психику.

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

C++ не «позиционируется». Он просто есть. А у кого то почему то бомбит

i36_zubov
() автор топика

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

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

Никто не даст обезьянке писать код на си.

Ахахахахах... интересно, как это сочетается с вопрями местных аналитиков о том, что дрова для карт AMD, в том числе и ядерную часть, пишут как раз те самые обезьяны?

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

<...> ты, тащемта, просто-напросто говнокодер например.

А вот и илитка подоспела.

как ты нескромно о себе. впрочем, ничего нового.

Нет, я о тебе.

intelfx ★★★★★
()

Ооп вручную, методов нет, операторы перегрузить нельзя

Аргумент уровня

зачем писать на крестах? STM нет, безопасных указателей нет. Да даже ооп нормального нет, аки в рубях.

Почему плюсохейтеры не вякают на Си?

Открываем тему:

DNF будет переписан на языке C

Вторым же комментарием мы имеем веское мнение плюсоевангелиста.

Да что там, в каждой теме по сишечке возникают пара товарищей, которые тут же начинают проповедовать свою веру.

Freyr69 ★★★
()

знаю как минимум одно тутошнего плюсохейтера, который вякает на Си. так что вякают, но сраться с царем мало кому охота.

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

STM есть

В виде сторонней реализации? Так то понятно, так-то и для сишки ворох объектных систем есть. И что в нем такого плохого, в стм на крестах?

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

Никто не даст обезьянке писать код на си. Обезьянка будет, плюясь и чертыхаясь писать дальше на крестах, с завистью поглядывая на тех, кто пишет код в пространстве ядра.

На C на самом деле технически куда проще писать, чем на C++, т.к. большинство возможных подводных камней легко обходяться простым «common sense-ом» и соблюдением некоторых стилистических правил, т.к. возможностей наступить на грабли у языка не так много, и по сути дела это просто такой «универсальный ассемблер». Самое страшное, и порой единственное, что может случиться плохого — можно напортачить с размерами структур / указателями / адресами. (хотя отлаживать конечно это бывает порой не так легко)

В то время как на C++ новички часто встречают ситуации, которые «пока не встретишь в жизни - никогда не догадаешся, что так бывает», и поведение не всегда самое очевидное (для новичков) у языка. Одно что - обьем кода в разы больше получается чаще всего.

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

А кстати, насчет «лавр Common Lispа». А ты юморной. Ну правда, во имя юмора не жги так.

i36_zubov
() автор топика
Ответ на: комментарий от Freyr69

В виде сторонней реализации?

В самом gcc есть поддержка.

И что в нем такого плохого, в стм на крестах?

Если мы говорим именно о программной реализации, то особо ничего, за исключением отсутствия контроля побочных эффектов, что приведёт к некоторому геморрою.

В случае же с TSX всё становится намного хуже, потому что там намного более жёсткие ограничения для транзакций. Например, транзакция может вылететь при запросе к данных с разных страниц.

hateyoufeel ★★★★★
()

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

Лично я сделал выбор в пользу Си 10 лет назад, когда C++ бурно развивался, и вчерашними компиляторами компилить код, который ожидали сегодняшние, было нереально. Старые проекты на C++ и сегодня не компилятся без модификаций хотя-бы из за заголовочных файлов («#include <name.h>» -> «#include <cname>»). А в случае Си можно легко скомпилить код многодесятилетней давности как он есть (за некоторыми исключениями).

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

Вы таки действительно думаете, что нормальные программисты на c++ реально помнят наизусть эти стандарты? Это как человек, для которого русский не родной, наизусть учит все правила языка

i36_zubov
() автор топика

Наверное, плюсохейтеры никогда не писали на Сях проект под двадцать косарей строк кода, который похудел бы наполовину, если бы писался на C++, с ООП, перегрузкой операторов, деструкторами, RAII и прочим гламуром, который суровые кёрнелкодеры сурово делают словом goto.
Лично мне в C++ неприятен лишь автор языка, я про Страуструпа. Его огромное, непомернейшее ЧСВ, его слова типа «I invented C++», его стремление заменить все сишные сущности в C++ (заменили struct на class — хрен бы с ним, но чёрт побери, выпилить NULL и через 10 лет ввести инновационное название nullptr — у толерантного меня и то бомбит от такого), когда как язык всего лишь является пропеаренной и выстрелившей адской смесью из четырёх (а может и больше) разных парадигм. «Тысяча ненужных функций, которые если изощрённо совместить, то можно получить десяток нужных функций», например, SFINAE.

Northsoft ★★
()

Сишники не такие ранимые, вот и не интересно к ним приставать.

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

выпилить NULL и через 10 лет ввести инновационное название nullptr

Шта? Определение NULL с (void*)0 на просто 0 заменили по вполне объективным причинам, по столь же объективным причинам был введён и nullptr.

Gvidon ★★★★
()

Почему плюсохейтеры не вякают на Си?

Почему пользователи шиндошс не вякают на линюпсятников?

TheAnonymous ★★★★★
()

Тебе кажется.

Клей и байтолюбство для одних дел. Кодогенерация и изкоробочный полиморфизм для других.

Все кто не умеют выбирать инструменты плачут, да.

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

Если не секрет, скажи, ты на учете в психдиспансере состоишь? Это объяснило бы многие твои высказывания...

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

Абсолютно согласен. Только я б еще клоуна александреску добавил к трупу страуса.

Но даже они не смогли испортить

i36_zubov
() автор топика
Ответ на: комментарий от i36_zubov

Вы таки действительно думаете, что нормальные программисты на c++ реально помнят наизусть эти стандарты? Это как человек, для которого русский не родной, наизусть учит все правила языка

Ты намекаешь на то, что крестами ты владеешь так же плохо, как русским языком?

Freyr69 ★★★
()

У Си меньше неявного поведения. Софт легче писать, когда доходит до его отладки.

По-сути, это же ассемблер с одинаковыми синтаксисом для разных процессорных архитектур? Чего его тогда не любить...

mv ★★★★★
()

Сям грехи простительны ибо язык старый и сложившийся, а плюсы это химера, которая успела захватить огромнейшую нишу, но при этом уродлива в своей сути - быть «совместимой», или ещё лучше «надмножеством» Си в 1990 или каком там году.

// сам плюсофаг

jeuta ★★★★
()

Потому что возьми код quake2 и serious engine. Попробуй разобраться. Где быстрее разберёшься - тот более понятен.

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

Потому, как С язык весьма логичный

Да блин вообще

int main( int argc, char **argv ) {

    int numInputs, opt = getopt( argc, argv, "" );
    char *input;

    while( opt != -1 ) {
        input = optarg;
        opt = getopt( argc, argv, optString );
    }

    numInputs = argc - optind;
}

одно действие логичнее другого просто.

Просто Си как старый дед на костылях - его грешно ругать, его жалеют.

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

Шта? Определение NULL с (void*)0 на просто 0 заменили по вполне объективным причинам, по столь же объективным причинам был введён и nullptr.

Расскажите пожалуйста моар об этом.

Northsoft ★★
()

Цэ тоже не фонтан, но хотя бы компилируется реактивно.

Hertz ★★★★★
()

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

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

Лично видел на форумах различных игр в стадии разработки, при условии анонса выхода не только на шиндовс, но и на линухе, как многие оконные хомячки, ещё не видела даже альфы игры, пишут «лучше б разрабы дропнули никому ненужный линукс и отточили игру для нашего любимого шиндовс, сраные линуксоиды».

flyshoot
()
Ответ на: комментарий от stevejobs

Помним тот знатный бугурт. Я как раз его вспоминал, когда писал что проблемы с C++ у всех хейтеров подозрительно одинаковые и рукожопные

i36_zubov
() автор топика
Ответ на: комментарий от Quasar

На плюсах можно писать не используя всех фич. Хотя программистам на жабе что в лоб что по лбу. Им пока компилятор не запретит что то явно, будут куролесить не приходя в сознание

i36_zubov
() автор топика
Ответ на: комментарий от Freyr69

Я таки наблюдаю, что люди, наизусть учащие стандарты, пишут несусветный говнокод и вайнят про то, как си плюсплюс срёт им в штаны. Зато язык-то они знают, дааа.

i36_zubov
() автор топика
Ответ на: комментарий от intelfx

Дык на такую личность перейти завсегда приятно.

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