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. Основной упор будет делаться не на обработку данных, а именно на сопоставление различных конструкций кода с инструкциями целевых платформ.

Дискуссии:



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

Я тоже не знаю предмета обсуждения :), но немного знаю Ocaml - по-моему, Rust на него очень похож. А еще Грейдон Хоар назвал Rust «Ocaml in C++ clothing».

Некоторые причисляют Haskell к семейству языков ML, наряду с Ocaml.

Вообще, Haskell - это же не только ФП. Действительно, в основе идеи Haskell лежит ленивость, которую безопасно можно получить, только если язык чистый. Отсюда ФП.

Однако, другим столпом Haskell являются типы и классы типов, опять же для того, чтобы писать безопасный код. Вот, хаскелевские классы типов переродились в Rust в виде traits. Причем, я знаю очень толковых программистов, которые со всей наивностью путают растовские traits с одноименными traits из других языков, у которых их traits наглухо связаны уже с ООП, представляя собой совсем другую вещь, но отдаленно похожую, только отдаленно. А с Haskell - чуть ли не прямые аналогии.

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

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

Вот именно - задолбали тормоза. А не переписывание на Rust.

Ты не понял. Я перешел с Chrome на Firefox из-за проблем Chrome на HiPDI экранах.

Гг. Ну а как я мог это понять, если ты говорил о другом.

Это 2014-й, 2015-й и 2016-й годы. Когда Mozilla забила на развитие своего C++ного движка в пользу Rust-а и Servo.

Ни на что она не забивала, тем более тогда. И с HiDPI в Firefox всё нормально как минимум на Linux.

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

Ну а как я мог это понять, если ты говорил о другом.

Я тебе говорю об одном и том же: «постоянно увеличивающиеся тормоза свежих версий FF». Это ты режим шланга включил.

Ни на что она не забивала, тем более тогда.

Ты хочешь сказать, что в 2014-2016-х Mozilla работала над многопоточным движком на C++? Или же она латала свой древний однопоточный код, корнями уходящий в наследие Netscape?

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

Ни на что она не забивала, тем более тогда.

Ты хочешь сказать, что в 2014-2016-х Mozilla работала над многопоточным движком на C++?

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

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

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

Исходя из моего опыта, когда на верху принимается решение «продукт X завершает свою жизнь, а заменять мы его будем на продукт Y», в развитие продукта X вкладываться перестают.

Ты мне сейчас пытаешься рассказать какую-то удивительную историю.

и никакого «забивания на свой движок в пользу Rust и Servo» не было.

Ну вот работы над Servo (который многопоточный) были. А где работы над многопоточным C++ным движком?

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

Ну вот работы над Servo

Кстати мамой клялись и пяткой в грудь стучали, что к версии раста 1.0 выйдет нечто, что можно поюзать и ощутить, так скать, мощу. Но до сих пор какой-то убогий кусочек экспериментального нечто, который даже на страничке лорчика 800 мегов выжирает. И это в релизной сборке.

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

Исходя из моего опыта, когда на верху принимается решение «продукт X завершает свою жизнь, а заменять мы его будем на продукт Y», в развитие продукта X вкладываться перестают.

Что такое X, что такое Y, откуда у тебя данные о завершении X и замене его на Y?

А где работы над многопоточным C++ным движком?

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

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

Что такое X, что такое Y, откуда у тебя данные о завершении X и замене его на Y?

Хватит шланговать. У Mozilla до сих пор старый однопоточный движок, сделанный из наследия Netscape. Упоминается, что были попытки переделать его в многопоточный. Но попытки были неудачными и потому Mozilla решила вложиться в Rust и Servo. Вот тебе и те самые X и Y.

А пока Rust и Servo развивались, какие работы по улучшению C++ного движка делала Mozilla? Судя по тому, как ухудшалась работа FF, ничего не делалось.

Вот об этом я тебе и говорю.

И мне, как пользователю FF в прошлом, далеко не очевидно, что решение вложиться в Rust+Servo было таким уж однозначно правильным.

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

Что такое X, что такое Y, откуда у тебя данные о завершении X и замене его на Y?

Mozilla решила вложиться в Rust и Servo. Вот тебе и те самые X и Y.

Мде. И ты _меня_ обвиняешь в шланговании?

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

И ты _меня_ обвиняешь в шланговании?

Конечно. X — это старый движок. Y — новый Servo на Rust-е.

Что еще не понятно?

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

Что такое X, что такое Y, откуда у тебя данные о завершении X и замене его на Y?

Mozilla решила вложиться в Rust и Servo. Вот тебе и те самые X и Y.

Мде. И ты _меня_ обвиняешь в шланговании?

Конечно. X — это старый движок. Y — новый Servo на Rust-е.

Да? Во фразе, где были определены X и Y, вижу только Rust и Servo.

Что еще не понятно?

Непонятно, откуда у тебя информация о том, что продук «старый движок» завершен, а продукт «новый Servo на Rust-е» займет его место. Если у кого-то и были такие предположения, то после объявления Project Quantum стало понятно, что они неверны - Servo послужит только банком органов для трансплантации в новый движок, причем даже трансплантация растянется на годы. Думаю, сейчас уже можно сказать, что Servo так и останется экспериментальным проектом.

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

Во фразе, где были определены X и Y, вижу только Rust и Servo.

Во-первых, ты упорно игнорируешь упоминание старого движка. Во-вторых, ты почему-то разделяешь Rust и Servo в контексте Firefox-а.

Это и есть шлангование.

Непонятно, откуда у тебя информация о том, что продук «старый движок» завершен, а продукт «новый Servo на Rust-е» займет его место.

Ну вот такое у меня сложилось впечатление судя по рассказам Mozilla о том, для чего им нужен Rust.

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

Во-вторых, ты почему-то разделяешь Rust и Servo в контексте Firefox-а.

Это и есть шлангование.

Firefox в той фразе тоже не упоминался. Впрочем, Rust != Servo и в контексте Firefox, см. Cretonne и HolyJIT.

Ну вот такое у меня сложилось впечатление судя по рассказам Mozilla о том, для чего им нужен Rust.

Суди по действиям.

tailgunner ★★★★★
()
21 декабря 2018 г.
Ответ на: комментарий от LongLiveUbuntu

C++25:

find_strings: procedure options (main); declare pattern character (100) varying; declare line character (100) varying; declare line_no fixed binary;

on endfile (sysin) stop;

get edit (pattern) (L); line_no = 1; do forever; get edit (line) (L); if index(line, pattern) > 0 then put skip list (line_no, line); line_no = line_no + 1; end;

end find_strings;

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