![Page 1: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/1.jpg)
![Page 2: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/2.jpg)
Antony Polukhin
Полухин Антон
Незаменимый C++
![Page 3: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/3.jpg)
Содержание
● На C++ больше не пишут?● C++ vs. Asm● C++ vs. Rust● C++ vs. Go● C++ vs. (Java + C#)● Слабые места C++● Что с этим делать
Незаменимый C++
Asm
C++20
![Page 4: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/4.jpg)
Заблуждение №1На C++ больше не пишут программ
Незаменимый C++
![Page 5: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/5.jpg)
Программы
Незаменимый C++ 5 / 131
![Page 6: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/6.jpg)
Программы ● Поисковые движки
Незаменимый C++ 6 / 131
![Page 7: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/7.jpg)
Программы ● Поисковые движки● Большинство высоконагруженных програм (Такси)
Незаменимый C++ 7 / 131
![Page 8: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/8.jpg)
Программы ● Поисковые движки● Большинство высоконагруженных програм (Такси)● Игры
Незаменимый C++ 8 / 131
![Page 9: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/9.jpg)
Программы ● Поисковые движки● Большинство высоконагруженных програм (Такси)● Игры● Браузеры
Незаменимый C++ 9 / 131
![Page 10: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/10.jpg)
Программы ● Поисковые движки● Большинство высоконагруженных програм (Такси)● Игры● Браузеры● Спецэффекты и анимация
Незаменимый C++ 10 / 131
![Page 11: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/11.jpg)
Программы ● Поисковые движки● Большинство высоконагруженных програм (Такси)● Игры● Браузеры● Спецэффекты и анимация● Компиляторы (не только компиляторы для С++)
Незаменимый C++ 11 / 131
![Page 12: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/12.jpg)
Программы ● Поисковые движки● Большинство высоконагруженных програм (Такси)● Игры● Браузеры● Спецэффекты и анимация● Компиляторы (не только компиляторы для С++)● «Виртуальные машины»
Незаменимый C++ 12 / 131
![Page 13: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/13.jpg)
Программы ● Поисковые движки● Большинство высоконагруженных програм (Такси)● Игры● Браузеры● Спецэффекты и анимация● Компиляторы (не только компиляторы для С++)● «Виртуальные машины»● Научные программы (CERN и Бозон Хиггса)
Незаменимый C++ 13 / 131
![Page 14: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/14.jpg)
Программы ● Поисковые движки● Большинство высоконагруженных програм (Такси)● Игры● Браузеры● Спецэффекты и анимация● Компиляторы (не только компиляторы для С++)● «Виртуальные машины»● Научные программы (CERN и Бозон Хиггса)● Части ОС (Драйверы, userspace)
Незаменимый C++ 14 / 131
![Page 15: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/15.jpg)
Программы ● Поисковые движки● Большинство высоконагруженных програм (Такси)● Игры● Браузеры● Спецэффекты и анимация● Компиляторы (не только компиляторы для С++)● «Виртуальные машины»● Научные программы (CERN и Бозон Хиггса)● Части ОС (Драйверы, userspace)● Автопром
Незаменимый C++ 15 / 131
![Page 16: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/16.jpg)
Программы ● Поисковые движки● Большинство высоконагруженных програм (Такси)● Игры● Браузеры● Спецэффекты и анимация● Компиляторы (не только компиляторы для С++)● «Виртуальные машины»● Научные программы (CERN и Бозон Хиггса)● Части ОС (Драйверы, userspace)● Автопром● Заводы
Незаменимый C++ 16 / 131
![Page 17: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/17.jpg)
Программы ● Поисковые движки● Большинство высоконагруженных програм (Такси)● Игры● Браузеры● Спецэффекты и анимация● Компиляторы (не только компиляторы для С++)● «Виртуальные машины»● Научные программы (CERN и Бозон Хиггса)● Части ОС (Драйверы, userspace)● Автопром● Заводы● Биржа
Незаменимый C++ 17 / 131
![Page 18: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/18.jpg)
Программы ● Поисковые движки● Большинство высоконагруженных програм (Такси)● Игры● Браузеры● Спецэффекты и анимация● Компиляторы (не только компиляторы для С++)● «Виртуальные машины»● Научные программы (CERN и Бозон Хиггса)● Части ОС (Драйверы, userspace)● Автопром● Заводы● Биржа● Офисные приложения
Незаменимый C++ 18 / 131
![Page 19: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/19.jpg)
ОК, чем C++ привлекает сегодня?
Незаменимый C++
![Page 20: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/20.jpg)
C++
Незаменимый C++ 20 / 131
![Page 21: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/21.jpg)
C++ + zero-overhead
Незаменимый C++ 21 / 131
![Page 22: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/22.jpg)
C++ + zero-overhead
+ неограниченные возможности
Незаменимый C++ 22 / 131
![Page 23: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/23.jpg)
C++ + zero-overhead
+ неограниченные возможности
+ поддержка огромного количества платформ
Незаменимый C++ 23 / 131
![Page 24: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/24.jpg)
C++ + zero-overhead
+ неограниченные возможности
+ поддержка огромного количества платформ
+ безопасность
Незаменимый C++ 24 / 131
![Page 25: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/25.jpg)
C++ + zero-overhead
+ неограниченные возможности
+ поддержка огромного количества платформ
+ безопасность?
Незаменимый C++ 25 / 131
![Page 26: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/26.jpg)
C++ + zero-overhead
+ неограниченные возможности
+ поддержка огромного количества платформ
+ безопасность?
+ небольшой рантайм
Незаменимый C++ 26 / 131
![Page 27: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/27.jpg)
Сравним с другими языками!
Незаменимый C++
![Page 28: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/28.jpg)
С++ vs. Asm
Незаменимый C++
![Page 29: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/29.jpg)
C++ vs. Asm
Незаменимый C++ 29 / 131
![Page 30: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/30.jpg)
C++ vs. Asm + Ассемблер позволяет выжать максимум из железа
Незаменимый C++ 30 / 131
![Page 31: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/31.jpg)
C++ vs. Asm + Ассемблер позволяет выжать максимум из железа
- непереносимый код
Незаменимый C++ 31 / 131
![Page 32: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/32.jpg)
C++ vs. Asm + Ассемблер позволяет выжать максимум из железа
- непереносимый код
- очень медленная разработка
Незаменимый C++ 32 / 131
![Page 33: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/33.jpg)
C++ vs. Asm + Ассемблер позволяет выжать максимум из железа
- непереносимый код
- очень медленная разработка
- не всегда быстрее
Незаменимый C++ 33 / 131
![Page 34: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/34.jpg)
C++ vs. Asm + Ассемблер позволяет выжать максимум из железа
- непереносимый код
- очень медленная разработка
- не всегда быстрее
Незаменимый C++ 34 / 131
![Page 35: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/35.jpg)
Заблуждение №2Большие программы на C++ работают медленнее чем на ASM
Незаменимый C++
![Page 36: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/36.jpg)
C++ vs. Asm (или как завалить Asm разработчика)
x % 2361 == 7
Незаменимый C++ 36 / 131
![Page 37: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/37.jpg)
C++ vs. Asm (или как завалить Asm разработчика)
Незаменимый C++ 37 / 131
![Page 38: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/38.jpg)
C++ vs. Asm (или как завалить Asm разработчика)
Незаменимый C++ 38 / 131
![Page 39: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/39.jpg)
С++ vs. Rust
Незаменимый C++
![Page 40: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/40.jpg)
C++ vs. Rust
Незаменимый C++ 40 / 131
![Page 41: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/41.jpg)
C++ vs. Rust + Отличная безопасность?
Незаменимый C++ 41 / 131
![Page 42: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/42.jpg)
C++ vs. Rust + Отличная безопасность?
+ Потенциальная возможность оптимизировать лучше C++
Незаменимый C++ 42 / 131
![Page 43: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/43.jpg)
Заблуждение №3Rust более/такой же производительный как C++
Незаменимый C++
![Page 44: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/44.jpg)
Анатомия компилятора (упрощённо)
Незаменимый C++
С++С Rust ...
Middle end
Ada Go
IR
IR
Power PCx86 Alpha ...Arm x86_64
44 / 131
![Page 45: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/45.jpg)
C++ vs. Rust
Незаменимый C++ 45 / 131
![Page 46: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/46.jpg)
Где UB ?
Незаменимый C++ 46 / 131
![Page 47: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/47.jpg)
C++ vs. Rust
Незаменимый C++ 47 / 131
![Page 48: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/48.jpg)
C++ vs. Rust
Незаменимый C++ 48 / 131
![Page 49: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/49.jpg)
C++ vs. Rust
Незаменимый C++ 49 / 131
![Page 50: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/50.jpg)
C++ vs. Rust
Незаменимый C++ 50 / 131
![Page 51: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/51.jpg)
C++ vs. Rust Вроде норм.
Незаменимый C++ 51 / 131
![Page 52: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/52.jpg)
C++ vs. Rust Вроде норм.
Переходим на Rust?
Незаменимый C++ 52 / 131
![Page 53: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/53.jpg)
C++ vs. Rust Вроде норм.
Переходим на Rust?
Oh, wait!..
Незаменимый C++ 53 / 131
![Page 54: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/54.jpg)
C++ vs. Rust Вроде норм.
Переходим на Rust?
Oh, wait!..
C C++ — noop→
C Rust — PAIN!!!!!!!→
Незаменимый C++ 54 / 131
![Page 55: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/55.jpg)
C Rust→● unsafe {} нет безопасности→
Незаменимый C++ 55 / 131
![Page 56: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/56.jpg)
C Rust→● unsafe {} нет безопасности→● Нет возможности использовать C headers
● Надо генерировать свои– Обновление библиотек — БОЛЬ!– Надо headers руками допатчивать– Мучительные страдания с borrow checker на сложных С проектах [https://hackernoon.com/why-im-dropping-rust-fd1c32986c88]
Незаменимый C++ 56 / 131
![Page 57: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/57.jpg)
Заблуждение №4Программа написанная на языке Rust X не содержит ошибок
Незаменимый C++
![Page 58: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/58.jpg)
Anything● unsafe или аналоги нет безопасности→
Незаменимый C++ 58 / 131
![Page 59: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/59.jpg)
Anything● unsafe или аналоги нет безопасности→● если ваша программа компилится, это ещё не
значит что всё ОК
Незаменимый C++ 59 / 131
![Page 60: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/60.jpg)
С++ vs. Go
Незаменимый C++
![Page 61: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/61.jpg)
C++ vs. Go
Незаменимый C++ 61 / 131
![Page 62: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/62.jpg)
C++ vs. Go - <великое множество>
Незаменимый C++ 62 / 131
![Page 63: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/63.jpg)
C++ vs. Go - <великое множество>
+ Асинхронность и многопточность на основе корутин
Незаменимый C++ 63 / 131
![Page 64: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/64.jpg)
C++ vs. Go - <великое множество>
+ Асинхронность и многопточность на основе корутин
● Boost.Fibers
Незаменимый C++ 64 / 131
![Page 65: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/65.jpg)
C++ vs. Go - <великое множество>
+ Асинхронность и многопточность на основе корутин
● Boost.Fibers● Yandex.Taxi userver
Незаменимый C++ 65 / 131
![Page 66: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/66.jpg)
C++ vs. Go - <великое множество>
+ Асинхронность и многопточность на основе корутин
● Boost.Fibers● Yandex.Taxi userver● Quantum
Незаменимый C++ 66 / 131
![Page 67: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/67.jpg)
C++ vs. Go - <великое множество>
+ Асинхронность и многопточность на основе корутин
● Boost.Fibers● Yandex.Taxi userver● Quantum● Folly fibers
Незаменимый C++ 67 / 131
![Page 68: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/68.jpg)
C++ vs. Go - <великое множество>
+ Асинхронность и многопточность на основе корутин
● Boost.Fibers● Yandex.Taxi userver● Quantum● Folly fibers● Coroutines TS
Незаменимый C++ 68 / 131
![Page 69: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/69.jpg)
C++ vs. Go - <великое множество>
+ Асинхронность и многопточность на основе корутин
● Boost.Fibers● Yandex.Taxi userver● Quantum● Folly fibers● Coroutines TS● C++20
Незаменимый C++ 69 / 131
![Page 70: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/70.jpg)
Python vs. Go Go скорее конкурент Python, чем C++
Незаменимый C++ 70 / 131
![Page 71: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/71.jpg)
Заблуждение №5Бенчмарки показывают что прогарммы на X быстрее C++
Незаменимый C++
![Page 72: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/72.jpg)
Добро пожаловать в мир «честных» бенчмарков!
Незаменимый C++
![Page 73: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/73.jpg)
Типичные ошибки
● Отключается сборщик мусора
Незаменимый C++ 73 / 131
![Page 74: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/74.jpg)
Типичные ошибки
● Отключается сборщик мусора● Код написан не на C++
Незаменимый C++ 74 / 131
![Page 75: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/75.jpg)
Типичные ошибки
● Отключается сборщик мусора● Код на C++ написан в стиле float* f = new float;
Незаменимый C++ 75 / 131
![Page 76: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/76.jpg)
Типичные ошибки
● Отключается сборщик мусора● Код на C++ написан в стиле float* f = new float;● На Х написана другая программа
Незаменимый C++ 76 / 131
![Page 77: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/77.jpg)
Типичные ошибки
● Отключается сборщик мусора● Код на C++ написан в стиле float* f = new float;● На Х написана другая программа● Тестируется библиотека а не язык
Незаменимый C++ 77 / 131
![Page 78: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/78.jpg)
Заблуждение №6Сборщик мусора не добавляет накладных расходов
Незаменимый C++
![Page 79: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/79.jpg)
Mark and sweep
Незаменимый C++ 79 / 131
![Page 80: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/80.jpg)
structures
struct list_node {
list_node* next;
list_node* prev;
};
struct slist_node {
slist_node* next;
};
Незаменимый C++ 80 / 131
![Page 81: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/81.jpg)
structures
vector<void*> root;
Незаменимый C++ 81 / 131
![Page 82: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/82.jpg)
structures
vector<void*> root; // root[0] — это slist_node или list_node?
Незаменимый C++ 82 / 131
![Page 83: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/83.jpg)
structures
vector<void*> root; // Сколько указателей и где они?
vector<Object*> root;
Незаменимый C++ 83 / 131
![Page 84: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/84.jpg)
structures
struct list_node {
__meta vptr;
list_node* next;
list_node* prev;
};
struct slist_node {
__meta vptr;
slist_node* next;
};
Незаменимый C++ 84 / 131
![Page 85: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/85.jpg)
Stop the world ● Все потоки останавливаются
Незаменимый C++ 85 / 131
![Page 86: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/86.jpg)
Stop the world ● Все потоки останавливаются● Проходим по всем узлам графа, помечая
достижимые узлы
Незаменимый C++ 86 / 131
![Page 87: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/87.jpg)
Stop the world ● Все потоки останавливаются● Проходим по всем узлам графа, помечая
достижимые узлы● ????
Незаменимый C++ 87 / 131
![Page 88: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/88.jpg)
Stop the world ● Все потоки останавливаются● Проходим по всем узлам графа, помечая
достижимые узлы● ????● Profit
Незаменимый C++ 88 / 131
![Page 89: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/89.jpg)
Stop the world ● Все потоки останавливаются● Проходим по всем узлам графа, помечая
достижимые узлы● ????● Profit
● На современном железе больше 1 ядра!
Незаменимый C++ 89 / 131
![Page 90: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/90.jpg)
Stop the world ● Все потоки останавливаются● Проходим по всем узлам графа, помечая
достижимые узлы● ????● Profit
● На современном железе больше 1 ядра!● При каждой сборке мусора мы проходимся по
всем узлам постоянно перепроверяя живые →узлы
Незаменимый C++ 90 / 131
![Page 91: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/91.jpg)
No stop the world
● Ничего не останавливается
Незаменимый C++ 91 / 131
![Page 92: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/92.jpg)
No stop the world
● Ничего не останавливается● Многопоточно разбираем мусор
Незаменимый C++ 92 / 131
![Page 93: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/93.jpg)
No stop the world
● Ничего не останавливается● Многопоточно разбираем мусор● Ура!
Незаменимый C++ 93 / 131
![Page 94: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/94.jpg)
No stop the world
● Ничего не останавливается● Многопоточно разбираем мусор● Ура!● НО
Незаменимый C++ 94 / 131
![Page 95: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/95.jpg)
No stop the world
● Ничего не останавливается● Многопоточно разбираем мусор● Ура!● НО● Нам нужно синхронизировать все потоки через
атомарные инструкции
Незаменимый C++ 95 / 131
![Page 96: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/96.jpg)
No stop the world
● Ничего не останавливается● Многопоточно разбираем мусор● Ура!● НО● Нам нужно синхронизировать все потоки через
атомарные инструкции● Это очень дорого, если не мы последними
трогали ресурс
Незаменимый C++ 96 / 131
![Page 97: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/97.jpg)
No stop the world
● Ничего не останавливается● Многопоточно разбираем мусор● Ура!● НО● Нам нужно синхронизировать все потоки через
атомарные инструкции● Это очень дорого, если не мы последними
трогали ресурс● Мы делаем это при каждой сборке мусора!
Незаменимый C++ 97 / 131
![Page 98: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/98.jpg)
+ Не проходим лишние разы
Незаменимый C++ 98 / 131
![Page 99: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/99.jpg)
structures
struct list_node {
shared_ptr<list_node> next; // atomic refcounter
shared_ptr<list_node> prev; // atomic refcounter
};
struct slist_node {
shared_ptr<slist_node> next; // atomic refcounter
};
Незаменимый C++ 99 / 131
![Page 100: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/100.jpg)
Это ещё не всё!
shared_ptr<Object> some;
Незаменимый C++ 100 / 131
![Page 101: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/101.jpg)
Это ещё не всё!
shared_ptr<Object> some; // Скоро будет больно!
Незаменимый C++ 101 / 131
![Page 102: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/102.jpg)
Это ещё не всё!
shared_ptr<Object> some; // Скоро будет больно!
shared_ptr<Object> prev = some.a; // ...
Незаменимый C++ 102 / 131
![Page 103: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/103.jpg)
Это ещё не всё!
shared_ptr<Object> some; // Скоро будет больно!
shared_ptr<Object> prev = some.a; // ...
prev.a = some; // Циклические ссылки!
Незаменимый C++ 103 / 131
![Page 104: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/104.jpg)
Trade-offs
Незаменимый C++ 104 / 131
![Page 105: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/105.jpg)
Trade-offs ● Плавающий мусор
Незаменимый C++ 105 / 131
![Page 106: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/106.jpg)
Trade-offs ● Плавающий мусор● … или удар по производительности
Незаменимый C++ 106 / 131
![Page 107: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/107.jpg)
Trade-offs ● Плавающий мусор● … или удар по производительности
● Останавливать все потоки и тормозить с непредсказуемыми задержками
Незаменимый C++ 107 / 131
![Page 108: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/108.jpg)
Trade-offs ● Плавающий мусор● … или удар по производительности
● Останавливать все потоки и тормозить с непредсказуемыми задержками
● … или ничего не останавливать и тратить CPU такты впустую
Незаменимый C++ 108 / 131
![Page 109: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/109.jpg)
Trade-offs ● Плавающий мусор● … или удар по производительности
● Останавливать все потоки и тормозить с непредсказуемыми задержками
● … или ничего не останавливать и тратить CPU такты впустую
● Плата за Object*
Незаменимый C++ 109 / 131
![Page 110: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/110.jpg)
С++ vs. (Java + C#)
Незаменимый C++
![Page 111: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/111.jpg)
C# ?? Java
Незаменимый C++ 111 / 131
![Page 112: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/112.jpg)
C# ?? Java ● См. «Сборщики Мусора»
Незаменимый C++ 112 / 131
![Page 113: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/113.jpg)
Logstash – Программа для сбора, трансформации и складирования логов.
Бесплатное и очень популярное Open Source приложение на Java.
Что может пойти не так?
Незаменимый C++ 113 / 131
![Page 114: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/114.jpg)
Logstash – Программа для сбора, трансформации и складирования логов.
Бесплатное и очень популярное Open Source приложение на Java.
Что может пойти не так?
Незаменимый C++ 114 / 131
![Page 115: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/115.jpg)
Слабые места C++
Незаменимый C++
![Page 116: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/116.jpg)
C++
Незаменимый C++ 116 / 131
![Page 117: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/117.jpg)
C++ - скрытый высокий порог вхождения
- неограниченные возможности- проблемы с безопасностью
Незаменимый C++ 117 / 131
![Page 118: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/118.jpg)
C++ - скрытый высокий порог вхождения
- неограниченные возможности- проблемы с безопасностью
- отсутствие изкоробочности
- крошечная стандартная библиотека- отсутствие готовой инфраструктуры
Незаменимый C++ 118 / 131
![Page 119: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/119.jpg)
ОК, а что делать то?
Незаменимый C++
![Page 120: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/120.jpg)
Незаменимый C++ 120 / 131
![Page 121: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/121.jpg)
Итоги
Незаменимый C++
![Page 122: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/122.jpg)
Итоги
Незаменимый C++ 122 / 131
![Page 123: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/123.jpg)
Итоги ● C++ везде
Незаменимый C++ 123 / 131
![Page 124: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/124.jpg)
Итоги ● C++ везде ● C++ крайне популярен
Незаменимый C++ 124 / 131
![Page 125: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/125.jpg)
Итоги ● C++ везде ● C++ крайне популярен● С++ - самый производительный инструмент для
написания больших приложений
Незаменимый C++ 125 / 131
![Page 126: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/126.jpg)
Итоги ● C++ везде ● C++ крайне популярен● С++ - самый производительный инструмент для
написания больших приложений● Относитесь со скепсисом к бенчмаркам
Незаменимый C++ 126 / 131
![Page 127: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/127.jpg)
Итоги ● C++ везде ● C++ крайне популярен● С++ - самый производительный инструмент для
написания больших приложений● Относитесь со скепсисом к бенчмаркам● Не верьте managed языкам, которые говорят что
они быстрее C++
Незаменимый C++ 127 / 131
![Page 128: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/128.jpg)
Итоги ● C++ везде ● C++ крайне популярен● С++ - самый производительный инструмент для
написания больших приложений● Относитесь со скепсисом к бенчмаркам● Не верьте managed языкам, которые говорят что
они быстрее C++● С++ не идеален!..
Незаменимый C++ 128 / 131
![Page 129: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/129.jpg)
Итоги ● C++ везде ● C++ крайне популярен● С++ - самый производительный инструмент для
написания больших приложений● Относитесь со скепсисом к бенчмаркам● Не верьте managed языкам, которые говорят что
они быстрее C++● С++ не идеален!..
● ...но это исправимо
Незаменимый C++ 129 / 131
![Page 130: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/130.jpg)
Спасибо
![Page 131: Antony Polukhin - GitHub Pages+... · Браузеры Спецэффекты и анимация Компиляторы (не только компиляторы для С++) «Виртуальные](https://reader034.vdocuments.site/reader034/viewer/2022050109/5f470bb824e4a42400515b4f/html5/thumbnails/131.jpg)
Полухин АнтонСтарший разработчик Yandex.Taxi
https://github.com/apolukhin
https://stdcpp.ru/