LINUX.ORG.RU

На YouTube выложены доклады с С++ конференции CoreHard Spring 2018

 , ,


5

4

Евгений Охотников. 25 лет истории C++, пролетевшей на моих глазах

Автор доклада познакомился с C++ в 1991-ом году, а с 1992-го года C++ является для докладчика основным языком разработки. Что происходило с языком за это время? Как и почему он стал популярным? Как начался застой в развитии C++? Как C++ потерял свою популярность? Есть ли место для C++ в современном мире? Попробуем поговорить об этом опираясь на 25-летний опыт программирования на C++.

Вадим Винник. Обработка коллекций: единая суть и множество проявлений

Обработка коллекций: единая суть и множество проявлений

Nicolai Josuttis. Beware of C++17

The devil is in the detail. This also applies to C++17. We get new cool features, but we also get new things to care for and remember. This talk discusses some of the cool features when they may lead to surprises.

Сергей Соложенцев. Фича-компонентный подход при разработке игр

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

Андрей Якимов. Перехват функций под Windows в приложениях с помощью

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

Андрей Карпушин. C++ для web с помощью Emscripten

В докладе я расскажу о своем практическом опыте компиляции и использовании C++ на веб страницах, о том что нужно сделать, чтобы портировать приложение на С++ под веб, об ограничениях с этим связанных, об интеграции С++ кода с JavaScript и другими элементами веб страницы.

Василий Немков. Ядро мультикриптовалютного кошелька Multy

3,5 блокчейна в 2 мегабайта: как, зачем и почему. Особенности разработки кросс-платформенных решений для блокчейна.

Александр Маркевич. From C++ to Objective-C

В этом докладе я хочу рассказать о том, что Obj-C/C++ — это расширение существующих C/C++. В данном докладе будут рассмотрены особенности языка, будет рассказано про управление памятью (retain/release vs. ARC vs. shared_ptr/unique_ptr), про Swift и почему он лучше или хуже Obj-C/C++.

Михаил Матросов. Многогранный С++ на практике

В С++ существует множество способов решения одной и той же задачи. Мы возьмём реальную задачу из моей практики и исследуем ряд инструментов С++ для её решения: контейнеры STL, boost.range, C++20 ranges, coroutines. Мы сравним решения с точки зрения их интерфейсов и производительности, а также увидим, как одно решение может быть легко получено из другого, если код правильно организован. В процессе мы посмотрим на возможности С++17: constexpr if, selection statements with initializer, std::not_fn, и т.д. Особое внимание будет уделено стандартным алгоритмам (моей любимой теме).

Павел Беликов. Как работает анализ Data Flow в статическом анализаторе кода

Анализ Data Flow (потоков данных) - технология анализа исходного кода программ, широко используемая в различных development tools: компиляторах, линтерах, IDE. Мы поговорим о нём на примере разработки статического анализатора. Рассмотрим классификацию и различные виды Data Flow анализа, смежные технологии, взаимодополняющие друг друга и проблемы, возникающие при его разработке, и сюрпризы, которые нам преподносит C++, когда мы пытаемся его проанализировать. В ходе доклада мы разберём несколько ошибок, найденных в реальных проектах с помощью этой технологии.

Александр Зайцев. Инструменты профайлинга С++ кода

Так бывает, что иногда ваше приложение начинает долго выполнять казалось бы обыденные задачи и потреблять большое количество оперативной памяти. А вы как разработчик и понятия не имеете, почему же так происходит (но вам интересно). В ходе доклада поговорим о средствах, которые могут нам понять причины странного поведения наших программ. Если не боитесь таких слов как Valgrind, gprof, gperftools и многих других - добро пожаловать!

Александр Чуприна. Настройка окружения для кросскомпиляции на основе docker'a

Как быстро и легко настраивать/обновлять окружения для кросскомпиляции проектов под различные платформы(на основе docker), как быстро переключаться между ними, как используя эти кирпичики организовать CI и тестирование(на основе GitLab и Docker).

Алексей Ткаченко. Кодогенерация C++ кроссплатформенно

В докладе будет рассмотрена генерация кода при компиляции различных языковых конструкций, как простых, так и сложных, на различных платформах, как общераспространённых x86/x64, так и тех, которым уделяется меньше внимания: ARM, AVR. Также будут встречаться примеры для совсем экзотических процессоров вроде PowerPC и даже MicroBlaze. Основной упор будет делаться не на обработку данных, а именно на сопоставление различных конструкций кода с инструкциями целевых платформ.

Дискуссии:

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

правда чувак не затронул очень важную тему падения с++ - с++ своей популярностью был обязан прежде всего микрософту. Ибо мелкомягкие делали студию, мфц, атл и т.д. которые позволяли быстро и просто клепать под винду готовые приложения. И кризис в с++ приключился из-за переключения (да и застоя в микрософте) на другой язык, сначала на java, а когда дали по рукам на изобретения другой «java».

vtVitus ★★★★★ ()

А кто этот умный парень, что рассказывал плюсистам о расте? У него есть открытые проекты? И как зовут? (он стоял справа и постоянно комментировал выступающего по просьбе последнего)

И конечно же я не упущу случая для троллинга. Увы, не досмотрел, когда стало понятно, чем закончится, когда борроу-чекер, туплы (??), а также удобный и понятный для функциональщиков синтаксис записали зачем-то в минусы языка, да и поздно на сегодня уже. Ведь я угадал?

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

Ну, во-первых explicit operator bool, а во-вторых, не все классы это делают, а поменять их нельзя, потому что они из какой-нибудь левой библиотеки. И такая ситуация постоянно. Поэтому фича очень полезная.

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

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

В общем мне не нравится тенденции к уменьшению многословности языка.

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

по этой логике и метапрограммирование не прикольно.

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

anonymous ()

Панельная дискуссия «C++ vs Rust»

Человек из Уоргэйминга мог бы подольше 5 минут подготовиться к выступлению. Второй просто похоже страдает некоторым дефектом умственного развития, но не буду пинать инвалида, тем более технически он был подготовлен хорошо (хотя от «Пайсон» и от «Джяваскрипт» меня передёрнуло). К сожалению, он говорил за Раст :( и к концу затерроризировал всех, успешно выступив в роли всезнайки, который всех заколебал :).

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

си++ должен оставаться многословным, тогда он легко читается, как и любой классический язык

После (повторного) введения auto об этом говорить уже поздновато.

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

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

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

И конечно же я не упущу случая для троллинга.

Ну да, ты известный тролль.

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

Туплы это очень сложна. Представь такой код:

func((a, b, c))
Вызываем функцию и передаем туда кортеж. Одна скобка открывается, а за ней еще вторая! Это же неслыханно!

борроу-чекер

Кстати, очень доставили англицизмы. «Рантайм энвайромент», «андефайнед бихевиор». Одно слово — белорусы.

Virtuos86 ★★★★★ ()
Ответ на: комментарий от invy
{
  auto val = f();
  if(val) ...
}

vs.

  if(auto val = f(); val) ...

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

anonymous ()
Ответ на: комментарий от zamazan4ik

А оставить просто докладчика, который хорошо владеет Rust и может хорошо о нём рассказать и донести до слушателей основные плюсы.

Там был только человек, который отменно владеет Растом. Но ему доносить было бы сложно: заикается и не привык выступать перед аудиторией. Поэтому формат достаточно удачный, исходя из обстоятельств. Еще бы в цейтнот не попали к концу.

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

Да,проблемы с донесением определённые были. Я на самом деле могу рассказать, как нашли докладчика по Rust: незадолго до конференции Игорь Садченко посетил локальный митап по Rust и там просто нашли человека, который разбирается в Rust и был готов посетить CoreHard. Согласен, что в плане докладывания товарищ не очень, но он хотя бы очень хорошо (по крайней мере мне так показалось) разбирается в предмете.

zamazan4ik ★★ ()

Вообще, если у кого есть желание выступить на конференции про какой-нибудь Rust, поделиться опытом применения данной технологии в жизни - милости просим на конфу.

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

а чужой код можно привести к первому варианту простеньким шкриптом

только автор тебе его не заревьювт позитивно. Я тут пытался починить одним erase-remove неправильный, где они просто ошибочный код написали, работавший лишь на основе предположения, что в контейнере(вектор хехе) все элементы уникальны. Неделя переписки понадобилась.

invy ★★★★★ ()

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

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

просветите чем мастер класс отличается от обычного выступления и почему их не выкладывают?

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

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

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

переменную созданную таким образом можно использовать в пределах всего блока if else

  if(auto val = f(); val) {
    f2(val);
  } else {
    f3(val);
  }
  // тут val уже уничтожен
anonymous ()
Ответ на: комментарий от Virtuos86

Там был только человек, который отменно владеет Растом. Но ему доносить было бы сложно: заикается и не привык выступать перед аудиторией. Поэтому формат достаточно удачный, исходя из обстоятельств. Еще бы в цейтнот не попали к концу.

Мне он понравился. Из троих он был единственный, кто разбирался в теме. Может быть, досмотрю видео вечерком.

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

Проблема в том, что именно в этой панельной дискуссии участникам не были понятны ни сам формат «дискуссии», ни их роль в этой «дискуссии». Почему случился такой косяк и почему регламент/сценарий не был оговорен «на берегу» — это тема отдельного разговора.

Но по факту я, например, думал, что будет происходить следующее: вбрасывается какая-то тема, вроде memory safety и участники дискуссии высказывают свое мнение на этот вопрос — насколько это ценно, можно ли без этого, стоит ли ради этого переходить с С++ на Rust и пр.

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

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

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

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

очень доставили англицизмы. «Рантайм энвайромент», «андефайнед бихевиор». Одно слово — белорусы.

Всяко лучше «типажей».

Типажи там тоже прозвучали один раз. Но потом остались только «тр[у]эйтс». Звучит угрёбищно такая мешанина в публичном выступлении.

Virtuos86 ★★★★★ ()

Как C++ потерял свою популярность? Есть ли место для C++ в современном мире?

А мсье не пробовал посчитать сколько бинарников из /usr/bin (/usr/local/bin) у него линкуются с libstdc++ (libc++) чтобы о такой чуши даже не заикаться?

А так по синопсисам конференция выглядит откровенно слабо, с 50% проникновением откровенного рака в виде блокчейна, objc, докера и windows. Хотя от местячковой конференции чудес ждать не приходится.

slovazap ★★★★★ ()