SlideShare a Scribd company logo
C++コミュニティを作る
高橋 晶(Akira Takahashi)
id:faith_and_brave / @cpp_akira
Boost.勉強会 #12 大阪 2013/06/22(土)
自己紹介
• Boost.勉強会 東京の主催者
• boostjp/cpprefjpサイトを作ってます
• Boost C++ Librariesコントリビュータ
• 著書
– 『C++テンプレートテクニック』
– 『プログラミングの魔導書 Vol.1 ~Construct the World, C++~』
– 『C++ポケットリファレンス』
はじめに
この発表では、私の主観を元にして、
• C++コミュニティと関わるなかで感じた楽しさ
• C++コミュニティにコントリビュートすることで、
世界がどのように変わってきたか
• C++コミュニティがどんな場所であってほしいか
について話します。
C++コミュニティとの出会い
コミュニティ活動の軌跡
• 私が新卒入社した会社での話です。
コミュニティ活動の軌跡
• その開発現場は、こんなところでした。
– 技術書読んでない
– 経験に基づいた開発体制
– 先輩が書いたコードから学ぶべし!
コミュニティ活動の軌跡
• 先輩や上司のプログラムから学ぶものが、本
当に正しいものなのか?
• そんな疑問を持つようになりました。
コミュニティ活動の軌跡
• ある日の昼休み
• インターネットでC++本の評判を調べ、
Effective C++とModern C++ Designを買いに本
屋に走りました。
コミュニティ活動の軌跡
• Effective C++すごいおもしろい!
• コードを良くする方法が、山のように載っている!
• おもしろすぎて、その日のうち(仕事中)に全部読ん
でしまいました…
• 記念すべき、最初に読んだ技術書でした
コミュニティ活動の軌跡
• 翌日から、さっそく実践してみました!
• コードがどんどん改善していきました!
• 拡張性が高くなり、エラーを検出しやすくなり
ました!
• おもしろい!
コミュニティ活動の軌跡
• その経験を職場の人に話したらこんな反応で
した。
• 「ふーん」
コミュニティ活動の軌跡
おもしろくない!
コミュニティ活動の軌跡
• こんなにおもしろいのに…
• 周りの人は、誰もEffective C++を読んでない…
• どこかに、このおもしろさを共有できる人はい
ないだろうか
コミュニティ活動の軌跡
• わんくま同盟 勉強会
• そこで、えぴすてーめーさんという人が、C++
について発表するらしい
コミュニティ活動の軌跡
• さっそく参加してきました!
• Effective C++を読んだことのある人がたくさん
いました。
• あんどちんさん、めるぽんと初対面!
コミュニティ活動の軌跡
• 楽しい!
• 自分が持っている情熱を、同じくらいの情熱
を持って応えてくれる!
コミュニティ活動の軌跡
コミュニティとは
• おもしろさを共有できる場所!
– 新しいことを覚えるのは楽しい!
– 他の人と話すことで、いろんな見方に気づける!
• Boost.勉強会にも、そういう人との出会いや、
楽しさの共有を求めて来ている人がいるので
はないでしょうか。
そこから始まったC++コミュニティでの活動
• はじめて勉強会に参加して、
「自分も何かしたい!」
と思うようになりました。
• 勉強会やインターネットには、役に立つ、おもしろい
情報を広めてくれる人たちがたくさんいる!
そこから始まったC++コミュニティでの活動
• その人たちに恩返しがしたい!
• そうしてブログを始めました。
活動は拡大する
• ブログを通じて、C++の人たちと少しずつ交流を持つ
ようになりました。
• Twitterでそれがさらに広がりました。
• 「やりたいよねー」といいつつ誰もやらなかったので、
Boost.勉強会を主催しました。
Boost.勉強会
最初は、30人くらいは来るかなーと思っていた
第1回 Boost.勉強会。
なぜかたくさん集まってしまった!
そしてプログラミングの魔導書へ
第1回 Boost.勉強会があまりに盛り
上がったので、このメンバで何かや
りたいなーと思い、本まで出しちゃ
いました。
これの著者は、第1回 Boost.勉強
会の発表者 + αです。
そしてプログラミングの魔導書へ
第1回 Boost.勉強会があまりに盛り
上がったので、このメンバで何かや
りたいなーと思い、本まで出しちゃ
いました。
これの著者は、第1回 Boost.勉強
会の発表者 + αです。
Bjarneさんにインタビューまでとっ
ちゃいました。
C++標準化委員会
• ある日、mixiで「C++0x」で検索したら、
• 「今度会議でC++0xについて発表するんだ」と日記に
書いてる人がいました。
C++標準化委員会
• 「おもしろそうですね!」とコメントを書いてみました。
• 「興味があるなら来てみますか?」と誘われました!
• それが近藤さん(redboltz)でした。
C++標準化委員会
• 会議に参加してきて、その経験をブログに書きまし
た。
• 参加してみたい!という人が何人かメールをくれま
した。
• そうして、uskzさん、江添さん、めるぽん、ゆーゆさん、
道化師さんたちが委員会に参加するようになりまし
た。
C++標準化委員会
• C++0xの規格案について日本からの意見を決める、ア
ドホック会議の話がでました。
• 委員会参加者だけでなく、一般の方も参加できる会議
です。
• 私のブログでアナウンスし、C++コミュニティの人が40
人くらいが参加しました。
• そうして、日本からのコメントが数十件、本家の委員会
に送られました。
• そうやって実際に入った言語機能もあります。
より多くの日本語情報を!
• Boostを多くのプロジェクトで使ってもらいたい!
• しかし、日本語情報が少ないという理由で却下され
ることがあります。
• Boostのドキュメントを全て翻訳するだけのパワーは
ありません。
より多くの日本語情報を!
• boostjpサイトで、Boost逆引きリファレンスという
のを作り始めました。
• 「何がしたい」から「どうやって」を調べる、目的
ベースのリファレンスです。
• 翻訳ではなく、自分たちの経験に基いて自分た
ちが解説を考えます。
• このやり方ならなんとかなる!
より多くの日本語情報を!
• 多くの人が協力してくれて、かなりのことを調べられ
るようになりました。
• 「職場でBoost逆引きリファレンス見てコード書いてる
人がいたよ!」という連絡を何度もいただきました。
より多くの日本語情報を!
• C++11は、C++03よりもはるかに便利です!
日本語情報を充実させて、もっと多くの人に使っても
らいたい!
• そういう想いから、C++11に対応したリファレンスサイ
ト、cpprefjpを作りました。
より多くの日本語情報を!
• 2013年6月現在、2,100ページほどのリファレ
ンスができました。
• しかし、まだ全体の50%くらいです。
もっと多くの協力が必要です!
• Boost.勉強会、Boost逆引きリファレンス、cpprefjp。
あらゆることに私が継続的に関わっています。
• ボランティアで参加してくれる人たちもいますが、な
かなか継続的な活動にはつながっていません。
• 完成に向けて、より多くの協力が必要です!
もっと多くの協力が必要です!
• より多くの日本語情報を求める方は、ぜひこの活動に
ご協力していただきたいです!
• 新しい技術を使おうとして「日本語情報が少ないと何
かあったとき困る」と断られる方。C++11やBoostの使
用を願うなら、ご協力ください!
• 私たちの活動が広まれば、きっと日本の技術採用状
況に影響を与えるはずです。
• 当たり前のように新しい技術を取り込んでいける、そ
んな業界にしていくために、ご協力ください!
コラボレーションによる自身の成長を
• cpprefjpサイトのような「みんなで編集していく情報」
は、「集合知」と呼ばれています。
• 自分が書いたものを、他の人に意見をもらって、より
良いものにしていく
• そういう、他の人とのコラボレーションによって、自分
自身も成長できます!
情報発信によって、あらたな仲間を作ろう
• 自身の成長だけを求めてインプット(学習)だけしてい
ると、そのうち話をする人がいなくなってしまいます。
• 自分が持っている情報をどんどんアウトプットしてい
くことで、自分が興味を持っていることに興味を持っ
てくれる人が増えて、きっと楽しくなります!
Boost逆引きリファレンス
• https://sites.google.com/site/boostjp/tips
• ここのページで、Boost逆引きリファレンスの作成を
行っています。
• 「自分はこんな使い方したよ!」というのを、どんど
ん書き込んでいっていただきたいです!
• テンプレートページと、他の人が書いたリファレンス
を参考にしてください。
Boostのリリースノート翻訳
• https://sites.google.com/site/boostjp/document/version
• ここのページで、Boostのリリースノート翻訳および
情報補完を行っています。
– チケット番号だけ書いてあっても、修正内容わからないの
で、できるだけ日本語で全容がわかるようにしています。
• 英語が得意でない方でも、翻訳サービスを使ったり、
辞書を引いたりするところから、比較的容易にはじ
められます。
Boost.勉強会ページ
• https://sites.google.com/site/boostjp/study_meeting
• ここのページで、Boost.勉強会のまとめ情報を作成
しています。
• 資料のまとめにご協力いただけると、主催者がとて
も助かります。
• 発表者の方も、自分の実績として誇れるページにす
るために、どんどん編集してください!
cpprefjp
• https://sites.google.com/site/cpprefjp/
• ここのサイトでは、C++のライブラリリファレンスを作
成しています。
• 全てのクラス・関数に一つ以上のサンプルを提供し、
みんなで考えたより良い解説を提供していくのが目
標です。
• 大小関係なく、様々な協力をお願いしたいです。
– 解説の日本語をもっとわかりやすく
– もっと簡単なサンプルを
– 自分のコンパイラでの検証
協力はしたいけど自分には難しい
• そういう声をよくいただきます。
• しかし、技術的に優れているもの、英語に長けてい
ることばかりが協力ではありません。
• 「今の自分にできること」からご協力お願いします。
Boostへのコントリビュート
• Boostがすごい便利ですごい!
• 日本のC++プログラマの中にも、Boostレベルのコー
ドが書ける人はたくさんいる
• どうにかして、日本からBoost開発者を生み出せな
いだろうか。
Boostへのコントリビュート
• メーリングリストに参加し、小さなバグ報告から始め
ました。
• 拙い英語でもなんとか伝わりました。
• そのバグ報告の経験をブログに書きました。
• 日本から、英語でバグ報告してくれる人がすごく増
えました!
typoひとつの報告から始めてみましょう!
• たとえば、私がBoost.Graphに報告した一つのバグチケットが
あります。
• 最小全域木のドキュメントに載っている擬似コードで、for文
の閉じがない、というものです。
typoひとつの報告から始めてみましょう!
• Boost.Graphは古くから存在するライブラリですが、この問題
を報告する人は誰もいませんでした。絶対誰か気づいてた
はずです。きっと!
• しかし、私が気づいて報告しなければ、この些細な問題は永
遠に直らなかったかもしれません。
• 自分が気づいた小さな問題を、他の誰かが気づくだろう、と
他人任せにせず、ほんの少しの勇気と行動力を持って、報
告してみてください!
Boost開発者を日本から輩出しよう!
• 現在、私の方で、OvenToBoostという、PStade.Ovenを
Boost.Rangeに移植するプロジェクトを進めています。
• Boost MLでのミニレビューも大きな問題なく通り、間も
なくリポジトリにマージされる予定になっています。
• 近藤さんも、Boost.SerializationやBoost.MSMの開発に、
大きな貢献をしています。
• 私たちがBoost開発に参加する前例になります!
• あとに続く人が出てきてくれることを願っています。
今年か来年の目標
• C++のNPO(非営利団体)を作ろうかと考え中
• ボランティアの作業者に、何らかの形で報いていき
たいと考えています。
• 寄付/スポンサーを受け付ける法人口座がほしい。
私の目標
• 私は、日本の開発現場において、技術のアップデートが当
たり前に行われる世の中を望みます。
• 私は、海外から受け取った有用な技術をただ使うだけでな
く、受け取った恩返しとして貢献することが、当たり前に行
われる文化を望みます。
• ほんの些細なことでかまいません。私たちのささやかな善
意が、世の中をより良くすることに、きっとつながります。
• C++コミュニティ発展のために、私たちがストレスなく働ける
業界にしていくために、みなさんからのコントリビュートをお
待ちしています。
まとめ
• C++コミュニティは、開発者・ユーザー関係なく、一人ひ
とりの善意と情熱によって支えられています。
• 参加者の方は、まずコミュニティの情熱に触れて、楽
しさを味わってください!
• そしてその情熱を何らかの形で、誰かに伝えていって
ください!
• さらにその中から、コミュニティとしての成果を出して
いくことに情熱を見出す方がでてきてくれることを願っ
ています。

More Related Content

PDF
Boost container feature
PDF
Study3 boost
PDF
Multi paradigm design
PPTX
俺とコミュニティ活動のタスク
PPTX
俺と2016コミュニティ活動振り返り
PPTX
Ha4goもくもく報告2016年11月分
PDF
Start Concurrent
PPTX
ソース管理しようぜ!Gitの部
Boost container feature
Study3 boost
Multi paradigm design
俺とコミュニティ活動のタスク
俺と2016コミュニティ活動振り返り
Ha4goもくもく報告2016年11月分
Start Concurrent
ソース管理しようぜ!Gitの部

What's hot (15)

PPTX
俺とGitHub(先行公開ver.)
PPTX
俺とGitHub
PPTX
2014 08-30 life with roslyn
PDF
ChatOps with Hubot
PPTX
ドキュメントの話、しませんか? #428rk01
PDF
Roslynで体験してみるC#スクリプト #cs_fukuoka
PDF
TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部
PPTX
デザイン作業効率化
PDF
TypeScript 独習会
PPTX
mrubyで作るマイコンボード
PPTX
ShibuyalispTT#4 LT 他言語で作ったWEBページをLispでも!
PDF
3日時間をもらったのでTypeScriptを触ってみた
PPTX
TypeScript 1.0 Released!
PPTX
俺と前回敗因から分析するバッドパターン
PDF
TypeScriptは明日から使うべき
俺とGitHub(先行公開ver.)
俺とGitHub
2014 08-30 life with roslyn
ChatOps with Hubot
ドキュメントの話、しませんか? #428rk01
Roslynで体験してみるC#スクリプト #cs_fukuoka
TypeScript 型定義ファイルのある開発 TypeScript勉強会 VSハッカソン倶楽部
デザイン作業効率化
TypeScript 独習会
mrubyで作るマイコンボード
ShibuyalispTT#4 LT 他言語で作ったWEBページをLispでも!
3日時間をもらったのでTypeScriptを触ってみた
TypeScript 1.0 Released!
俺と前回敗因から分析するバッドパターン
TypeScriptは明日から使うべき
Ad

Viewers also liked (20)

PDF
Processingによるプログラミング入門 第2回
PDF
C++コミュニティーの中心でC++をDISる
PDF
C++1z draft
PDF
Як_правильно_укласти_договір
PDF
Dental Implants [infographic]
PPSX
Media Auditing: Convegno Somedia 2004 - Furlanetto
PPT
Welcome to Animation Class
PDF
Horario 8º semestre
PPTX
e-Patients en e-Health (Masterclass VUMC)
PPTX
8 YouTube Channels for Aspiring Entrepreneurs | Avery Eisenreich
PPT
Protocolo de manejo de Fibrilación Auricular no valvular
PPSX
Nuevas tecnologías de la información y comunicación (ntic)
PDF
Welcome to the Funnel: We've Got Leads and Names
PDF
Ie – 514 Current Trends, Problems And Issues
PDF
3 d pie chart circular puzzle with hole in center pieces 9 stages style 4 pow...
PDF
Beyond JSON @ Mobile.Warsaw
PDF
Beneficios de invertir en Uniformes
PPTX
Customer Service Alberta
PPTX
【第5回東京SoftLayer勉強会】LT7 SoftLayerでOpenStackを動かしてみた
PPT
Social Media
Processingによるプログラミング入門 第2回
C++コミュニティーの中心でC++をDISる
C++1z draft
Як_правильно_укласти_договір
Dental Implants [infographic]
Media Auditing: Convegno Somedia 2004 - Furlanetto
Welcome to Animation Class
Horario 8º semestre
e-Patients en e-Health (Masterclass VUMC)
8 YouTube Channels for Aspiring Entrepreneurs | Avery Eisenreich
Protocolo de manejo de Fibrilación Auricular no valvular
Nuevas tecnologías de la información y comunicación (ntic)
Welcome to the Funnel: We've Got Leads and Names
Ie – 514 Current Trends, Problems And Issues
3 d pie chart circular puzzle with hole in center pieces 9 stages style 4 pow...
Beyond JSON @ Mobile.Warsaw
Beneficios de invertir en Uniformes
Customer Service Alberta
【第5回東京SoftLayer勉強会】LT7 SoftLayerでOpenStackを動かしてみた
Social Media
Ad

Similar to Development C++ Community (20)

PPTX
Cppmix 01
KEY
自社開発をしていなかった会社が Python を選んだ理由
PPTX
Lt7 circle ci hugo
PDF
コミュニティを立ち上げるに至った3つのマインドセット #techgirl
PDF
シビックテックと都市
PDF
CCPMとわたし
PDF
hcdvalue(20110604第4回webux研究会)
PDF
ハッカー中心の企業文化を日本で根付かせるには。TechLION vol.5 12/14/2011
PPTX
OSCのこれまでを振り返るとしたらこんな感じ?
PPTX
ICOと未来 Bitcoin Blockchain School
PDF
Decade 20091215
PDF
初めてのDocker
PDF
今時のオンプレなgithubクローン環境構築
PPTX
リモートワークで10kgダイエットした話
PDF
Circle ciで結果をslackに通知してみる
PDF
アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-
PDF
Osc2010 tokyo fall コミュニティ紹介
PDF
QtでC++開発環境構築
PPTX
普通のJavaエンジニアが、なぜ技術書を出版するに至ったか?
PDF
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介
Cppmix 01
自社開発をしていなかった会社が Python を選んだ理由
Lt7 circle ci hugo
コミュニティを立ち上げるに至った3つのマインドセット #techgirl
シビックテックと都市
CCPMとわたし
hcdvalue(20110604第4回webux研究会)
ハッカー中心の企業文化を日本で根付かせるには。TechLION vol.5 12/14/2011
OSCのこれまでを振り返るとしたらこんな感じ?
ICOと未来 Bitcoin Blockchain School
Decade 20091215
初めてのDocker
今時のオンプレなgithubクローン環境構築
リモートワークで10kgダイエットした話
Circle ciで結果をslackに通知してみる
アイデアを塩漬けにしない-世界中の人に手伝ってもらう方法-
Osc2010 tokyo fall コミュニティ紹介
QtでC++開発環境構築
普通のJavaエンジニアが、なぜ技術書を出版するに至ったか?
Hyperledger Fabricコミュニティ活動体験& Hyperledger Fabric最新状況ご紹介

More from Akira Takahashi (20)

PPTX
Cpp20 overview language features
PDF
Cppmix 02
PDF
Modern C++ Learning
PDF
cpprefjp documentation
PDF
Boost tour 1_61_0 merge
PDF
Boost tour 1_61_0
PDF
error handling using expected
PDF
Boost tour 1.60.0 merge
PDF
Boost tour 1.60.0
PDF
Boost Tour 1_58_0 merge
PDF
Boost Tour 1_58_0
PDF
C++14 solve explicit_default_constructor
PDF
C++14 enum hash
PDF
Programmer mind
PDF
Boost.Study 14 Opening
PDF
Executors and schedulers
PDF
Improvement future api
PDF
C++14 variable templates
PDF
C++14 relaxing constraints on constexpr
PDF
C++14 binary literals
Cpp20 overview language features
Cppmix 02
Modern C++ Learning
cpprefjp documentation
Boost tour 1_61_0 merge
Boost tour 1_61_0
error handling using expected
Boost tour 1.60.0 merge
Boost tour 1.60.0
Boost Tour 1_58_0 merge
Boost Tour 1_58_0
C++14 solve explicit_default_constructor
C++14 enum hash
Programmer mind
Boost.Study 14 Opening
Executors and schedulers
Improvement future api
C++14 variable templates
C++14 relaxing constraints on constexpr
C++14 binary literals

Development C++ Community