C ++の現代の世界は、C ++ 98で使用していたものとは大きく異なります。これを賞賛する人もいれば、いらいらする人もいますが、事実は残っています。 今日の開発者の心を刺激するトピックは次のとおりです。
- C ++言語の最新の新機能
- 関数型プログラミング
- メタプログラミング
- マルチスレッド、同時実行、非同期、およびすべてすべて
- 既存のツールと一緒に暮らす方法
1か月もしないうちに、これらの質問に答えようとする会議が開催されます。C++ Russia2019。それがどうなるかを簡単に見てみましょう。
C ++言語の最新の新機能
ここでは、一度にいくつかの方向で非常に幸運でした。 まず、C ++は積極的に改善されており、重要かつ有用なツールのセットは成長し続けています。 すべての言語がそれほど幸運なわけではありません。たとえば、 最近リリースされたJava 12では、単一のプロダクション対応言語機能やライブラリの大きな変更はありませんでした。
一方、C ++のすべての改善点の全体像を誰もが明確に把握していますか? ツールを正しく使用していることを確認してください。これは今後回避されませんか?
そして、私たちの会議では、基調講演(オープニングとクロージングのレポート)の両方が長年委員会に参加してきた人々からのものであることがわかりました。 彼らはそのような仕事をしています-すべての写真を心に留めておくために。 優れたレポートに加えて、ディスカッションエリアでそれらと話すこともできます。
1つ目はAnton Polukhinで、 C ++が不可欠であると考えられている分野についての話と、 C ++で持つとよいと思われる追加事項です。 彼と最近、Habréのインタビューを公開しました 。 一般に、委員会へのロシア人の参加のトピックは、すでにHabréとどこでも広く議論されています(YandexはVKでこれについての投稿さえ書いています)。 stdcpp.ruにアクセスして代表者のリストを確認できます。現在は、Anton Polukhin、Anton Bikineev、Alexander Fokinです。
2番目のメンバーはニコライ・ジョスティスです。 彼はまさに The C ++ Standard LibraryとC ++ Templatesの著者であり、ほぼ20年間標準化委員会のメンバーです。 彼のレポートは、おそらく「未来と現代」のトピックに関する最も話題の1つになるでしょう。 誰が責任がある そして何をすべきか。
関数型プログラミング
コミュニティの一部が燃えている次のトピックはFPです。 Habréでは、このトピックは非常に広く表現されています。
コミュニティの誰もが、このゲームはろうそくに値すると考えているわけではありません。 範囲のデバッグパフォーマンスとAras Prankevichiusによる記事については、まだたき火は燃えていません。 多くの人はいまだにモナドとは何か、なぜモナドが必要で、 鮮明な写真付きの記事が必要なのかと考えています。 誰かがすでに短剣を研ぎ澄まして、「私の素晴らしいC ++をある種のHaskellに変えた」とつぶやいています。
AFの最も重要な問題の1つは、AFに関する専門家があまりいないことです。 誰もがそれを勉強するのが大好きですが、実際に適用するには、これに問題があります。 人がAFを理解していると心から信じているが、それでHello Worldを書くことができない場合、完全に不適当です。 ラムダの存在に精通している人がすぐに自分を関数型プログラミングの王様だと考えるとき、あらゆる種類の極端さがあります。 またはその逆-ハロワールドを書く前に、彼は「働く数学者のためのカテゴリー」と岡崎のすべての本とマニュアルを時間の初めから記憶することによって洞窟に連れ去られます。
これらの本を読むためにリンクをたどらないでください。 まず、この投稿を読んで会議に行く必要があります。
そのため、業界ではPHPのC ++に精通した人が必要です。 最初は、Ivan ChukichとAlexander Graninとの良いインタビューを知ることができます。 そして、はい、両方ともC ++ロシアになります。
Alexanderはモナドパーサーについて話します。 Ivanは「移動のみのC ++設計」について話し、 3つの大きなトレーニングの 1つ「C ++での関数型プログラミングの適用」を行います。
そして、ブルームバーグのヴィットリオ・ロメオの「高階関数と関数参照」と、フアン・ペドロ・ボリバル・プエンテの「ポストモダン不変データ構造」があります。 ポストモダンとは何ですか? しかし、来て見つけてください。
メタプログラミング
メタプログラミングとFPは密接に関連していますが、状況は正反対です。 FPでこれを実際に適用する方法を検討している場合、メタプログラミングでは、体系化、実現、および自分のタスクに関連するスキルを磨く必要がある実用的な情報が大量に生成されています。
C ++ロシアには、このトピック専用の大きなブロックがあります。
- 「メタプログラミング、優しいコンパイラー」
- 「コンパイル時の最適化。 コンパイラーに詳細情報を提供します»
- 「C ++テンプレートとデータベース」
- 「メタプログラミングの進化:型リストを正しく操作する方法」
- 「古い方法を新しい方法で実装する手段としての概念」
- 「ゲームエンジンのメタプログラミング」
各レポートは何らかの形で興味深いものであり、あなたがそれを開示し始めた場合、十分なハラポスタはありません。 たとえば、最後のレポートはゲームエンジンです。gamedevには、ツールからSTLパフォーマンスまで、開発スタック全体に対する独自の要件があります。ここで、ゲームWorld of TanksのEncoreエンジンのライブ開発者に出会い、Boost.Python、パラメーターリフレクションについて説明します。 3Dモデルやその他の特定のもののための材料。 一般に、説明を注意深く読み、どこに行きたいかを理解する必要があります。
マルチスレッド、同時実行、非同期、およびすべてすべて
10個のレポートに専用のブロックがないという事実にもかかわらず、これらのトピックは他のすべてのレポートで何らかの形でカバーされています。 たとえば、FPについて言えば、FPがマルチスレッドの記述をどれだけ助けたり複雑にしたりするかは、常に興味深いものです。
また、実行モデルは他のすべてのレポートの深さに対して個別の座標を設定しますが、いくつかの専門的なものがあります。 「C ++ 17およびC ++ 20/23での並行性と並列性 」 。
なぜ完全に非同期ですか? 最近、世界はこの方向に大きな進歩を遂げており、非同期を操作するための組み込みツールがTIOBEトップのすべての言語に登場し、C ++も例外ではありません。たとえば、 TS C ++ Extensions for Concurrencyです。 非同期性の伝道者が非同期性を自己価値として売り込もうとするとき、穀物をもみ殻から分離する方法は? JavaScriptおよびJavaに関する会議では、「非同期」レポートがプログラムの3分の1を占めることがあります。 このトピックについて少なくとも1つの良いレポートがあると便利です。これは、 Align Technologiesの Pavel Novikov が行うことです 。
既存のツールと一緒に暮らす方法
プログラムの残りのレポートは上記のカテゴリには含まれていませんが、それ自体は小さな宝石です。 たとえば、DevOpsテーマは、上記の非同期と同じくらいホットです。 ご存じのとおり、「devops」は人や職業ではなく、文化です。 そして、この文化はツールの上に構築されており、そのいくつかはいまだに大きな苦痛を抱えています。 C ++自体は高速で非常に高速であるにもかかわらず、その組み立てはカメのように遅く、DevOpsカルチャーが依存すべき古典的なツールは複雑であり、多くの場合信頼性がありません。 これは、分散アセンブリツール、リンク方法、不幸なモジュールなどを指します。 Viktor Kirilovが「ヒッチハイカーによる高速ビルドのガイド」というプレゼンテーションを行い、おそらくこの痛みに少し対処するのに役立つでしょう。
ある種のそのようなレビューが判明しました。 何を忘れましたか? スマートポインター? はい、2つのレポート( one 、 two )があります。 C ++ロシアにはないもの。
トレーニング
定期的なプレゼンテーションでは不十分な場合は、本格的なトレーニングを実施しています。 それらはそれぞれ何時間も続き、特定のトピックに触れるため、レポートと同時に開催することはできません。 メインプログラムの1日前、つまり4月18日に開催されます。
説明はリンクにあります。 あなたがトレーニングのメインページから来た場合-「詳細」ボタンをクリックしてください-これはチケットが選択される場所であり、あなたのラップトップにインストールする必要があるものを言います。
次のステップ
レポートグリッドはまだ最終的なものではありません。 それでも、別の月が残りました(会議は予想どおり4月19〜20日に開催されます)。 あなたが参加者である場合、つまりリクエストである場合-メールを確認して、調査を送信しました。 そこで、私が行きたい報告書を書き留めておきます。 この調査は非常にインタラクティブで、回答はホールでのレポートの配布に影響します。
公式ウェブサイトでは、会議の全プログラムをよく理解して、何をどの順序で行きたいかを把握できることを思い出してください。
チケットを購入できます。 チケットにはいくつかのタイプがあり、自分に合ったタイプを選択することで、真剣に節約できることに注意してください。 ライブで会議に参加できない場合、つまりオンラインで参加する機会がある場合、このチケットには別のカテゴリがあります。