LINUX.ORG.RU
ФорумTalks

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

 ,


0

7

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

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

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

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

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

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

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

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

Например, в ынтерпрайз-приложениях огромное количество времени ответа и ресурсов жрут вызовы БД и рендеринг в веб-интерфейс, когда у тебя творится такой цирк экономить RAM и такты не имеет никакого смысла.

Попробуй так не экономить в одном облачном ынтерпрайз CRM с «джаваподобным язычком и вебинтерфейсом» — и немедля огребешь Heap Size Limit или CPU Time Limit (если раньше не наскочишь на другой жесткий забор) и тебя нимношк. накажут, потому что подписка и доп. лицензии и так стоят много убитых президентов, а увеличивать лимиты лично тебе никто не будет :) Алсо «вызовы к БД» не делаются «как придется» (например, «в цикле фор 100500 раз, а чо такого-то»), а там где-то рядом стоит условный «штабелятор запросов» — либо на уровне самой СУБД (пулы подключений, локальные кэши уже вытащенных датасетов в дровах БД), либо... его использование как «бест практика» внушается падаванам «хорошим» наставником(потому что добрый и умеет нести пургу), пока «плохой» (потому что злобный ублюдок) рядом поигрывает стальной рейсшиной(а на лицах у них одинаковые шрамы, потому что эта их «бест практика» — костыльный шаблон, бггг, и сам йезыг или СУБД этого почему-то не форсит).

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

насколько я знаю программистов на C++, они начхали на стандарт. Это на Java пишут «на стандарте», а на крестах пишут на вполне конкретной реализации :) И да, прибиваются к этой реализации гвоздями, живут с ней, трахаются с ней, такая вот у профессиональных крестовиков работа full time job =)

вот не надо свои сексуальные фантазии за официальную статистику выдавать

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

насколько я знаю программистов на c++

У вас там походу целый клуб программистов на жабе, которых обидел c++. И стопудово у всех одинаковые предъявы к c++.

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

Ваш потолок - эникейщик.

public class Test {
    public static void main(String... args) {
        Integer i = -128;
        Integer j = -128;
        System.out.println(i == j);
        i = 128;
        j = 128;
        System.out.println(i == j);
    }
}
$javac Test.java
$java Test
true
false
$

RTFM

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

В том, что умничать про «неочевидности» языка будете на собеседовании.

Или в собесе.

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

Ваш потолок - эникейщик.

Я даже представить не могу, откуда возникло это странное утверждение.

RTFM

Эмм... Вообще-то я просил пояснить, а не продемонстрировать, но я уже вижу, что ты вряд ли способен это сделать.

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

меня радуют взрывающиеся пуканы в этом треде

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

Там объекты-обертки над интом (примитивы в жабе не объекты). Эти объекты кешируются в определенном диапазоне. По-умолчанию от -128 до 127

Сравнение двух Integer через == - сравнение ссылок. Обе обертки на -128 ссылаются на один и тот же кешированный объект. Обертки на +128 уже не попадают и являются разными объектами на хипе.

Вообще диапазон настраивается через XX:AutoBoxCacheMax...а может и не настраиваться. Наличие этой опции, как я понял, зависит от реализации jvm и где-то ее может не быть (да и в хотспоте она не документирована).

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

Никто платить за мощные компьютеры лишний раз не хочет потому что это бизнес.

Компьютеры стоят дешевле чем время програмистов (в ситуации неодходимости повысить производительность уже существующей программы).

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

зависит от объема проходяших сквозь программу данных (нагрузки)

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

Иногда 50% — лишняя планка памяти, иногда — лишние пол-датацентра.

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

Я даже представить не могу, откуда возникло это странное утверждение.

Это чей-то тупой бот на джаве, расслабьтесь

Deleted
()

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

Я за пятнадцать лет так и не осилил плюсы, хотя пишу на них достаточно крупные проекты. Может быть из-за того что я тупой, может быть из-за того что рядом со мной нет профессиональной среды, и я всегда был программером-одиночкой. И собираюсь с плюсов соскакивать на тот же Го, Nim, D, Rust (в порядке уменьшения вероятности). Совершенно без сожаления.

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

На с++ не обязательно использовать все фичи сразу и в полном объеме. Его можно использовать как си с классами. И этим он лучше си. Нахер вообще осиливать его целиком, когда 90% проблем растут из отсутствия швга проектирования ПО и документации?

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

Ну если говорить в терминах с++, то у вас сравниваются адреса двух классов. Это адреса а не ссылки, отсюда все бякости жавовского оператора ==. Для ряда вариантов есть статические экземпляры классов. Вот как для integer.

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

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

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

нет никакой экосистемы плюсов.

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

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

У тебя что, обмен кодом ограничен готовыми либами и фреймверками? Посмотри на похапе, народ обменивается именно кодом, дорабатываевая его и изменяя, и самое главное, друг друга понимая.

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

Я не спорю, что в интернете всегда можно найти наколоброженый код. Только писал этот код не с++ а какой-то рукожоп с именем и фамилией.

А просто писать программы на с++ можно и не понимая всех деталей. Где то хватит и интуитивного понимания. Это программистов на жаве вечно несёт куда-то в болота

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

А просто писать программы на с++ можно и не понимая всех деталей.

Вот это ты вбросил :)

Xintrea ★★★★★
()

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

Самое смешное, что ты настолько же упоротый, как эти твои «хейтеры». Продублирую ответ из той темы: я пишу на С++ регулярно (основной рабочий инструмент) и не страдаю от этого. И да, с плюсов пересаживаться на С совершенно не хочется.

Про not_null было в определённом контексте, вникнуть в который ты не удосужился.

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

Сям грехи простительны ибо язык старый и сложившийся

С++ - уже тоже язык «старый и сложившийся».

DarkEld3r ★★★★★
()

раньше писал на си, пересел на си++ и вряд ли в ближайшее время куда на другой язык захочу. ++ Во всем лучше, кроме производительности, и то, в некоторых случаях она может быть больше (встраивание функторов, вычисления во время компиляции и т.д.)

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

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

А некоторые «эксперты» вообще позволяют себе «си++ еще не умер? а пора бы», интересно, а на чем бы писались их javac-и если бы не ++, не уж то на хипстерских растах и прочих языках, перспектива которых, оказаться лидерами в промышленном программировании крайне скудна... В отличие от Си и ++, на которых в основном и пишется весь код, а то что джава поппулярнее си - брехня, нужно не по поделиям школьников на андроиде судить а по серьезным проектам - вот: http://www.lextrait.com/Vincent/implementations.html

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

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

«Исключения в деструкторах» — это как раз то самое, о чём я говорю. Это аккуратно уложенные на дороге грабли.

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

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

Го, Nim, D, Rust (в порядке уменьшения вероятности).

С первым и последним понятно. А почему второй и третий язык именно в таком порядке?

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

На с++ не обязательно использовать все фичи сразу и в полном объеме.

Посмотри на его темы. Мне кажется, что лучше и правда будет взять какой-нибудь Go.

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

не уж то на хипстерских растах и прочих языках

Как будто что-то плохое.

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

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

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

Сравниваются с == ссылки, а не числа. Ссылки будут равны только для чисел, укладывающихся в байт (знаковый), ибо кеширование. Как-то так. Для нормального сравнения есть .equals().

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

Человек ясно сказал, что джаву не знает. Называть его после этого эникейщиком и отсылать к мануалам как-то странно.

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

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

Ну а отвечая на главный вопрос темки - просто потому что не очень умные.

Я то смотрю ты такой умный, что 8 из 10 тем у тебя «Что, да как в c++»

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

Зависит от настроек VM. К Java не имеет отношения, это чисто оптимизация на стороне машины. Не надо так.

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