Notesを1件紹介し忘れてた。streamに感するブレインストーミングを始めたという2つの議題。betternessオーパーロードの解決ルール(一番一致度の高いやつを選ぶって意味で、betternessルール。それのよりよいの、今度こそ最良のみたいな意味でbestest)について。仕様を過度に複雑にしないように控えてたルールを追加するかっていう内容。静的メソッドしか受け付けない場面ではインスタンスメソッドを無視してオーバーロード解決試みるとかそういうの。betternessって言葉はずっと出てるけども、具体的にどんなルール足すかの話は初めて表に出てきたかも。internal」なアクセス制御をしたいんだけども...っていうやつ。提案していたものです。しとこうかなという雰囲気。属性がらみいくつか要望が出てるの、くみ取っていくみたい。Analyzerとか使ってメタプログラミング的に使う属性、別にコンパイル結果に残す必要ないよねということで。(DllImpoertとかで外部の関数呼び出すやつ)も使えるようにした方が、とのこと。式(指定したプロパティだけ書き換えて、残りのプロパティは元のをコピー)みたいなのを提案中だけども、それを任意の型についてできる方法もあった方がという話。継承とか絡むとめんどくさいそう。型の作成時にオブジェクト初期化子使えるようにもしたそう。入れようかみたいな話も出てたけどもいったん流れてたもの。入れれたんだけど、せっかくだからもっと効率の良い実装を模索できないかと考えてるみたい。引数の数が少ないときに配列作ってるとメモリ的にもったいないとかそういう話。入って、1つの値を返すだけの非同期処理はずいぶんと楽になったけども、ストリームデータを非同期に返していくのがまだなくて課題になってたやつ。メモリのアロケーション例えばの話、「1000件のデータをページングして、1ページ当たり100件を、10ページ分読む」みたいなの考えるとわかりやすいと思うんですけど、非同期処理が必要なのはページを読み込む10回だけで、残りの990回は同期でいいわけです。いう状況下で、990回分のawaitのオーバーヘッドが大きかったら結局性能でなくなるのをずっと懸念していました。キャッシュするような最適化をかければ問題ない性能が出るんじゃないかとのこと。非同期の4パターン出てくることになります。すべてのLINQプロバイダー作者にこの4パターン分の実装を強いるのとかちょっと嫌。Task<T>>の間の相互変換みたいなのを提供できないか考えたいとのこと。ステートメントの拡張が必要。asyncとかawaitとか追加のキーワードつけるべきかとかで悩み中。Go言語のチャネルGo言語が提供してるチャネルも非同期ストリーム的なものなのでそれとの比較でいくらかの考察を。マッチングで似たことができそうチャネルの場合は典型的な利用場面では利用側(consumer側)が1人だけとか、IAsyncEnumerableとの用途差もあるとか。ついて運営者について。