LINUX.ORG.RU
ФорумTalks

С++ 2018

 , ,


1

5

Не буду особо подводить итоги года, подведу лучше итоги C++ за 20 лет.

С тех пор как вышел стандарт C++98, утекло довольно много воды, поменялись мейнстримовые операционные системы, браузеры, базы данных, принципы и методы разработки ПО, и вообще, кто бы мог подумать что Microsoft станет одним из главных контрибьюторов в Open Source.

C++ все так же остается разрастающимся монструозным говном, однако в 98 году, у него была действительно важная область применения - системный софт для десктопных операционных систем. Сейчас область применения C++ - разве что поддержка всех тех сраных легаси систем, которые на нем когда-либо были, по недоразумению, написаны. Ну и конечно, социальные пособия умственно отсталым «программистам», которые не способны понять простой факт, что не все является гвоздем если у тебя в руках молоток, а переусложненное монструозное говно, представляющее из себя набор исключительно идиотских архитектурных недоразумений и просто случайных ляпов, не имеет смысла применять хоть где-то кроме как для перемножения матриц на стеке(уау, как круто перегрузили оператор сложения!) и то, если ваш проект не выходит за рамки «Мама, смотри, я написал треугольник на DirectX!».

В связи с этим вопрос - когда уже закопают труп?

Перемещено jollheef из development

★★

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

Да, там data2 в обратную строну должен идти.

Вот можно же нормально отвечать, а не как eao197. Выглядит вполне нормально, но тут лямб нет.

А что на счет такого:

for (i, n) in (0..=100).rev().filter(|n| n % 10 == 0).enumerate() {
    println!("{} {}", i, n);
}

Вывод:

0 100
1 90
2 80
3 70
4 60
5 50
6 40
7 30
8 20
9 10
10 0

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

Фантазируете вы, а неадекватный я?

Я так и не понял, почему IPC уровня 80-х вдруг стал фантазией, но я давно привык, что программисты на C++ слегка тронутые.

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

При чём тут IPC? Я вам привёл конкретную задачу. Как вы будете её решать?

Напоминаю, что в Rust и Qt разные строки, и дублировать их - не вариант.

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

что программисты на C++ слегка тронутые

Ну вот не надо, этот персонаж слишком тронутый даже для C++ программиста.

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

При чём тут IPC?

При том, что интерфейс у нас рисует один процесс, а данные обрабатывает другой.

Я вам привёл конкретную задачу. Как вы будете её решать?

Нет, ты мне сказал ААААА ТАБЛИЦА ДВЕ ТЫЩИ СТРОК ВСЕ ПРОПАЛО. Таблица хоть на ввод или на вывод? :)

Напоминаю, что в Rust и Qt разные строки, и дублировать их - не вариант.

Напоминаю, что передавать информацию между программами на разных языках (да тот же msgpack, прости господи), люди научились ещё в 70-х.

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

то есть если свести претензию к паре предложений:

раст это замена с++ для тех, кто кодит в роли codemonkey за подзатыльники.

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

man накладные расходы

Будут, конечно, но я не уверен, что настолько критичные, что мы их вообще заметим. Более того, я практически уверен, что это все равно будет быстрее, чем Electron.

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

Electron вообще отдельная песня. Проблема в том, что вы предлагаете дублировать данные в демоне и морде, что тупо.

То есть мало того, что они дублируются, так мне теперь их ещё и синхронизировать надо. Может было проще сразу всё на плюсах ваять?

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

Проблема в том, что вы предлагаете дублировать данные в демоне и морде, что тупо.

Опяь же, вопрос в количестве дублированных данных. Если сразу по получении чанка данных (скажем, 32 строки за раз), писать их на экран, то я не уверен, что мы и этот оверхед заметим.

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

То есть мало того, что они дублируются, так мне теперь их ещё и синхронизировать надо. Может было проще сразу всё на плюсах ваять?

Синхронизировать тебе их не надо, зачем это вдруг? Передал, нарисовал, забыл. Из всей таблицы релевантны только отображаемые данные.

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

Синхронизировать тебе их не надо, зачем это вдруг? Передал, нарисовал, забыл.

Вы в курсе что такое таблица? Как она отображатеся? Что её можно редактировать?

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

Вы в курсе что такое таблица? Как она отображатеся? Что её можно редактировать?

Угу:

Из всей таблицы релевантны только отображаемые данные.

А их там сколько, по 50 на страницу?

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

А их там сколько, по 50 на страницу?

Вы предлагаете подгружать данные из демона при скроле? Ну точно наркоман.

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

Что значит «релевантны»? Вот хочу я отредактировать 100-ю строку. Что мне делать?

Она у тебя уже отображенная? Да. Редачишь её и отдаешь дата-процессу на сохранение.

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

Вы предлагаете подгружать данные из демона при скроле? Ну точно наркоман.

А чо бы и нет? Повторюсь, vim, работающий с диском, справляется без проблем.

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

Редачишь её и отдаешь дата-процессу на сохранение.
То есть мало того, что они дублируются, так мне теперь их ещё и синхронизировать надо.

/0

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

Потому, что тормоза.

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

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

Напоминаю, что в Rust и Qt разные строки

У нас или бессмысленная нагрузка на CPU или на RAM, в варианте с дублированием.

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

Я скажу так: если мне доведется делать что-то большое и не шибко сложное, что торчит в Интернет, для чего потребуется команда больше чем 5 разработчиков, то я сам буду всерьез рассматривать Rust вместо C++.

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

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

А несколько гигабайт не надо. Надо понемногу, но часто и в режиме «запрос-ответ».

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

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

но победы на С++ не будет всё равно. потому что это нишевый язык, и его нишевость обусловлена тем, что его пилили рабы с галер. Они просто выточили себе более удобное весло, что весловать на галере.

За эти пределы ржавый не уйдет, ну разве что в виде активизма и то не надолго.

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

Латентность в районе 300 микросекунд, с копированием памяти. Мелкими, по 4к, но с большой очередью. Не знаю, мне кажется, что хватит.

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

это реальность.

раст всем своим видом показывает, что его писали галерные рабы. у которых ТЗ меняется по желанию задней пятки заказчика. \

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

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

Не знаю, мне кажется, что хватит.

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

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

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

Это бред.

это реальность.

Это бред. Ты ровно ничего не знаешь о профессиональном опыте Хоара, Уолтона, Матсакиса, Каца и других достойных джентльменов, которые отвечают за облик Rust.

его писали галерные рабы

Это бред.

все вайнящие здесь про «злой С++» - работают на такого дядю. который им платит

Ну да, один ты свободный художник, работаешь без заказчика и ТЗ.

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 2)
Ответ на: комментарий от i36_zubov

Печальность результата - это твое субъективное мнение, на которое ты имеешь право, каким бы бредовым это мнение не было. А твои утверждения о том, кто разработал Rust - это совершенно объективно бред.

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

ты наверно хочешь сказать, что ржавого разработали.. а кстати кто?

То есть ты их даже не знаешь. А так - фамилии приведены выше.

и почему они правы?

Правы в чем? Они ни с кем ни спорили.

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

в накладных расходах разработки - в одном проекте получаем два языка и RPC-интерфейс между компонентами.

Ну мне кажется, что подобные вещи должны довольно неплохо библиотечиться. Просто ещё никому не было достаточно интересно этим заняться, кмк.

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

Библиотечить (классное слово) их - это расходы. Два языка - тоже. А профиты... не очевидны.

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

Я именно про статическую рефлексию. Пусть даже генераторами, как у protobuf.

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

Не просто видел, но и пользовался. Но ведь serde в Rust-е же по другому принципу работает, судя по вот этому примеру:

#[macro_use]
extern crate serde_derive;

#[derive(Serialize, Deserialize)]
struct Person {
    name: String,
    age: u8,
    phones: Vec<String>,
}
При чем здесь bison?

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

Никто не мешает тебе зопелить тулзу, которая по типам делает парсеры.

Это означает сделать рефлексию своими руками. Спасибо, но нет.

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

Сколько за ними не наблюдаю, а задроты-плюсовики не понимают две простые вещи, видимо в силу аутизма.

1) Использовать C++ тупо не выгодно для бизнеса. Вообще нахрен совсем.

Если мы возьмем одного и того же программиста, который идеально знает и C++ и C#, то на втором он будет банально быстрее писать код и выдавать продукт. Причем эдак раз в 10 быстрее, минимум. И багов там будет меньше на порядок.

А единственное что может дать С++ - более высокую производительность - в среднем он даст раза в 1.5 более высокую.

Считаем, да? А, забыл, не умеете считать. Ладно, проехали.

Задроты плюсовики скажут - ну да можно в 5 раз большую производительность выдавать!

Проблема в том что тогда скорость разработки уже будет в 100 раз меньшая чем на C#.

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

2) Примерно все высоконагруженные системы, на которых разница в полтора раза будет иметь значение - достигают производительности не дрочерством байтиков, а распараллеленными архитектурами. Микросервисами в контейнерах, и соответственно auto-scaling-ом всяким из AWS, шардингом БД, и прочим и прочим. C++ тут не нужен вообще от слова совсем.

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

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

В принципе, с вами все понятно. Но хотелось бы уточнить одну вещь: вам-то лично какое дело до C++ и C++ников?

Вот меня, например, не интересуют и не беспокоят ученые, которые делают вычисления на Fortran-е. Как и разработчики банковских систем на Java. Как и клепатели сайтов на PHP.

А вот вас C++ почему-то сильно волнует. С чего бы?

Рискну предположить, что в свое время C++ извращенным образом лишил вас девственности, что переросло в тяжелую и незаживающую душевную травму. Страдания из-за которой вы здесь и изливаете.

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