なんだかんだで3日目です。
お題は.NETとコミュニティについて、という感じですね。
最初は歴史的なところから。ソースを共有しだしてから15年。
オープンソースへの関わりというところでは他にも2004年あたりのWiXぐらいからやってるので、Monoの時期も含めていろいろ転機だったのかな。
2001年のときの”共有ソース”の時代はいわゆるオープンソースという文化のものではなく学会の人たちが見ることができるとかそういうレベルだったようです。
その後リファレンスソースが公開されたり、MSPLとかRSPLといったMicrosoft独自のライセンス体系ができ始めたり。
紆余曲折あって今ではGitHubでMITライセンスのもとオープンソースです。.NET Core、Compiler(Roslyn)、ASP.NETにTypeScriptに今日ではXamarinまで。
Day 1でScott Hunter氏が述べてたように完全にオープンソースな共通フレームワークの上でターゲットとしては多くのプラットフォームで動かすことができるようになりました。
次はBlogについて。Blogはコミュニティのエンジンになってる。
いろんな人がBlog書いて共有して、専門家ではないけれどその分野の専門家の知識や経験を学ぶことができる素晴らしい仕組みですみたいな。
Scott HanselmanのBlog: Your Blog is The Engine of Community
ゲーム周りやKestrelで有名: ASP.NET Core – 2300% More Requests Served Per Second
http://www.davepaquette.com/archive/2016/05/22/ASP-NET-Core-Distributed-Cache-Tag-Helper.aspx
http://en.xn--mgbz4cf.com/post/localization-extensibility-in-asp.net-core-10
http://dotnetliberty.com/index.php/2016/05/09/asp-net-core-factory-pattern-dependency-injection/
良い面も悪い面も両方あるからバランスよく見ましょう。
GitHub API(Octokit)を使ってPower BIでいろいろ視覚化したものを見せていく感じです。
.NET 2015のときに.NET Coreに興味をもってIssue投げたりPull Requestしたりした人のロケーション。(正確ではないかもだけど)
.NET 2016ではより多くの地域で関わった人が増えました。アフリカ、南米、インドや中東とかが地域としては増えてきてる感じですかね。
Azureや他のクラウド、KubernetesとかDockerとかLinuxとかより多くの人が関心を寄せてきてる感じ。
もうちょっと詳細。Data LakeとPower BIで作ったっぽい(※このあたりのPower BIのダッシュボード作ったのはJeff Fritz氏らしい?)
まぁこんな感じなんだなというのが分かればぐらいで。
Issueがどこから作られたか(緑色がMS、黒がコミュニティ)。4月にはいったらぐんと伸びてますね。
XamarinのPRのボリュームのTop10。コミュニティからのPRを見てもXamarin.Formsが多いですね。
.NET側はというとcorefxが多い。MSからより多いぽい。健全な証拠?あとはCoreCLRやRoslyn、Orleansあたりとかですかね。アクターモデルなOrleansは活気があるようです。
ASP.NETはドキュメント周りが多め。ドキュメント周りのインパクトは小さめですけど役立つものなので素晴らしいみたいな。
.NET周りのcontributorはこんな感じ。企業別でみるとGoogleに所属してる人が多いというのが面白いかな?サムスンはエキサイティングな仕事してるらしい。色が参加してる人が濃いのは人が多いところらしい。
※人の紹介については省略。
今回のこのダッシュボードだすにあたり、集計用にポイント振ったみたいですね。Issueのコメントは1点、PRは10点みたいな。
多くのコミュニティではブートキャンプの1つであるコーディング道場があって学習を始めていくことができます。
5つのスタックで見てみましょう。LAMPだったりRubyだったりiOSだったり。
どこにも.NETが無い。このあたり整備していく必要がありそうという話。
たとえばプログラマの為の専門学校。
https://www.learnhowtoprogram.com
http://www.epicodus.com/
ここでは.NETやC#、Nancyについて学べたりするようです。(中身を知らないけれどオンラインで、ブラウザで実行したり試すような学習ができるぽい?)
日本だとC#でぐぐれなところが有名そうですが主旨がちょっと違いますしね、、
いずれにせよブートキャンプ的なものの整備はやっていこうという感じでしょうか。
たとえばASP.NET Coreだとエディタもツールも好きなのを使っていいし、プラットフォームが気に入らなければスワップしてもいいし中身が気に入らなければフォークしたり修正したりもできます。
モジュール単位で言語を変えたり違うモジュールにしたり、、
ASP.NET Coreを例に挙げたけど、.NET Coreも同じ未来をみてる。より多くの貢献ができることを目標に。
より多くの人に参加してもらって、より多くのユーザーに、より多くの選択肢を。
で、全部GitHub上で。ASP.NETもF#もXamarinも。
あとはdot.netにもっと簡単に行きつくようにしたい。.NETもXamarinもツール類もドキュメントも全部ここから。
いろんなプラットフォーム向け(Windows、Mac、Ubuntuとか)に、Visual StudioだけじゃなくOmniSharpのようにIntellisenceなどコーディングを助けるような取り組みとか。
最後に。もっと巻き込みたいということでコード署名証明書やドメイン、ガバナンスなど法的支援などを必要とするのに十分大きなプロジェクトとかは.NET Foundationに参加してください的な。
Mono/Xamarinも最近入りましたね。
でアナウンス。Cakeが.NET Foundationに参加しました。
※CakeはC#ベースのクロスプラットフォームなビルド自動化フレームワークで、MSBuild使ってビルドしたりテスト実行やDSL、Octpus使ったデプロイなどなどが可能です。
そんな感じでキーノートもおしまい。コミュニティの貢献のおかげでここまで来れましたというお話しでした。
まとめ
コミュニティとして順調?に広がってるようです。もっと成熟していくといいですね。
Breakout Sessionはまだありますけど、これで3日間のdotnetConf キーノートシリーズ的なのもおしまいです。おつかれさまでした。
※おまけ: Keynoteの英語スクリプト