Современнный С++ программист на связи. Хочу поговорить о наболевшем. Честно скажу, на двачах бываю редко, а в /pr/ почти не захожу. Я больше по части Лепрозория, но не суть. Вы парни молодые, шутливые, все хорошо знаете и что уж сказать, точно лучше, чем такие старперы, как я, разбираетесь в сабже. Но что если я скажу вам, что вы все — ебанные хипстеры, которые жизни не повидали? О, да...
Много вас по весне оттаяло, парни. Всегда были и всегда будут аутисты люди, которые считают, что %languagename% в стопицот раз лучше, чем эти наши устарелые плюсы. А что если я скажу тебе, что твой хипстерский маня-мирок — не более, чем заблуждение, навязанное такими же хипстерами, как ты? Scala, Python, пусть даже и Java? Не смешите меня, 2015 год на дворе.
Для справочки скажу, что в современном С++ очень много всего поменялось, в сравнении со стандартом 1993 года. А теперь внимание, сейчас я сорву покровы и залезу в твой маня-мирок. В плюсах по-факту уже не надо управлять памятью, как таковой. И это все без сборщика мусора, мой испорченный хипстерский друг.
Когда в плюсы добавили auto, optional, for-range loop, умные указатели, ввели списки инициализации и многое другое, С++ поменялся до неузнаваемости. А что если я скажу тебе, что это не конец? В стандарте C++1z ожидаются новые ключевые слова для прозрачной работы многопоточных приложений и еще добрая куча разных нововведений. И все эти плюшки, которые практически сводят на нет те недостатки плюсов, которыми так смело бросаются молокососы, которые называют себя программистами, вовсе не влияют на рантайм, в отличии от твоего любимого %langname%.
Итт аргументированно обоссу любого, кто скажет, что %langname% лучше плюсов и вообще они старье. Только давайте не как гопники, а по-очереди, девочки.
>>426935 Ты серьезно хочешь, чтобы итт я рассказал тебе про новый современный подход к указателям? Я не препод по С++, прости. Если на этой доске есть хорошие крестоносцы, то они ответят тебе в тематическом треде. А вообще, луркай стэк, там все по-делу разжевывают.
>>426928 Вырвиглазный синтаксис и контекстно-зависимая грамматика
медленная компиляция частые «internal error» в компиляторах код плохо читается и его сложно поддерживать разбор кода различными инструментами, вроде IDE, и его генерация — сильно затруднены ручное управление памятью
неудобства при работе с динамической памятью утечки памяти висячие ссылки сегфолты стандартные средства, как то malloc/new, работают медленно фрагментация кучи велосипедные аллокаторы на каждом шагу которые далеко не факт что эффективнее malloc/new велосипедные счетчики ссылок на каждом шагу, опять же медленная работа перерасход по памяти отладка затруднена написание GC, по факту, невозможно, отчасти из-за (5), (7) и (8) Никакого ABI Нестандартизированный и непредсказумый name mangling Дублирование функционала Си
сами фичи из Си никуда не деваются при этом отчасти из-за того, что по функционалу превосходят аналоги из C++ запутывает новичков malloc — new/new[], free — delete/delete[] препроцессор — шаблоны указатели — ссылки ссылка не может быть NULL, что способствует появлению висячих ссылок и сегфолтов структуры — классы stdio — iostream Стандартная библиотека убога
Отсутствует даже такой функционал, как вменяемая работа со строками и многомерные массивы Юникод? Слабая типизация
способствует ошибкам затрудняет отладку const не дает абсолютно никаких гарантий при этом система типов невероятно переусложенена в основном из-за пунктов (2), (5) и (9) медленная компиляция частые внутренние ошибки в компиляторах объектая система убога
практически никакой интроспекции отладка затруднена передача объектов по значению понятие идентичности объекта теряет смысл добавляет сложностей в управлении памятью добавляет сложностей при отладке используется часто, по причине (2) перерасход по памяти медленная работа множественное наследование неудобно в использовании проблема ромба по дефолту не разрешается никак исключения в конструкторах гарантированно влекут утечку памяти исключения в деструкторах тоже, и просто утечку — еще в лучшем случае коды ошибок деструкторы и конструкторы возвращать не могут ошибки в них не обработать никак поэтому ими стараются не пользоваться раздувание кода деструктор можно вызывать до выхода из блока кода, или до delete гарантированная утечка ресурсов/сегфлот это не предотвратить никак, деструктор обязан быть public одиночная диспетчеризация виртуальные методы в конструкторах не работают реализована убого pure virtual function call сложности в случае с множественным наследованием деструкторы обязаны быть виртуальными по дефолту — не виртуальные никаких интерфейсов, только классы порядок инициализации статических членов классов не определен private, public и protected не дают никаких гарантий сокрытия данных к инкапсуляции же не относятся совершенно никак отсутствие «свойств» вынуждает городить getter'ы и setter'ы раздувание кода размывание интерфейса класса неявно генерирумые конструкторы, деструкторы и операторы присваивания «friend» нарушают инкапсуляцию шаблоны
очень сильно замедляют компиляцию раздувание кода обфускация кода результат раскрытия плохо предсказуем сложности в отладке километровые и плохо читаемые сообщения об ошибках при компиляции нарушают инкапсуляцию обязаны содержать реализацию в заголовочных файлах позволяют генерировать некорректный код исключения
отсутствие finally/unwind-protect заставляет городить классы ради одних деструкторов раздувание кода медленная компиляция медленная работа конфликтуют с другими возможностями языка конструкторы/деструкторы ручное управление памятью работают медленно малофункциональны (ср. CL condition system) По причинам 3, 4, 5, 9 и 10 C++ совершенно неприменим для системного и низкоуровневого программирования. А по причинами 1, 2, 5, 6, 7, 8, и, опять же, 9 и 10 — и для прикладного.
>>426941 К слову, слабенькая у него статья получилась... Он осветил только перки, аля теперь проще задавать списки, а реальные приемущества в долгосрочной перспективе не показал...
Парни, какие-то вы вялые. Ожидал уже к этому моменту увидеть хипстера-питониста, который заливал бы мне про божественную читаемость на самом деле лол пайтона и про то, как там не нужно ебаться с приведением типов и памятью...
Алсо, где хаскелло-дебилы, их нынче много развелось же, да?
>>426954 Ахуеть просто. Так гордились отсутствием типизации, что запилили её. Так стараются быть похожими на взрослые языки, как бы не обосрались в итоге
>>426958 Универсальных языков нет. Есть широко применимые. Например, плюсы. Остальное мода и привычка. Джава - свой энтерпрайз стек. Плюс мобильные кое-как. Шарпы - интерфейсы пилить. Питон - хорошо показал себя в вебе.
Python сразу распологает к себе, потому что внушает обманчивое ощущение, что многие вещи можно делать проще, чем в других языках (хотя зелень не догадывается, что в конечном итоге это все выливается в хуйню), чрезмерно богатая, избыточная стандартная библиотека, которая позволяет делать %taskname% не в 50 строк, а всего лишь в три (хотя тут зелень тоже не догадывается, что обосралась).
Java — энтерпрайз, а C# — потому что винда. Все Mono на деле просто дети и если разобраться в сабже, то это становится очевидно.
>>426961 Ты же понимаешь, что называть порог вхождения недостатков несостоятельно и ты рискуешь быть обоссаным. Контр-пример: японский. У него тоже высокий порог вхождения, но отрицать перки последнего будет только даун.
>>426967 А чего ты хотел, серебрянной пули? Ничего лучше умных указателей пока не придумали. Нет, конечно можно страдать хуйней, вроде сборщика мусора, который только на словах такой пиздатый (это тема для совсем другой дискуссии), но это не the way to go для современных приложений, которые хромают по полной программе.
>>426971 >205 >linux.org.ru Знакомый сисадмин специально вбрасывает там подобные посты на вентилятор, а потом смотрит, как хомячки срутсо. Как-то даже проиграл, спасибо! :D
>>426965 Как выше написали, тот же питон даёт ложное чувство лёгкости бытия. Плюсы стреляют в яйца быстро и чётко. Большим недостатком плюсов считается как раз его сложность - стоимость разработки высока, по сравнению с питоном или явой. И хороших специалистов меньше чем ява-макак. Поэтому часто при старте проекта выбирается более дружелюбный язык. Но часто это выливается в геморрой поддержки и начинаются костыли - cpython, hiphop
>>426973 Опа, а вот и адекваты подъехали, приятно видеть! Ты конечно же прав, на начальном этапе разработки, детские языки действительно дают приемущества, но стоит проекту прожить несколько лет, поменять пару разрабов и что мы имеем? Имеем то, что имеем...
>>426974 Но ты ведь просто вбросил добрую какаху на вентиль, дурилка. Покажи мне юзкейс, в котором лямбды + умные указатели образовывают анальный цирк и может быть я потрачу время, чтобы объяснить тебе, где именно ты обосрался.
>>426970 сборщик мусора возможен для ситуаций, когда не важна скорость работы, типа C#/Java сред, ведь писать программу со сборщиком мусора удобнее чем программу с shared поинтерами, например.. правда со сборщиком мусора тоже проблемы бывают, например, не достаточно часто вызываться может, так что серебряной пули конечно же нет чтобы отстрелять себе все ноги, ага
на деле все пользуются тем, что хозяин велел - C или C++ для системного ПО в Windows и UNIX, Obj-C/C++ для iOS, C# для Windows Phone, Java и C++ для Android и т.п.
какая-то свобода выбора есть в скриптопараше (вебщики - вам в этот пункт), но на то она и скриптопараща, что вообще похуй :3 пиши хоть на баше шутки
>>426980 >пиши хоть на баше Шутки-шутками, а я знавал одного товарища, который в свое время очень долго допиливал баш до состояния веб-языка, потому что искренне верил, что у него есть широкий потенциал. шизики
>>426928 Но ведь если использовать всё: смартпойнтеры, STL контейнеры, остальную малафью - тормозить будет как в питоне. Не надо мне говорить как оно не влияет. Сила крестов/говняшной как раз была в читинге, возможности выебать байты и сильно ускорить числодробилки.
ОП, проблема в том, что мы все молодые и шутливые,а нас учат не такие прогрессивные плюсоёбы как ты. И когда я например впервые увидел пистон, я забыл к чертям всю эту байтопарашу, потому что знал только хуйню, такие дела.
Двачеры, я тут какое-то время был в отрубе. Сейчас пришел в себя и снова готов отвечать на ваши зеленые вопросы.
>>426994 Емнип это все дело пофиксили еще в релизе 14 стандарта, когда добавили лямбдам move-семантику.
>>427059 Вот не надо на учителей гнать. В интернете более чем достаточно материала. На том же stackoverflow можно освоить все попало. Главное — желание, а для пистона и его не нужно.
Но зачем нужен до нелепого переусложнённый язык с контекстно-зависимой грамматикой, без классов типов, алгебраических типов, сопоставления с образцом, и какого-либо статического контроля безопасного использования памяти (а так же без системы макросов и расширений для компиляторов, сделанной для людей)? Почему бы просто не использовать Rust?
>>427095 Может потому что Rust, как язык, еще не существует? Вот когда эта штука отметит свой n-ный релиз, народ примет ее философию, появится несколько фреймворков и тд, тогда и поговорим.
>>427103 Ну блять, никто в 2015 не будет на чистых Си писать продукт, ты опять обдолбался, зелень. ООП это мастхев, стандарт индустрии. У нас с тобой не конец ХХ века, когда можно было писать спагетти. Единственная ниша Си, которая осталась — микроконтроллеры и программирование сетей (спорно). На плюсах довольно быстро, имея опыт, можно строить-разворачивать большие приложения. Особенно, если использовать такую няшу как Qt и/или boost.
>>427107 так это, ОП, мой любимый руби на Си и нормально, Матц тебе привет велел передать, но ты как-то по-вузовски вещаешь, поэтому привет пока полежит.
ты часом не преподаешь, а?
и, да, кстати, ВК уважает именно Си программирование. ну так, вдруг ты знал и забыл
>>427111 >так это, ОП, мой любимый руби на Си Во-первых, речь о продукте, а не о языке программирования / виртуальной машине / etc, а во-вторых, посмотри когда создавали рубины. Последние, к слову, тот еще кал, но это уже другая история. А создавали их в начале 1993 года, во время срачей, "что же лучше Си или С++". Если брать это во внимание, то становится ясно, что Матц таки обосрался.
>ты часом не преподаешь, а? Нет
>и, да, кстати, ВК уважает именно Си программирование. ну так, вдруг ты знал и забыл Меня мало интересует мнение отдельно взятой компании.
>>427112 Зелень, блять, перед тем, как срать тут, почитай, что предлагают добавить в стандарт C++1z. А конкретно я говорю о ключевых словах async и await. Что тебе еще надо, блять? Высокоуровневый подход к потокам? У Qt, например, есть QtConcurrent, я не жалуюсь.
А вообще да, без фреймворков и оберток, потоки в плюсах сосут, но в этом направлении работают.
>>427117 >прост, не вижу смысла брать в руки ружье, если мясо уже в магазине купить можно Ты опять сравниваешь стандарт С++ прямиком из 1993 года с современными детскими языками, вроде Python или Scala. Упаси господь, если сравниваешь с нодой.
>хочу для себя понять, зачем писать сейчас на спп что-то с чистого листа Может потому что это современный, эффективный, гибкий, расширяемый и прозрачно поддерживаемый язык?
>>427126 >2015 >пример проекта, оторый логично писать с нуля на плюсах. Вангую, ты либо объелся говна, либо совсем конченный. Сегодня абсолютно все построено на фреймворках. Пример проекта? Блять, да это может быть что угодно. Бразуер, приложение на энтерпрайз, вычислительные приложения, редактор %formatname%, рисовалка, тысячи их.
Если бы я хотел написать какое-то десктопное приложение, то делал бы это на стеке Qt + clang последних версий. В данный момент, грубо говоря, это Qt 5.4 и clang из svn (полная поддержка C++14 и частичная еще не вышедшего C++1z).
>>427114 ну странный ты оп, тебе говорят Руби рулит, а ты споришь. ну ладно.
на самом деле, ты бы руби попробовал, поработал с месяц, а после рассказал, что да как. на самом деле си был выбрал как раз за скорость и за стабильность.
плюсы-то уже тонну раз кожу сбросили, а си стоит. и норм.
про ВК тоже зрят так. где логика, оп? логика вот в чем: ядро команды ВК это победители олимпиад, чуваки с упором на СИ + Дурашка-харизматик для них + грамотная команда манагеров.
теже одноклассники срали и на си и на плюсы, так просто команда манагеров пожестче и все дела. и пишут на яве. сейчас спят наверно) а ты треды листаешь.
ну давай уже напиши, что там на плюсах пишут один-на-один с кодом и я тоже спать пойду.
>>427129 Я тебе говорю, что рубины — кал, потому что у меня есть опыт работы с ними на аутсорсе. Даже, блять, в штатах, где они были ну просто в шоколаде, пик их популярности прошел.
>про ВК тоже зрят так. где логика, оп? логика вот в чем: ядро команды ВК это победители олимпиад, чуваки с упором на СИ + Дурашка-харизматик для них + грамотная команда манагеров Раскрою тебе секрет, победители олимпиад по программированию в 95% случаев — это люди неспособные писать поддерживаемый и стабильный код. Говорю, не потому что завидую, а потому что приходилось работать с парой призеров ACM в одном проекте. Я в свое время тоже участвовал в студенческих оллимпиадах и занимал места. Это учит другому, это учит алгоритмическому мышлению. Написание хорошего кода — это искусство.
>теже одноклассники срали и на си и на плюсы, так просто команда манагеров пожестче и все дела. и пишут на яве Говорю тебе, меня мало интересует отдельно взятая команда. Если собрали бибизянок, которые могут отличить виртуальный класс от интерфейса, то молодцы ;)
>>427130 >оп, браузеры уже есть и в команду тебя не берут Почему не берут? ;)
>чуваки из гугла и яндекса в бордах время не тратят Я работал в первой несколько лет и в итоге ушел, сейчас тружусь в стартапе. И открою для тебя секрет, тратят, да еще и по полной программе.
>но я еще жду, что ты напишешь что именно ТЫ предлагаешь писать на цпп А может тебе сразу коммерческий концепт подкинуть, желательно, с эскизами?
>>427136 так я все к тому, что пофигу на чем писать. пока ты пишешь код, кто-то тебя нанимает. и даже когда ты продаешь свою работу за тысячи денег, кто-то ее покупает.
спор пустой. можно так же и про деньги начать: я современный рублевый миллионер, а те макаки с одеса, у которых час работы 50$ в очередь - буду кормить горячим и салатами.
хоть пожрете
в общем я сать, думаю ты понял, что цпп ни цпп один хрен.
>>427137 Серьезное замечание, но многие упускают из виду факт, что в долгосрочной перспективе, те же кресты эффективнее джавы получаются. Почему? Да потому что через пять лет спагетти, которое накрутили обезьянки-джависты, будет нереально поддерживать, а код, написанный на крестах, можно будет легко дебажить.
>>426928 ОП если ты тут помоги пожалуйста. Как пробиться в С++ девелоперы и что нужно знать нормальному пацану? Есть куча ваканский для Java juniorov, а вот стартовых вакансий именно в С++ встречается мало. Сам я уже пару лет подрабатываю быдлокодингом на Си под всякие микроконтроллеры.
>>427161 >на Си под всякие микроконтроллеры а чем это не устраивает?
по C++ спрашивают алгоритмы и структуры данных (STL) и их сложность по CPU/памяти, паттерны ООП, параллельное программирование, сейчас ещё по всяким фишкам C++11 вопросы часто бывают, ну и классическое сишное "найди баг и исправь" + пара проектов и ты уже мидл/сеньёр-помидор
>>427166 >а чем это не устраивает? вакансий мало, заплата тоже очень сильно скачет. Ну и вообще если смотреть по отросли то значительно больше получают люди которые умеют всякие Linux'ы под МК запускать, тут как раз и нужно знать С++. Самый главный минус это наверное какое то жуткое однообразие самого программирования под них. Сейчас пока учусь в универе, интересуюсь машинным зрением хотелось бы реализовать себя в этой области. Посмотрел вакансии основные требования либо уметь в FPGA или в С++. К слову сказать не с первой и даже не с второй попытки, таки осилил Страуструпа. Но учусь не на программиста, поэтому не очень имею представление о том что я должен знать и уметь что бы меня посчитали за нормального пацана при устройстве на работу, а не подумали что я кодю как мудак.
>>426928 ОП, скажи, как научиться плюсам, если в работе используешь только чистый как слеза Си? Страуструпа читал, но толку ноль: без практики все забывается через неделю, а практики нету. Откуда взять задачи? Увольняться с нынешней Си-работы и идти искать место падавана плюсеров с зп 15 круб/месяц не катит. Вонзать плюсовый код в свой нынешний Си-проект низя.
>>426928 Что, действительно не нужно ручное управление памятью? Тогда несколько вопросов: 1. Как эти умные указатели разбираются с циклическим мусором? 2. Что делать с деситилетиями накопленными библиотеками, которые не используют умные указатели?
>>427223 >Как эти умные указатели разбираются с циклическим мусором? никак. но и создать их сложновато при грамотном использовании смарт-птр.
>Что делать с деситилетиями накопленными библиотеками, которые не используют умные указатели? ничего. работали - пусть дальше работают. ну и ручное управление паматью никто не отменял
>>427107 > Ну блять, никто в 2015 не будет на чистых Си писать продукт, ты опять обдолбался, зелень. ООП это мастхев, стандарт индустрии. >>427114 > Меня мало интересует мнение отдельно взятой компании. Понятно
>>426928 Лучше бы не трогали плюсы, рили. Недавно опять обмазался шарпом и обосрался с этих стрелочек и прочей магии. Таким макаром ссаный руби получится. Теперь с этими плюсами11 ньфаги нажираются говна и пишут ебаный пиздец, который осталось только морзянкой зашифровать. Пиздец короче.
>>426970 >Ничего лучше умных указателей пока не придумали Лучше статически выделять память при запуске программы. Если нужно выделять динамически - брать постранично. Умные указатели - отрыжка ООП и путь в жабомирок.
>>427213 работа у меня само собой одна, и та на подсосках у одного единственного еммбедера у меня в городе(препод в моем ВУЗе). Стратуструп и его первый пример с калькулятором изуродовал мою психику навечно.
>>426928 Нет хороших и плохих языков, рембо ты комнатный. Языки можно рассматривать как "плохие" и "хорошие" только в контексте их соответствия решаемой задачи. И таки реалии решаемых в индустрии задач по состоянию на 2015-й таковы, что в ынтерпрайзе кресты делают джава и сишарп (со всеми своими обвесками из костылей вроде либ и scal), гостевухи проще писать на динамикодрисне, в мобильных приложениях те же джава, шарп и вообще что угодно кроме крестов. Страуструп++ еще как-то жив в десктопе и в гей-деве, так что для десктопа и гей-дева это действительно неплохой язык, для всего остального - откровенно хреновый. Алсо, рантайм - ничто, нет предела дрочке на оптимизацию, важно лишь соотношение скорости написания кода к его стабильности и поддержке.
>>426976 Имеем то что каждый хочет поменьше гемороиться с кодом и решает задачи наиболее коротким затычечным путём. Наличие большого покрытия тестами не просто поощряет такой подход, оно его форсирует. В итоге я полгода ебался с уже написанной до меня хуйнёй которую можно за две недели написать с чистого листа. 2к строк тестов, декларативность и модульность кода посланы решительно на хуй. И это ебаный питон/джанга. То что творится в игровом движке на C++, который мне довелось трогать, это совсем пиздец. Сильно изменённый idTech3, по сути уже всё готово, но нихуя, его допиливают уже несколько лет, и результаты не впечатляют совсем. Бесконечные фиксы сегфолтов, переписывания подсистем и памагите_не_компилируется_на_микроволновке.
>>427352 >То что творится в игровом движке на C++, который мне довелось трогать, это совсем пиздец. Пекаигры середины нулевых - это такой особый заповедник кириллов.
>>427220 >ОП, скажи, как научиться плюсам, если в работе используешь только чистый как слеза Си? Я не он, но не пройду мимо. Возьми MISRA-C и пиши согласно этому стандарту, он промышленный. Спрос на эти знания/умения ещё будет. >Вонзать плюсовый код в свой нынешний Си-проект низя. И не надо. Никто не мешает добавить вложенные функции (nested functions), пространства имён, замыкания и лямбды. Получится тот же K&R C.
>>427220 Ай ноу вот ю фил. Контроллеры программишь? Правда еще приходится писать десктоп на C++. Сам ленивый хуй-перфекционист, кресты вызывают отвращение. Или задача на каком-либо языке решается просто но неэфективно - это честно. Наоборот - тоже честно. А кресты - срань. На самом деле я просто оправдываю свою лень
>>426928 С++14 тупо прописали дохуя большие числа и пизданули такой раздел, как "длинная арифметика", из за чего и запрещен на ACM ICPC, поэтому-то и хипстеры бегут к Питону и тд
>>426928 >Современнный С++ Nice try, shill. Дибилушка задрочил плюсы хуй знает за сколько лет и теперь пытается свой манямирок экспортировать в неокрепшие умы, просто проигрываю смотря на эти жалкие потуги, при этом понимая, что со своими плюсами он так и будет продолжать сидеть у параши. Каково это осознавать, ОП?
Я думал, что питонопетушки сольют тред, так что сутки ваще не заходил. Ну вот, я вернулся и готов раздавать новые подзатыльники зелени и прочим хипстерам.
>>427220 С и С++ это два разных языка по-факту. Страуструп хуесос, читать его — пустая трата времени. Твой выход — это FOSS. Попробуй разобраться в плюсах на уровне, чтобы понимать, что написано. Начни осваивать Qt (люто, бешенно плюсую), читай его исходники. Придерживайся его стиля кодинга и марш в KDE, пилить какие-то проги. Неплохим выбором будет Konqueror, у него есть перспективы, но хромает... Просто много читать, много писать. У тебя все получится. Если хорошо пишешь на Си, то через пару лет запишешь на плюсах.
>>427262 А что, теперь в гуглу берут только обоссаных детишек, строго 25-? Может напомнить тебе про команду девов Search Quality или AdWords?
>>427278 Еще один дурачек заглянул итт. Японский — это aka один из самых распространенных языков и его надо знать, чтобы не упускать возможности поговорить с человеком нативно. Это внушает доверие...
>>427424 Почитал бы лучше внимательно changelog, дурочка. А про свой сферический ацм в вакууме лучше рассказывай в другом месте. Спорцмэны — не нужны
>>427475 Работы были многовато, блять. А еще эти тянки, ну ты понел))
>>427538 Спрос на хороших С++ программистов был всегда, а хипстерская мода на всякую хуйню и Java-обезьян — это всего лишь мода. Как и любая другая мода это пройдет.
ОП даун, который либо вообще студота, жизни не видавшая, либо максимум 0.5 года в бодишопе пашет: такой-то ореол самоочевидности и просто зашкаливающий уровень незнания как банальных CS истин, так и просто эксистем ВМ языков и их областей применения.
ОП, С++ громадина, что нужно знать из того, что применяют в реале? Что за идиотизм со строками? Зачем так дохуя разных char*, string, wstring, xxxxstring, когда в остальных языках всего один тип для строк и этого хватает для написания сложнейших вещей?
>>427687 > хватает для написания сложнейших вещей Перекодируешь и копируешь туда-сюда при вводе, при выводе, при поиске, при подключении либ на других языках, что еще забыл? Ах да, stringbuilder-ы.
>>427687 Потому что во времена начала написания щщейпласплас не было еще ютф везде, ибо не хватало памяти на него, а теперь они тащат это говно с собой для обратной совместимости.
>>427613 > Начни осваивать Qt Но ведь Qt — раздутый комбайн. Или у вас в С++ так принято: КАК МОЖНО БОЛЬШЕ КОДА, КАК МОЖНО БОЛЬШЕ КОМБАЙНОВ, ОБЯЗАТЕЛЬНО ВСЁ В ОДНУ КУЧУ? Хотя… это объясняет библиотеки вроде BOOST'а.
>>427687 >что нужно знать из того, что применяют в реале? Стандартная библиотека, алгоритмы, лямбды, классы (там достаточно обширная тема), нужно хорошо понимать, что какой тип делает и как правильно заюзать ту или иную фичу.
>Что за идиотизм со строками? Зачем так дохуя разных char, string, wstring, xxxxstring, когда в остальных языках всего один тип для строк и этого хватает для написания сложнейших вещей? В современном С++ вообще не нужно использовать char, вообще нигде. Ну, разве что при работе со старыми библиотеками, но там ты все равно будешь перегонять его из/в std::string.
>>427715 Ну, если ты мне хорошо за это заплатишь, то я даже и не против.
>>427747 >Qt — раздутый комбайн Ты, на самом деле, дебил. Qt — это обширный фреймворк, грамотно разделенный на много разных библиотек. Минимум для любого приложения — QtCore. Хочешь добавить Qt Quick? Тянешь QtQml и QtQuick сверху. Нужна поддержка баз данных? Добавляешь QtSql. На самом деле, Qt, в отличии от библиотек в Python, нихуя не избыточен, там ровно те фичи, которые тебе нужны. Единственное, что мне в нем не нравится, так это MOC. Но я искренне надеюсь, что что-то вроде мета-объектного компилятора добавят в следующих стандартах плюсов.
>>427791 Отвечая на твой первоначальный вопрос. От трех до пяти лет, как обычно. Я бы не стал брать в свою команду специалиста с менее, чем тремя годами опыта, потому что понимаю, что он еще зеленый. Так и есть на самом деле. Web-программирование? Нет, С++ для этого не годится и я готов обрезать пальцы всем тем людям, которые кодят веб на плюсах и тем более, тем, кто соотв. библиотеки кодят.
>>427817 А теперь тебе скажу, мой друг. Посмотри, как часто в коде встречается QString и char*. Может быть, потом, до твоего ограниченного мозга дойдет, что я имел когда говорил, что >в современном С++ сишные строки очень редко используют
Просто типичный петух, вошедший с Delphi на С++ вдруг видит кучу * и &
Конечно, согласен, эти операторы - самое спорное, что есть со времен Си в программировании.
Но те же петухи даже и не догадывались, что в их Delphi все это тоже было, но программировать можно было и без этого.
В С++ тоже можно программировать без этого, и применять указатели только там, где это ну прям точно нужно.
Типичная ошибка входящего в мир С++ - не понимание, когда нужно динамическое размещение объекта, а когда - статическое.
Какие есть плюсы у С++? 1. Стандарт и компиляторы на любую платформу. Я не хочу подстраиваться под каждое желание пятки какого-нибудь Гвидо... 2. Документированность и универсальность. На нем реально пишут бек-энеды. Кто-бы там что не кукарекал про "В ВЕБЕ НЕ НУЖНО!!!!" 3. Быстродействие.
Минусы 1. Слишком много возможностей сделать что-то не очень правильно. И найти инфу, как сделать это правильно - порой невозможно. 2. Сложность сборки и компиляции под некоторые платформы.
>>427823 Java, C# и C++ по сути инструменты равного калибра.
Но сложность вхождения самая большая у C++ (не из-за языка, а из-за громадного количества разносортных технологий вокруг него, нужных и вообще нахуй не нужных), потом Java и C#
>>426928 >Современнный >С++ >2015 съеби назад в свой гейдев, мразь, тебе послезавтра очередной йоба-шутер релизить или мамонтовое cgibin фиксить вообще охуеть, повылазило
>>427823 >Мань, ты обосрался. >приводит какую-то сферическую статистику по рашке Я ничего не знаю насчет среднего программиста, но в моей команде джуниор получает $2K. Я вообще в шоке, как люди за косарь могут кодить. Это ведь зарплата уровня пролетариата...
>>427835 Я тебе говорю, что приведенные в той статье зарплаты, для меня просто (смех). И как часто ты пишешь лоу-левел код или читаешь сокеты, например? Это то, что называется редко.
>Никак с QString это сравнить нельзя. Близким будет контейнер QByteArray. Спасибо, я получше тебя разбираюсь в кьюте, можешь не утруждаться разъяснениями.
>>427846 Я не собираюсь пруфать место своей работы, идиот. Тем не менее, я в шоке от того, как обезьянам, которые называют себя программистами, хватает чувства собственного достоинства, чтобы кодить меньше, чем за $5k.
>>427847 Но ведь пимпл и сокрытие приватных полей — это детсад. Если я бы на твоем месте хотел бы выебнуться, то спросил бы, как MOC строит таблицы методов и как устроенны асинхронные QObject-вызовы на низком уровне.
> Я вообще в шоке, как люди за косарь могут кодить > Тем не менее, я в шоке от того, как обезьянам, которые называют себя программистами, хватает чувства собственного достоинства, чтобы кодить меньше, чем за $5k
определиться не можешь, Мань? Альзо, всем похуй от чего ты в шоке - пока что ты никто и звать тебя никак.
>>426928 >Итт аргументированно обоссу любого Удобную позицию ты выбрал. Давай лучше ты аргументированно пояснишь, в каких таких задачах использование цпп оправданно, а мы тебя аргументированно или не очень обоссым.
>>427861 Ну вот и выходит, что кресты ни веб ни мобайл не покрывает, сейчас при небольшом разборе мы придём к выводу что в тырпрайзе крестопердолинг тоже не нужен, как и на любых серверах, и останется только ёба-графен и большие десктоп прилаги.
>>427866 Я так понимаю, что ты слился, зелень? Или может спросишь у меня какую-то хуйню, вроде того, что ты спрашивал раньше? Кстати, вопрос на вскидку, размять твои зеленые мозги. Знаешь, как qrc сжимает файлы?
>>427870 Но тырпрайз это сишарп/джава, промышленные паттерны, дипенденси ижекшн, композиция, интеграция, расширяемость, спринг, орм, всё вот это. Куда там грязным крестоблядям до такого.
>>427857 Использование С++ оправдано везде, где не насрать на производительность рантайма и потребление памяти. Использование С++ оправдано везде, где команда нуждается в мульти-парадигменном и гибком языке, способным подстраиваться под различные платформы и архитектуры.
Короче говоря, не найдет применения среди хипстеров и 15-копеечных обезьян, что кодят софт для винды на C# или пишут приложения на Android.
>>427897 А аргументы где? >в мульти-парадигменном и гибком языке, способным подстраиваться под различные платформы и архитектуры Мы про цпп, тащемто. CL-то тут при чем?
>>427897 >где не насрать на производительность рантайма и потребление памяти Ага. А код, написанный вручную на ассемблере, эффективнее сгенерированного компилятором. Проходили уже.
Мань, дискуссия будет окончена когдя я сочту ее закончившейся. Пока что кроме ругани и широкоизвестных фактов не привел ни одного конкретного примера области применения C++.
>>427915 Нет. Он намекает, что не нужно разбираться в оптимизациях и не нужно в профессиональный рост, когда можно писать говно как хочется, которое потом его JIT компилятор будет оптимизировать.
Так, я понял, что происходит. Тред зохвачен java-макаками и python/сlosure/lisp-зеленью. Это все конечно забавно, как эти неуклюжие хипстеры, которые так и не научились за свою жизнь писать качественный код, пытаются что-то кому-то доказать, но... когда итт уже появятся настоящие программисты?
Мань, ты понимаешь, что качество программиста не зависит от языка, который он использует? Продолжая кукарекать ты все шире и шире выставляешь напоказ свою юность и неопытность.
>>427926 Толсто же. Как раз среди цпп даунов никто не может в архитектуру, это те же байтоёбы с указателями, только с прикрученным сбоку кривы ООП который они не умеют использовать и шаблонодриснёй.
>>427931 И что ты мне предлагаешь? Копаться в тоннах синтаксического шума в поисках смысла? Нет уж. Знаешь, что там качественный код - так продемонстрируй его.
>>427933 Пока в крестоблядске дрочат низкоуровневое говно, оптимизации, и тысячи косяков самих же крестов, в джяваленде учат абстракцию, декомпозицию, структурный анализ, OOD, SOLID, читают Фаулера и Макконела.
Я не восхваляю кресты, я просто говорю, что более совершенного языка пока что не придумали. С другой стороны, кодить под мобильные платформы на нем не стоит, ввиду отсутствия инструментария (NDK выглядит, как костыль). Чем вызвана популярность джавы? Тем, что у нее заниженный порог вхождения, поэтому каждый подзаборный хач уже через 3 года работы может вырваться в синьоры.
Есть годные Java/Python/C#-программисты, но они встречаются оче оче очень редко, в основном это макаки. А в плюсах все гораздо проще, ты либо стреляешь себе в ногу и это видно сразу, либо ты этого не делаешь, что тоже, внезапно, сразу видно.
Я говорю это не потому что у меня широкая фантазия, а из своего жизненного опыта. Дети мои, это реальность... Но ничего, рано или поздно вам все равно придется снять свои рэйбэны.
>>427934 Он попросил хороший код — я ему показал оный.
>>427936 Я не раз отправлял в chromium патчи и неплохо знаю несколько разделов кодбазы, но нет. Я не буду тебе ничего искать. Хочешь найти хороший код — так найди его.
>>427952 >обещанные аргументы Я нигде не обещал приводить аргументы к своим же высказываниям. Мои высказывания сами по себе — кладязь, и вместо того, чтобы бросаться какашками, вы, хипстеры, могли бы это себе на ус наматывать.
>>в плюсах все гораздо проще ты вырвал из контекста: >А в плюсах все гораздо проще, ты либо стреляешь себе в ногу и это видно сразу, либо ты этого не делаешь, что тоже, внезапно, сразу видно.
В джаве из-за jni и gc очень легко пропустить момент, когда ты обосрался. А серунькают в штанишки 96% java-программистов и 100% java-обезьян.
>>427951 >Аргументов, все? Каких, блять, аргументов? Я тебе лишь намекнул, что всё тобою перечисленное уебищно в одинаковой степени. >Ты знаешь как писать на этом брейнфаке? А то! Даже интерпретатор bf на нем писал.
Эх, я даже скучаю за былыми временами и ФП-илитариями. Они бы оперативно загнали всё это МУТАБЕЛЬНОЕ БЫДЛО под шконарь и принялись бы пить чай за 8000 евро и обсуждать йобаморфизмы. А так это обычный толстотред с невнятным кукареканьем в обе стороны.
>>427976 >Теорема CAP (известная также как теорема Брюера) — эвристическое утверждение о том, что в любой реализации распределённых вычислений возможно обеспечить не более двух из трёх следующих свойств: > согласованность данных (англ. consistency) — во всех вычислительных узлах в один момент времени данные не противоречат друг другу; > доступность (англ. availability) — любой запрос к распределённой системе завершается корректным откликом; > устойчивость к разделению (англ. partition tolerance) — расщепление распределённой системы на несколько изолированных секций не приводит к некорректности отклика от каждой из секций. Лучше б ты эти десять лет продвачевал. Не, серьёзно, как можно было потратить 10 (ДЕСЯТЬ!) лет на такую парашу на теорему, не на двач?
Слышь эта, ОП, я с тебя спрошу, а ты уж ответь. Среди анонов ты уважаемый оратор, естесс, но вот мужики знать хотят.
Смотри, вот знаю я плюсы или си, не суть. Вот решил чтобы пацаны были в кодинге, сиплы-то сложные, сам знаешь.
Но вот что джава, что питон, что руби, да вот даже похапэ - ну или на си или на сиплах накатали.
Вот теперь разъясни мне по чести - почему другие мужики могут написать для других, а ты нет? Это потому что ты хочешь, чтобы все только за деньги делали? А другим помочь - никак? Обоснуй.
Смотри, не ответишь - пидорасом будешь дальше ходить. А так есть шанс подняться.
В моей команде, кстати, пацаны денег за срр не получают, но я им разрешаю писать на чем сами хотят.
Если человеку не нужна производительность, он ни за что не выберет С++. Как минимум потому, что там нет встроенных библиотек для интернета, графики, криптографии и т.д. Тех библиотек, которые в других языках используются постоянно.
Использовать сторонние? Окей, но в QT-шных надо таскать за программой миллиард динамически линкуемых либ, майкрософтовские не запустишь на линуксе, буст не имеет библиотек для графики и куча, блядь, других проблем, которые в других языках искоренены!
А если человек не аутист, не идиот и не студент - то он пишет на С++ только в том случае, если ему нужна высокая производительность. Например, я использую Win32+Direct3D. И БЛЯДЬ, ЕСЛИ В МОЕЙ ПРОГРАММЕ БУДЕТ ХОТЬ ОДИН УМНЫЙ УКАЗАТЕЛЬ, ТО НИХУЯ Я НЕ ПОЛУЧУ НОРМАЛЬНУЮ БЫСТРУЮ РАБОТУ! Мне, блядь, надо 60 раз в секунду обрабатывать огромные объёмы данных. Без прямой работы с памятью это невозможно.
Ещё раз: эти ваши умные указатели НАХУЙ.НИКОМУ.НЕ НУЖНЫ.
>>428124 Не плюсовик, но отвечу. > МЕДЛЕННЫЕ ОНИ, СУКА! МЕДЛЕННЫЕ, БЛЯДЬ! Что там может быть такого медленного? > Если человеку не нужна производительность, он ни за что не выберет С++. Проблемы с производительностью бывают не только от дефицита байтоёбства, но и, к примеру, от сборки мусора, которая в неподходящий момент решает, что мир может и подождать. > Мне, блядь, надо 60 раз в секунду обрабатывать огромные объёмы данных. Без прямой работы с памятью это невозможно. Что мешает достать сырые указатели из умных в нагруженных местах? > Ещё раз: эти ваши умные указатели НАХУЙ. НИКОМУ. НЕ НУЖНЫ. Да, давай пердолиться с сырыми указателями и сегфолтиться.
>>428126 >Что там может быть такого медленного? Библиотечные тредобезопасны и оттого тормозят. Поэтому лучше навелосипедить свой простенький счетчик ссылок, а между тредами передавать каким-то другим способом.
На самом деле тормоза обычно не из-за умных указателей, как таковых, а из-за архитектуры. Активное использование умных указателей обычно означает джава-стайл ООП, а такая архитектура быстрой не может быть по-определению: постоянные индирекшны, пойнтер чейз, невыровненные данные, нелинейный доступ к памяти и т.д.
>>428124 >что там нет встроенных библиотек для интернета, графики, криптографии и т.д. Для крестов вагон сторонних либ на любой вкус. В "других языках" стандартную либу обычно можно использовать только для самых очевидных вещей, шаг в сторону, и надо велосипедить, особенно по части графики.
>кресты самый совершенный язык в мире пок пок >учится за 3-5 лет >для веба не подходит >для мобайла не подходит >серебряной пули не существует >я не буду ничего аргументировать
Ох уж этот кресточервь. Сейчас можно быстро отсечь десктоп под шиндовш, т.к. на сисярпе это делается куда комфортней, тырпрайз, так как кому нахуй нужно низкоуровневое крестопердоленье в мире где все проблемы решаются докупкой серверов и конкурентный серверсайд, так как в крестах ничего умнее чем дрочиться с локами и синхронизациями за 30 лет не придумали, ну и останется для крестов только графен и линукс гуйня местами.
>>426928 А побырику можно поднять вебсокет чятик на этом вашем цпп? Ну так чтоб просто поставить двигло, фреймворк, либу, описать конфиг, отмапать ивенты по колбекам, тесты и сдать проект через день, попивая смузи у себя в старбаксе? Или для этого тоже надо 3-5 лет учиться?
>>428253 Нет конечно, ты что так ничего и не понял? Крестопидары - это задроты из 80-х, которые до сих пор думают что программирование - это пидоринье байтиков и дрочь с памятью. Наличие у них ООП, шаблонов и даже некоторых зачатков ФП тебя смущать не должно, это всё те же зашоренные ретроградо-питухи, только с дохуя завышенным ЧСВ, так как им понадобилось потратить 5 лет(sic!) чтобы выучить всё это говно. На вопрос "нахуя?" обычно следует атомный батхёрт и обвинение всех, кроме крестоблядей в макакинге, неосиляторстве и прочих незнаниях жизни. В общем-то всё в стиле приклейтед.
Быть крестопидором не по нужде, когда больше ничего не подходит (к счастью, таких областей почти не осталось) - лютый зашквар и пиздец в любом нормальном обществе. Человек кричащий что он любит кресты - либо болен, либо зелен и толст.
>>428261 >программирование - это пидоринье байтиков и дрочь с памятью Так и есть, особенно если надо выжать максимум производительности. Пидориться с памятью и байтиками приходится и в жабке и в дудке, и даже в пистоне. Только там это делать гораздо сложнее.
>>428269 >купить плашку память за 2к рублей Всем пользователям твой проги ты тоже будешь плашку покупать и процессор менять? Особенно смешно смотреть, например, на владельцев SmartTv с гипертормозными приложениями. Уверен, писать на жабе под них придумали петушки вроде тебя.
>>428276 Ну я говорил про сервер, про приложение хуй знает, если десктопное, я не знаю ни одного человека с меньше 4 гигов оперативки, да даже если 2 гига это просто овердохуя, можно писать любое говнище, про телефоны то же самое, выставляют говнище, мониторят вылеты и память, исправляют это да и все, пидорь байтики и дальше, хуесос.
>>428279 >Ну я говорил про сервер В веб-страничку ты все не запихнешь. >выставляют говнище, мониторят вылеты и память, исправляют это да и все, пидорь байтики и дальше, хуесос. Скриптопетушок сломался, уносите.
>>428280 >В веб-страничку ты все не запихнешь. Что все блядь, ты о чем вообще, если про фронтенд, там вообще ебошат жирный и неповоротливый Jquery, который жрет просто пиздец и ничего, всем нравится, пользователи плашки не ставят, никто с байтиками не ебется
По-моему ты застрял в своем манямирке, где умение ебаться с байтиками это илитность. Это уже давно никому не нужно, просто вам печет, что вчерашний студент может написать говнокод отвратительного качества и нечитаемый, и все будет работать точно так же, как ваш илитный код. Никто никогда не заметит разницы на современном железе, вам просто печет, что любой быдланчик с улицы сделает вашу работу и заменит вас как ненужный мусор, вы прошоое, вы не нужны.
>>428281 >если про фронтенд Пиздец, да у тебя вебпараша головного мозга. В браузер сложно запихать приложение сложнее калькулятора даже на современных компах. Жабоскрипт, даже современный - тормозная параша, да еще и без тредов, граф страницы - еще более тормозная параша, с такой базой далеко уехать нереально.
От десктопа никуда не деться, если нужно хоть что-то более-менее навороченное. Опять же, на мобилочках, если нужны возможности чуть выходящие за пределы морды к серверу, приходится ебаться с байтиками.
>умение ебаться с байтиками это илитность Это не илитность, а базовый навык любого программиста.
>Это уже давно никому не нужно >любой быдланчик с улицы сделает вашу работу и заменит вас как ненужный мусор Чем больше петушков так считают, тем выше моя job-security.
>>428281 >любой быдланчик с улицы сделает вашу работу и заменит вас как ненужный мусор Пыхомакака считает, что сможет заменить кого-то кроме другой пыхомакаки.
>>428287 > Жабоскрипт, даже современный - тормозная параша, да еще и без тредов, граф страницы - еще более тормозная параша, с такой базой далеко уехать нереально. Servo, когда будет готов, решит проблему с многопоточностью и графом страницы. Что касается тормозов js, то во-первых, реализации совершенствуются, во-вторых, есть asm.js в который можно скомпилировать даже С++.
>>428267 >особенно если надо выжать максимум производительности Где нужно маххххиум производительность в эпоху клаудов, кластеров и датацентров? Правильно, в гейдеве, в имбедеде, может быть в системщине, всё. Последние два спокойно можно вести на Си, остаётся блять один гейдев. И то сейчас железо позволяет обходиться без всяких низкоуровневых оптимизаций.
>>428280 >>В веб-страничку ты все не запихнешь. Ещё как запихнёшь. Веб уже давно обогнал десктоп и продолжает расти, а десктоп, скоро люди забудут что это.
>>428291 >есть asm.js в который можно скомпилировать даже С++ Ты кроме крестов и сишечки ничего туда и не скомпилируешь. В чем тогда смысл спора? >когда будет готов, решит проблему Ну вот тогда и возвращайся
С учетом того, что за последние 10 лет частота процов не выросла, а растет только число ядер, на помойку скоро начнут выкидывать как раз managed-OOP петушков (не сразу, конечно, думаю еще лет 10 будут пытаться натянуть жабку на современное железо).
>>428293 >Где нужно маххххиум производительность Практически в любом десктопном приложении сложнее морды к БД.
>Веб уже давно обогнал десктоп и продолжает расти Кроме каличных текстовых редакторов, я что-то в вебе никаких средств создания контента до сих пор не видел.
>>428295 > Ты кроме крестов и сишечки ничего туда и не скомпилируешь. Любой язык, что компилируется в LLVM, туда запихнуть можно. Кстати, Idris компилируется в JS уже сейчас.
>>428287 > Это не илитность, а базовый навык любого программиста. Правильно, и относиться к нему нужно именно как к базовому наывку, а не молиться и фанатствовать. > Чем больше петушков так считают, тем выше моя job-security. Ну ты на поддержке еще долго протянешь. Моторины будут нужны, пока продукт жив и переписать его на чем-нибудь хорошем нет возможности/не видит пути руководство.
— Одну минуту, — громко произнес Страуструп, — прежде чем продемонстрировать вам способ распития портвешка, о котором все вы, как будто, позабыли, я должен опорожнить свой кишечник. Вот каким образом развратник приступил к омерзительной операции. Его окружили четверо крестопетухов: один держал наготове большой ночной горшок, второй взял зажженную свечу и подставил ее поближе к анусу, чтобы было лучше видно происходящее, третий сосал ему член, четвертый, перекинув через руку белоснежное полотенце, целовал Страуса в губы. Тот, опершись еще на двоих педерастов, поднатужился, и как только появилось невероятное количество дерьма, которое обыкновенно и регулярно выдавал хозяин параши, учитывая страшное количество поглощаемой им пищи, тот петух, что держал вазу, принялся восхвалять экскременты. «Какое прекрасное крестодерьмо! — восклицал он. — Ах, господин мой, какое превосходное крестоговно! Как красиво вы испражняетесь». Когда дифирамбы закончились, педераст, вооруженный салфеткой, языком очистил преддверие ануса, а горшечник подставил содержимое горшка под нос Страуструпу и опять громогласно восхвалял его. После этого мощная струя мочи ударила в рот сосателю, который тут же проглотил всю жидкость, полотенце завершило то, что не мог сделать язык, и четверо крестопетухов, оставшись без дела, долго сосали поочередно язык, фаллос и задний проход распутника.
>>428303 Анус себе ебни, пес. Треды ему нужны для производительности, охуеть вообще. Много веб-страничек, подвисяющих при асинхронной загрузке видел? Те, что видел делают это из-за крестопакостей в браузерных движках.
>>428269 >купить плашку память за 2к рублей на год или нанять старпера за 60к в месяц Именно поэтому под ios разрешено программировать только на наследнике сишечки, а интерпретируемые языки с платформы выгнали ссаным веником.
>>428304 >относиться к нему нужно именно как к базовому наывку Вот >>428281 клоун утверждает, что это вообще не нужно можно все сделать на жабоскрипте бесплатно без смс
Область применения крестов - это область применения няшной, немного сдвинутая в сторону сложности, в силу наличия в крестах зайчатков типизации. Там где требуются долгоживущие, производительные, ОЧЕНЬ ДОРОГИЕ системы, кресты как раз и пригождаются.
Именно поэтому всякие там блядузеры и автокады, хуефизы на них и написаны (правда с последними сейчас происходит ПЕРЕПИСЫВАНИЕ НА ЯВАСКРИПТ, но это происходит вообще со всем софтом, хотелось бы конечно увидеть переписанных GHC чтобы у хачкелистов бомбануло).
Но я думаю, что в конечном итоге культура стыкования у нас вырастет во что-то хороше, и блядские комбайны заменят наборы няшных, относительно простых, хорошо и безопасно комбинирующихся программнок. И вот тогда-то крестобляди и начнут выдавать истину по предикату моторин. Ых, скорее бы.
>>428287 >В браузер сложно запихать приложение сложнее калькулятора даже на современных компах. Молодой человек, да у вас же манямирок. В браузер уже и фотошоп, и всякие офисы, и ide, и даже анрилтоурнаменты запхали. Алсо, неужели ты про chrome os не слышал?
>>428515 > и фотошоп, и всякие офисы Только кастрированные, ага. > и даже анрилтоурнаменты запхали С помощью Emscripten. Который позволяет скомпилировать код на плюсах в нечто, что является IL с синтаксисом js.
>>428529 >Только кастрированные, ага. А некастрированных пока ещё и на десктоп не завезли. Да и откуда им взяться: одни байты по памяти таскают, другие сущности плодят, а код писать некому. >С помощью Emscripten. Который позволяет скомпилировать код на плюсах в нечто, что является IL с синтаксисом js. Ичо? JS? JS! Работает в браузере? Работает!
>>428533 Ты сравниваешь кастрацию в виде обрезания крайней плоти с кастрацией под самый корень. Что здесь аналогия какого вида приложений, думаю, пояснять не надо.
>>428513 Потому что крестоблядки плохие, часто ошибаются, медленно пишут, медленно компилируют, постоянно переделывают, велосипедят. Больше высокой стоимости взяться неоткуда. Фу, фу, крестоблядки, стыд, позор.
>>428535 >кастрацию в виде обрезания крайней плоти Ебать ты моэль... Я бы лезвие такому не доверил.
А если про приложения и твои аналогии уровня /b/: как десктопные, так и браузерные версии имеют сравнимый функционал, так что не надо кукарекать про кастрацию. Разве что фотошоп браузерный отличается, т.к. полноценную версию ещё не запилили.
>>428537 >велосипедят А ты попробуй не велосипедить, когда каждый крестоблядок оставляет после себя не красивый код, а заоптимизированную как он думает нечитабельную лапшу, непригодную для повторного использования. Но тут не крестоблядки виноваты. Не они такие, язык такой. Хотя какие фанбои, такой и язык
>>428267 >выжать максимум производительности Мантра крестмакаки. >>Где нужно маххххиум производительность >Практически в любом десктопном приложении сложнее морды к БД. Ты хоть понимаешь, что если полностью написать программу на ассемблере, например, то она от этого быстрее работать не станет. Даже скорее наоборот. Получаются сплошные минусы: коданечитабельной дрисни, ласково называемой кодом, неоправданно много, ошибок много, поддерживать трудно. В итоге на реализацию простейшей хуйни уходит куча времени и сил. И ради чего?
Вот поглядел сейчас на qtcreator. Там 720000 (СЕМЬСОТ ДВАДЦАТЬ ТЫСЯЧ!) строк c++ кода! Плюсоебы, вы там совсем ебанулись? И да, что-то я не заметил, чтоб больно шустро он работал. Не шустрее емакса с кучей плагинов, который, кстати, интерпретирует байт-код елиспа.
эй, ребятки, вычего самая мякотка это же не новые стандарты, нах их в продакшен использовать а то что наконец то запилили полную поддержку 2003 года стандарта, причем компилеры делают это быстро, генеря оптимизированный код вдобавок движуха идет в направлении того, что плюсанутый код идет на платформы, где раньше того сишка была (ну или специфичные асмы) вдобавок compiler as a service, слава богу, как и на других промышленный языках, тоже, спасибо clang а с++11, с++14 - так, хуйня
>>428279 >я не знаю ни одного человека с меньше 4 гигов оперативки, да даже если 2 гига это просто овердохуя Ты сейчас удивишься, но в нынешнее время в моде многозадачность. Собрать бы всех вас таких пидоров, у которых калькуляторы по два гига оперативки жрут, в одном месте да обоссать разом. >>428544 Фасм написан на фасме вообще без каких-либо оптимизаций, и он работает не быстро, а моментально. Радасм тоже на ассемблере написан и тоже маленький и быстрый. А вот у всяких крестоблядей всё постоянно тормозит и падает.
>>428621 Почему ты учишь кресты, не имея представления даже об основах императивного программирования? Начни с чего-нибудь простого, типа бейсика или питона.
>>428544 >Мантра крестмакаки Мантра джавамакаки - постоянные тормоза из-за десяти слоев абстракции, которая нахуй не нужна. >если полностью написать программу на ассемблере, например, то она от этого быстрее работать не станет Вполне вероятно, что станет. Код на макроассемблере читается не хуже высокуровневого. >И ради чего? Ради того, что выбора нет. С++ в своей нише - безальтернативный язык. >не заметил, чтоб больно шустро он работал QtCreator - одна из самых быстрых IDE. Быстрее вижалстудии. Точно быстрее любого жабаговна. >Не шустрее емакса с кучей плагинов Программу тормознее емакса еще поискать надо. Ты на старых компах его не запускал, видимо.
>>428623 Паскаль в школе учил, ну его в сраку. Просто хелпаните плизки, пойму устройство после примера. Просто в книжке числовые операции шли, а тут вдруг текст понадобилось заебенить туда
>>428632 Учил, но не полностью же. Понимаю я как функция работает, я не знаю как создать именно здесь то, что требуют и в книжке это не описывается. Я могу тупо забить и учить дальше, но я должен уяснить потому что пока только это меня заступорило
>>426949 >Smart pointers everywhere - прощай ебля с голыми указателями. Куда! Никаких прощай. Вместо голых указателей лепят умные указатели, которые ведут себя точно так же, как голые, с той же еблей, но формально голыми не являющиеся. Спрашивается, нахуя? Во: http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2014/n3849.html
С автором согласен, накаляет тот факт, что плюсы медленно развиваются. Например, сейчас есть static_assert( condition, "message" ), и только в с++17 собираются добавить static_assert( cond ), почему сразу нельзя было сделать обе версии? Часто приходится городить вермишели кода, чтобы сделать простые вещи, особенно в шаблонах.
Внезапно обнаружил, что std::function неудобно отлаживать. Дело в том, что есть велосипед того же фанкшена, там приходится с вариадиками работать. Нужно избавится от рекурсии для удобства отладки. Пробую делать так: template<typename... Args> void build_call_args( Dest& dest, Args... args ) { VoidTag vt[] = { relay_arg( dest, args )... }; } Гарантируется ли стандартом порядок вызова relay_arg относительно параметр пака для такого кода? Ну чтоб конпеллятор не переупорядочил ради оптимизации.
>>428726 Но ведь здесь даже ООП не нужно! Инкапсулировать данные не считают зазорным даже в ФП, здесь не требуется вещей вроде абстрактных фабрик и прочего. Но нет же.
>>428708 Зачем жертвовать гибкостью ради нихуя? С++ это не ооп язык, std::for_each с легкостью пробежиться как по любой колекции с итераторами, так и по обычному массиву. Нахуя от этого отказываться и граничиваться одними объектами? Кому нужна лаконичность тот ебанет #define, или там заюзает еще какой-то из множества предоставляемых языком инструментов. С++ для суровых мужиков, а не тщедушных хипсторов которые бросаются плакать без очередной дозы сахарка.
>>427347 >Нет хороших и плохих языков, рембо ты комнатный. Нет, маня. Есть языки хорошие и есть языки плохие. Вне зависимости от того, какая задача решается. И С++ пример того, как не надо делать хороший язык программирования.
>>428626 >Мантра джавамакаки - постоянные тормоза из-за десяти слоев абстракции, которая нахуй не нужна. Джавамакаки такие же несчастные фанатики, которым приходится страдать из-за недостатков своего объекта поклонения - языка, как и крестобляди. >Ради того, что выбора нет. Выбора только у плюсонутых нет. У них же только знают только кресты и похожую жаву. >Быстрее вижалстудии. Написанной тоже на плюсах. Бггг. >Точно быстрее любого жабаговна. Вот это достижение! Прям специальная олимпиада какая-то: команда безруких обогнала безголовых. >Программу тормознее емакса еще поискать надо. Ты на старых компах его не запускал, видимо. Постоянно на атоме n270 (1.6 ггц, одно ядро с HT) пускаю. Если повыбрасывать лишние плагины, аналогов которых в qtcreator'е нет, то работает даже быстрее.
>>428798 >Вне зависимости от того, какая задача решается. Кресты конечно параша, но как насчёт такой задачи: библиотечка для тяжёлых операций, которую можно было бы встроить в любое другое приложение и она бы там несильно мешалась с точки зрения размеров и поведения рантайма?
>>428563 >Фасм написан на фасме вообще без каких-либо оптимизаций Ясен хуй. Написали бы с оптимизациями, код пришлось бы выкинуть через годик, т.к. поддерживать его стало бы невозможным. >и он работает не быстро, а моментально Пфф.. Было бы там чему тормозить.
Плиз разьясните почему для долгоживущих приложений ц++ лучше чем джава / дот нет / етс. Не понимаю как это язык может заменить хорошего архитектора + код ревью + адекватных разрабов
>>428823 >Не понимаю как это язык может заменить хорошего архитектора + код ревью + адекватных разрабов логично, что не понимаешь никак не может заменить :3
>>428840 >Почему ц++ будет более стабилен чем другие? Потому что библиотеки обкатаны, многочисленные подводные камни не один раз обсасывались, а члены команды взаимозаменяемы. В общем, то же самое, что и у любой другой популярной и долго просуществовавшей технологии. Других, извиняюсь за каламбур, плюсов не завезли.
>>428846 >Ок. Выходит производительность главный козырь у плюсов. И то немногочисленные узкие места проще переписать на сишечке, чем потом генерировать каким-нибудь swig'ом обертки к плюсам.
>>427060 >А смартптр практически зерооверхед Ну до тех пор, пока с ним работают исключительно из одного треда, то да, оверхед приемлем, но как только счетчик ссылок начинают ебать несколько тредов с разных ядер, тут начинается содомия с кешем и производительность идет по пизде, хотя и держится на несколько большем уровне, чем, например, в PHP. А теперь на секунду задумаемся, через какую сраку реализуется shared_ptr? Срака эта называется «template». Чем он плох? Да тем, что код инкремета/декремента сраного счетчика тиражируется в десятках экземпляров, потому что типы, видите ли, блядь, РАЗНЫЕ с точки зрения конпелятора. В итоге простейший хелловорлд, который ассемблеробоярин уместит в полторы сотни байт, у крестоопущенца выливается МЕГАБАЙТЫ отконпелированного кода. Но кого ебет чужое горе? В 2015 меньше 16 гиг оперативки на десктоп лучше не ставить из-за такой вот крестопоебени. А самое печальное, что вся эта крестопоебень едет в совершенно неправильном направлении: разработчикам нужны пулы памяти, slab-аллокаторы, intrusive-контейнеры, НОРМАЛЬНЫЕ ЧЕЛОВЕЧЕСКИЕ СТРОКИ, НОРМАЛЬНУЮ ЧЕЛОВЕЧЕСКУЮ библиотеку для работы с ФАЕЛАМИ (а не эта ебаная вакханалия по имени iostream), да хотя бы ебаный голый TCP/IP искаропки. Вместо этого нам суют хуеву тучу смартпоинтеров, ни один из которых не решает проблемы фрагментации памяти или ускорения аллокации, какие-то generic-треды, которые один хуй никто в здравом уме использовать не будет (нормальные люди либо хуярят на openmp, либо дергают нативные вызовы, потому как последние на пару порядков гибче того говна, что вошло в стандарт), какие-то обоссанные лямбды, поощряющие спагетти-драйвен-девелопмент (превед, нодеЖС!). Ах да, хочу в 2015 наконец нормальные корутины. Это что, блядь, ТАК СЛОЖНО??? Как вообще, блядь, язык может себя позиционировать как "ёезыг для системного прогромирования", если в нем НЕТУ ФАЙБЕРОВ??? Язык це-два-креста уверенно движется в могилу. Никто нахуй не будет класть полжизни, чтобы постичь парашу, которую понапихали в стандарт, дабы "не зделоть и без того сложный конпелятор еще пиздовыебнутей" (это я про move-семантику и rvalue-referenc'ы). Нет, блядь, ребята. В этот ебаный цирк играйте сами. Я же обойдусь пёрлобашем для одноразового наколенного говна и богоподобной сишкой для качественного хардкора. P. S. категорически поддерживаю презрения ОПа к хипсетрам и желаю ему наконец смыть с лица сперму мертвого страуса и наконец решить, кто он: воннаби-хипстер, судорожно дрожащий при виде того, как кресты пытаются нагнать руби, жс, землю, небо и даже аллаха, или же серьезный разработчик высокого класса, поясняющий бездушной железке по хардкору, что и как нужно сделать с точностью до байта.
>>428853 >что и как нужно сделать с точностью до байта. Лел. Чтоб кусок хлеба отрезать, ты тоже сначала добываешь железную руду, потом её очищаешь, потом куешь из неё лезвие, точишь его, вытачиваешь ручку из палки, а потом внезапно оказывается, что хлеб к полученному ножу не подходит, и ты отправляешься на поле сеять пшеницу... И так каждое утро но после нескольких раз тебе надоедает, и ты начинаешь отрывать куски хлеба руками
Все равно в плюсах, если создаешь сложную структуру данных, надо продумывать, кто там владеет памятью, а у кого weak ptr'ы, и так далее. А в другой параше похуй вообще - все удалится автоматически.
>>428859 >дерьмовая прикрученная кое-как реализация ООП Она там нормальная для своих нужд. По крайней мере, можно использовать миксины в отличие от жабы/дудки.
>>428895 >в другой параше похуй вообще - все удалится автоматически Не похуй. Если используешь большие объемы памяти, приходится также продумывать, кто чем владеет, и смотреть чтобы оно действительно удалялось, при обнулении ссылки.
>>428853 >2015 >perl и с Да вы, батенька, мудак ещё тот. В твоей няшной сишечке ты булешь городить ещё большие велосипеды, если тебе понадобится что-то сложнее консольной утилиты на 100 строк.
>>428789 >и что, часто ты шаблоны пишешь? По мере надобности. Например рефлексию сэмулировать или какой нить any_of и подобное захреначить, чтоб было удобно. То, что в STLе не годится для продуктивного капитализма, кроме векторов и мапов. Вот пример использования STL: MyEvent event_list[] = { MyEvent::OnPress, MyEvent::OnRelease, MyEvent::OnMove } if (std::any_of( event_list, event_list + sizeof( event_list )/sizeof( event_list[0] ), event ) ...
УЖОС!!1 Проще так, и массив заводить не надо, и сама строка короче, скроллить не надо: if( Bike::anyOf( event, { MyEvent::OnPress, MyEvent::OnRelease, MyEvent::OnMove } ) ...
>а что за Параметр пак можно обработать рекурсивно или проинициализировать им массив. В моём случае создаю фиктивный массив, чтобы для каждого элеметна из параметр пака вызвалась фция relay_args(). Какбе сейчас работает, но нет гарантии, что компиллятор не переупорядочит вызовы. Короч попробую у себя в коде сделать, чтобы очерёдность не имела значения.
>>428925 >В твоей няшной сишечке ты булешь городить ещё большие велосипеды Не поверишь, но у меня уже есть весьма обширная коллекция своих и позаимствованных оптимизированных велосипедов. К примеру, в STL весьма конченные красно-черные деревья: left, right, parent, color - это ТЖРИДЦАТЬ ДЖВА БАЙТА на 64-битной системе. В то же время в мире давно существует http://www.canonware.com/rb/ - интрузивные красно-черные деревья по цене двухсвязанных списков (да-да, всего два указателя на элемент). И вообще, что плохого в писании велосипедов? Что ты вообще такое, если не знаешь, как пишутся списки, сбалансированные деревья и примитивные хеш-таблицы?
>>428916 Ты вообще понимаешь, что эта "move-семантика" - это костыль и прямое следствие крестокривоты? В жабке и питоне, например, такое говно не нужно, потому что там любой объект суть указатель на экземпляр (читай: new на каждый чих, а потом копируем эти указатели). В крестах изъебнулись, а потом спохватились: "Кудах-тах-тах! Надо vector и map'ов вернуть, а он копируется! Надо закостылить, чтобы разработчик помимо конструкторов копирования и операторов присваивания еще копипастил в конструктор перемещения". Просто охуенное решение по перекладыванию с больной головы на здоровую. Кресты деградируют в лютую хуету. Из нормальных нововведений там только range for и constexpr'ы. Все остальное способствует написанию пиздец какого неподдерживаемого кода.
>>429038 >прямое следствие крестокривоты? Это прямое следствие того, что объекты могут существовать и на стеке и в хипе. >В жабке и питоне, например Ага, именно поэтому в жабке сейчас костылят value-типы (причем ограниченные и второсортные, как в шарпе). >Просто охуенное решение по перекладыванию с больной головы на здоровую Если ты не пишешь библиотеку, move-семантика тебе редко нужна. Ничего сложного в ней нет.
>>426928 Релевантные сообщения компилятора тоже завезут, или он мне так и будет предлагать искать ошибку в хэдерах stl и угадывать, почему и какой symbol у меня на этот раз unresolved?
>>426928 А, и да, когда там они перестанут мешать семантику и синтаксис и начнут жить, и разрулят этот хаос с инклюдами, гуардами и костылями типа объявления неполного типа при необходимости циклических отношений?
>>429082 >типа объявления неполного типа при необходимости циклических отношений? это нужно для быстрой компиляции вообще то в "дизайне и эволюции" он все пояснил за
>>426928 Был такой дурачок, по кличке Страус, и решил он как-то сделать язык простой, народный, для своих пацанов. Ну и в итоге у него получилось такое неведомое лесное уёбище, что люди над ним и его пацанами хорошенько посмеялись, так же как мы сейчас смеемся над денисками поповыми, левитанами и бабушкиными. Посмеялись и забыли. Обиженные пацаны с позором удалились в свои темные норы, но язык не забросили. Год за годом в своих норах пацаны надрачивали на язык, с безумством больной психики изучали каждый его уголок, каждый косячок, каждую странность и каждую аномалию, бережно складируя накопленное богатство, в то время как весь остальной мир жил своей радужной и веселой жизнью, ничего не подозревая о нарастающей скрытой угрозе. И так, год за годом, пацаны вырастали, проникали на производство и в образование и потихоньку подсаживали на свое обожаемое лесное уёбище все больше и больше стратегически важных областей, и в итоге отомстили за обиду, скрытно разъев индустрию изнутри. Отомстили и отомстили. Дальше жить надо, софт писать. А на уёбище софт не писался. Невинные программисты вместо своих прежних повседневных дел стали вынуждены бороться с уёбищем, со всеми его хитростями и подлянками. Программисты учуяли неладное и ополчились против пацанов, но пацаны, чтобы не потерять власть, выдумали свою религию, чтобы программистов усмирить, и записали все накопленные в своих темных норах косяки и аномалии в книгах, под видом священного писания. И теперь каждый, кто не потратил пол жизни, сидя в монастыре и изучая священное писание, объявлялся еретиком и маргиналом. И называлась та религия ООП, ее священники - ООП-учеными, а те самые косяки и аномалии прозвали паттернами. И сейчас, спустя много-много лет, мир постепенно осознает в какой беде находится и с каждой новой версией языков программирования пытается скинуть старые заржавелые оковы. А ущерб, который нанесли человечеству ООП-псевдоученые, еще предстоит осознать.
>>429130 Хрестоматийная картина мира. Прямо как у.
Няши-крестяши старались, трудились, изучали каждый уголок, описывали непонятности, были внимательными, аккуратными и чувствительными. И у них софт-то и появился.
А "нормальные люди" и "программисты" сначала игрались и веселились, издевались и забывали о тех, над кем издевались, а потом опомнились и начали причитать "религия", "какие плохие", "уебище", "даешь риволюцию", "скинуть ржавые оковы".
И результат закономерен, крестяши пыхтят и пишут софт, а вокруг них прыгают "нормальные люди" (без софта) и издеваются, гигикают, завлекают "удалите все ваши учебники, наработки и исходный код из репозитория, и перепишите все на чем-нибудь вроде XYZ, ну или NMPQ или еще на чем-нибудь, вам же писать, лол"
>>429147 Считаю С++ не языком, advanced code generation engine. То есть ты не пишешь код, а конфигурируешь энжин, который код генерирует. Дело в том, что некоторые парни обкакались на С каждый раз одни решения, и зачали С++. Конечно, как наиболее эффективно на нем писать, они бесплатно не говорят. Шаблоны и метапрограммирование пиздец. В новом стандарте добавьте еще больше ключевых слов и вырвиглазого синтаксиса, чтобы время его разбора и упаковки во все эти ваши AST с дополнительными тайп-чекингами и оптимизациями возросло до приступа свирепой ненависти.
Последнее время вокруг С++ много буллшита крутится. Нашли полигон для тестирования ненужных фич. Также внезапно пошла мода на С++ митинги. Скоро и в твоем Саранске С++ митинг. Будем обсуждать новый синтаксис списков инициализации и тайп-дедакшн. Билеты 150$. Кстати, я еще книгу написал, покупай.
>>429161 >как наиболее эффективно на нем писать Самая писечка в том, что для плюсов в их IDE нет ни профайлеров, ни тулзов для обнаружения утечек памяти и ресурсов приложения. И это в 2015-м. Нахуй так жить, посоны?
>>429281 В "их" это в VS? Что ты хотел от мелкософта. У них компилятором, по-моему, занимаются двое-трое человек, а стандартную библиотеку, по крайней мере, пару лет назад, вообще развивал и поддерживал один. Читал его бложик, где он как раз этим объяснял такую низкую скорость реализации фич последних стандартов в MSVC.
>>429268 страуструп так проектировал, чтобы сильно не замедлить скорость компиляции в те времена это было важно да и сейчас важно для крупных проектов - не даром до сих пор продаются плагины в стидию на параллельную компиляцию (по ядрам, по компам в сети)
>>429281 >Самая писечка в том, что для плюсов в их IDE нет ни профайлеров пикрелейтед >ни тулзов для обнаружения утечек памяти _CrtDumpMemoryLeaks() в студии и valgrid под прыщами.
Парни, а вы мне вот на какой вопрос ответьте, пожалуйста. Почему все так сильно ругают плюсы из-за их стандартной библиотеки(в том числе ввод-вывод), и дрочат на ввод умных указателей в стандарт и в стандартную библиотеку?
Нет, я, конечно, понимаю, что хорошо иметь адекватную стандартную библиотеку, когда есть все необходимое, когда для того, чтобы запилить удобный ввод/вывод не надо лезть искать нормальные сторонние либы, но это же не повод изливать тонны ненависти на сам язык, не?
Или вот умные указатели. Ну добавили их в стандартную библиотеку, чо. Очень круто. Как будто раньше ими нельзя было пользоваться, а как только добавили - в С++ стало гораздо легче работать с памятью. Ну что за чепуха, а? Я понимаю, когда улучшают сам язык, синтаксис, конструкции, вот это вот все, но я совершенно не понимаю ажиотажа вокруг стандартной библиотеки.
>>429475 Ну, во-первых, плохо когда стандартная библиотека говно. Во-вторых, стандартная библиотека предполагает некоторые гарантии в плане стабильности и совместимости с версиями языка. И отсутствие в стандартной библиотеке простейших вещей порождает зоопарк несовместимых друг с другом реализаций одного и того же. И что ещё хуже, поскольку маленькие библиотеки вызывают у программистов на С++ реакцию «ты чо, не пацан что-ли, ёба?», реализации оказываются в составе очередного монстра вроде Qt.
>>429475 > Как будто раньше ими нельзя было пользоваться Нельзя было. Кресты поощряют разнородный и мудацкий стиль программирования (причем последнее в гораздо большей степени). В результате получалось 100500 несовместимых между собой имплементаций shared_ptr.
>>426928 > Современный > нет finally > нет "rescue and retry" > через жопу работающая бейсбольная технология ловли эксепшонов, лучше возвращать код ошибки
>>429281 Ой, дурак. Надо, у крестолюбов полно дебуггеров, профайлеров, валгриндов и прочих полезных вещей, без которых остальные вполне успешно обходятся. А вот крестолюбам надо применять, да.
>>429306 > Почему все так сильно ругают плюсы из-за их стандартной библиотеки(в том числе ввод-вывод), и дрочат на ввод умных указателей в стандарт и в стандартную библиотеку? Наличие чего-то в стандартной бибилотеке - хорошая гарантия применимости этого чего-то. В противном случае в будущем придется либо молиться на посонов, поддерживающих библиотеку, либо валить ее на себя. > Нет, я, конечно, понимаю, что хорошо иметь адекватную стандартную библиотеку, когда есть все необходимое, когда для того, чтобы запилить удобный ввод/вывод не надо лезть искать нормальные сторонние либы, но это же не повод изливать тонны ненависти на сам язык, не? А ты не сильно-то отделяй язык от стандартной библиотеки. Она конечно ни синтаксис, ни семантику языка изменить не может, но гвоздями к языку прибита прочно, как и он к ней. Как ты не сможешь взять структуру русского языка и начать говорить на нем только своими уникальными словами, также и с языком программирования.
>>429472 >Аргументируй, почему плюсы лучше Objective-C 1. Может запускаться более чем на одной платформе 2. Нормальный синтаксис 3. Нет динамической дристни 4. Лаконичное и короткое название языка 5. Сделан людьми
>>429472 >Аргументируй, почему плюсы лучше Objective-C %ПИСЕЧКАНЕЙМ% лучше Objective-C, потому что хуже Objective-C ничего просто быть не может. Опровергай.
>>429520 >1. Может запускаться более чем на одной платформе Objective-C кроссплатформенный, бесплатный и опенсоурс >2. Нормальный синтаксис В крестах-то? Хуевая шутка. В обджективе с другой стороны классный синтаксис но неосиляторам этого явно не понять >3. Нет динамической дристни Каким образом это аргумент >4. Лаконичное и короткое название языка >5. Сделан людьми
>>429520 >1. Может запускаться более чем на одной платформе Вообще-то обжси отличается от обычной сишки только рантаймом и расширеным синтаксисом. >>429700 >а. Типобезопасность Не меньше, чем в си. >б. Скорость На m68k не тормозил, а на современных йобах внезапно начал? >ObjC - это сраный бейсик, прикрученный к сишечке. Ты видел своими глазами хотя бы что-то из этого? Можно ещё назвать смолтолком, прикрученным к сишке, но никак не васиком.
>>429700 >Типобезопасность Да и похуй. Зато не надо писать миллионы кастов.
>Скорость Во-первых, скорость это вообще никак не характеристика языка, во-вторых, теоретические проблемы связанные со скоростью динамики очень просто решены оптимизацией компиляции и рантайма, то есть их никаких проблем нету и по скорости он никак не устапает крестам. Не сказал бы что динамика это значительный плюс или минус.
>ObjC - это сраный бейсик, прикрученный к сишечке. На самом деле сраный смоллтолк, это и делает язык охуенным.
>>430013 Перешел, но кресты все равно сосут у Обджектива биг тайм.
>>427130 Видеоигры на этом пишут. Других языков для них просто НЕТ. Все пайтоны с руби и жавами тормозные поскольку вообще не учитывают такую штуку как memory latency и ты НИЧЕГО не можешь с этим сделать. В итоге программа проводит 90% времени в ожидании данных их памяти. А в C++ - можешь.
>>428126 > Что там может быть такого медленного? Доступ к данным вне кэша процессора. По сути смартпоинтер - это указатель на структуру содержащую указатель на объект и счётчик ссылок. Чтобы прочитать что либо из объекта тебе надо сначала прочитать это указатель (привет тыщще тактов), потом прочитать то место куда он указывает (ещё тыщща тактов) и уже потом загружать данные объекта (ну вы поняли).
>>431565 cслюший, ну видь при чтений/записи это должно соптимизировано до разыменования указателя чито кешируется! эт потом уже когда покидаешь блок - свистопляски со счётом ссылок я канеш не уверен как там ваши компиляторы
>>431573 Компилятор ничего не может с этим сделать. Счётчик ссылок и указатель на реальный объект лежит где то в памяти, выделенный каки нибудь образом. Нельзя знать где лежит реальный объект без этого. И если его нет в кэще то наступает жопа.
Тут ещё важный момент про производительность. Типичный ООП-код ужасно дружит с организацией памяти. Причём ничего на железном уровне сделать нельзя, проблемы в физике полупроводников. Типичная ООП-программа примерно 80% времени ждёт данные из памяти. Всё что может сделать компилятор и выбор правильных алгоритмов находится в остальных 20%. Оптимизация этих 20% ничего серьёзного не даст, а для оптимизации 80% надо серьёзно переделывать организацию данных в программе. Беда в том что почти все высокоуровневые языки не позволяют это сделать! Только в C# что то можно за счёт наличия пользовательских value-типов. Вроде Go движется в правильном направлении. И всё, ничего кроме C, C++ и ФОРТРАНА нет.
>>431565 > это указатель на структуру содержащую указатель на объект и счётчик ссылок В случае раста это указатель на структуру, содержащую объект и счётчики (http://doc.rust-lang.org/src/alloc/rc.rs.html#166). Кстати, зачем в С++, языке с поддержкой параметрического полиморфизма, городят указатели на указатели?
http://habrahabr.ru/post/198568/ Плюсоёбы до сих пор изобретают колёса в попытке сделать из своего говна конф^Wне такое вонючее говно. А на дворе тем временем шел 2015й год...
>>431627 > kbhit возвращает код символа либо -1 вроде бы Почему бы не пытаться прочесть блок, а не символ? И да, нужно добавить задержку, чтобы цикл не занимал весь ЦП.
>>431578 >Счётчик ссылок и указатель на реальный объект лежит где то в памяти Счетчик ссылок лежит в памяти рядом с объектом. Когда ты делаешь make_shared, память выделяется один раз. Двойной указатель только у weak ссылок. Ты, похоже, никогда ни сам их не писал, ни библиотечного кода не видел. Но кукарекать любишь.
>>431578 >Компилятор не может с этим сделать смотри как тебя ловко с говном сровняли (>>431638) матчасть учи, а не теоретизируй попусту, в кэще у него нет, ну просто пиздец
>>431599 >Типичная ООП-программа примерно 80% времени ждёт данные из памяти пруфы?
>>431611 >Как мне подождать ввод пользователя из командной строки 5 сек, а потом забить хуй и пойти дальше исполнять код? Кроссплатформенно - select. POSIX'ово - poll.
>>431609 >Кстати, зачем в С++, языке с поддержкой параметрического полиморфизма, городят указатели на указатели? Хотя бы потому что в shared_ptr, как правило, кладут произвольные объекты, созданные где-то на стороне. А сношаться с placement new и ручным вызовом деструктора ради 1000 тактов никому неохота, что, в принципе, справедливо: прочитали разок из shared_ptr в Typename* и ебошим в цикле обычный нативнй указатель.
>>431800 >в shared_ptr, как правило, кладут произвольные объекты, созданные где-то на стороне С чего ты взял? Обычно все ровно наоборот, с голым new не пердолятся, а создают через конструктор указателя.
Кстати внезапно я вру про shared_ptr, прошлый раз реализацию смотрел много лет назад и она вызывала бевоту. В мелкомягкой реализации stl внутри shared_ptr хранится указатель на объект и указатель на _Ref_count_base, где хранится счётчик ссылок. Потому на простой доступ к объекту не может быть штрафа, только на копирование, поскольку надо лезть внутрь для увеличения числа ссылок.
> This function is typically used to replace the construction std::shared_ptr<T>(new T(args...)) of a shared pointer from the raw pointer returned by a call to new. In contrast to that expression, std::make_shared<T> typically allocates memory for the T object and for the std::shared_ptr's control block with a single memory allocation (this is a non-binding requirement in the Standard), where std::shared_ptr<T>(new T(args...)) performs at least two memory allocations. Я обосрался. Очевидно что C++ действительно сильно изменился.
>>431743 >Вместо 3000 тактов ждём 2000 Без индирекции ты не обойдешься даже при DoD. С современными мегабайтными кэшами, вероятность, что за данными придется лезть в память не так уж высока - 3000 тактов будет если доступ к данным совсем рандомный, а такое бывает редко. ООП программы это обычно формочки, где все упирается в пользовательский ввод, и лишние тысячи тактов никого не ебут. Qt, например, это сполшные pimpl-ы, то есть индирекция на индирекции, что не мешает Qt прогам достаточно быстро работать.
>>431898 При чем тут восьмедесятые? Ты хочешь сказать, что-то изменилось с 80-ых и теперь дереференсинг это главная проблема производительности? Че ты несешь вообще? Какие блядь тысячи тактов? Тысячи хуяктов. Ты как это посчитал вообще? Почему ты думаешь что тысяча тактов это много?
>>431917 Изменилось много. ОЧЕНЬ много. Сейчас ты должен считать оперативную память чем-то вроде жёсткого диска из 80-х. Тыщща тактов один раз не беда, беда когда на каждый чих тыщща тактов ожидания.
>>431861 > Нигде не указано что содержимое не может поменяться каким нибудь сторонним кодом из другого потока например. Не скажу про С++, но в расте действительно не может, так как обычный Rc даже нельзя раздать двум потокам. Arc — можно, но содержимое у него иммутабельное (как, впрочем, и у Rc), если не используется (Ref)Cell или синхронизации вроде Mutex или RwLock. Всё это без учёта `unsafe`, конечно.
Много вас по весне оттаяло, парни. Всегда были и всегда будут аутисты люди, которые считают, что %languagename% в стопицот раз лучше, чем эти наши устарелые плюсы. А что если я скажу тебе, что твой хипстерский маня-мирок — не более, чем заблуждение, навязанное такими же хипстерами, как ты? Scala, Python, пусть даже и Java? Не смешите меня, 2015 год на дворе.
Для справочки скажу, что в современном С++ очень много всего поменялось, в сравнении со стандартом 1993 года. А теперь внимание, сейчас я сорву покровы и залезу в твой маня-мирок. В плюсах по-факту уже не надо управлять памятью, как таковой. И это все без сборщика мусора, мой испорченный хипстерский друг.
Когда в плюсы добавили auto, optional, for-range loop, умные указатели, ввели списки инициализации и многое другое, С++ поменялся до неузнаваемости. А что если я скажу тебе, что это не конец? В стандарте C++1z ожидаются новые ключевые слова для прозрачной работы многопоточных приложений и еще добрая куча разных нововведений. И все эти плюшки, которые практически сводят на нет те недостатки плюсов, которыми так смело бросаются молокососы, которые называют себя программистами, вовсе не влияют на рантайм, в отличии от твоего любимого %langname%.
Итт аргументированно обоссу любого, кто скажет, что %langname% лучше плюсов и вообще они старье. Только давайте не как гопники, а по-очереди, девочки.