Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
いいね が燃料! 「自分のOSS」で1億ダウンロード突破の開発者が語る OSS 開発のリアル
Search
jsakamoto
July 06, 2025
Programming
260
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
いいね が燃料! 「自分のOSS」で1億ダウンロード突破の開発者が語る OSS 開発のリアル
オープンソースカンファレンス 2025 Hokkaido のセミナー枠での発表資料です。
jsakamoto
July 06, 2025
More Decks by jsakamoto
See All by jsakamoto
WebMCPを試してみました
jsakamoto
0
26
VRT in Blazor App Dev - .NET Lab 2026 Jul LT
jsakamoto
0
62
Google Chrome の開発者ツールで C# コードをデバッグできるって知ってました?
jsakamoto
1
86
useEffect は使いたくないのですが、ではどうしたらいいですか
jsakamoto
1
120
開発したプレゼン用ツールが15年経っても誰も使ってくれない話
jsakamoto
0
100
UI コンポーネントカタログに MCP サーバー機能を追加する試み、そしてその結果
jsakamoto
1
130
minify の効果を最大限に引き出す TypeScript コードを書く
jsakamoto
2
390
JavaScript 以外の言語によるフロントエンド Web 開発が既に実用段階である話
jsakamoto
0
2.9k
ベクトル化を使った意味検索を、簡単にアプリケーションに搭載できる時代になっていた件。
jsakamoto
2
420
Other Decks in Programming
See All in Programming
SLOをサービス品質の共通言語にするために 取り組んできたこと
wakana0222
0
500
JAWS-UG横浜 #102 AWSサ終供養LT会 成仏できない AWS サービスたち 〜本日、三体供養します〜
maroon1st
0
210
ソフトウェア設計に溶けるインフラ ― AWS CDK のインフラ認識論
konokenj
2
540
【SRE NEXT 2026 Lunch Session】一人目専任SREの立ち上げを加速する ― AIと進めたオンボーディングで2分を0.04秒にした話
pkshadeck
PRO
0
2.7k
ローカルLLMでどこまでコードが書けるか -拡張版 / How much code can be written on a local LLM Extended
kishida
12
4.8k
Foundation Models frameworkで画像分析
ryodeveloper
1
120
作るコストが小さくなった時代 幸せに働くために改めて考えたいこと 〜エンジニアとして価値を出し続けるために注視している二分野〜
yuppeeng
0
100
Terraform標準の組織で AWS CDKをどう使うか
mu7889yoon
0
280
Haskell/Servantを通してWebミドルウェアを捉え直す
pizzacat83
1
580
なぜ型を書くのか? TSKaigi2026で改めて考える #tskaigi_smarthr
kajitack
0
380
継続モナドとリアクティブプログラミング
yukikurage
3
610
壊れたパーサから始める関数型設計と構成的なパーサ #fp_matsuri
raiga0310
2
230
Featured
See All Featured
How GitHub (no longer) Works
holman
316
150k
ラッコキーワード サービス紹介資料
rakko
1
3.9M
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
220
Odyssey Design
rkendrick25
PRO
2
730
Producing Creativity
orderedlist
PRO
348
40k
Taking LLMs out of the black box: A practical guide to human-in-the-loop distillation
inesmontani
PRO
3
2.3k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.8k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
280
How to Ace a Technical Interview
jacobian
281
24k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
220
Designing for humans not robots
tammielis
254
26k
The #1 spot is gone: here's how to win anyway
tamaranovitovic
3
1.1k
Transcript
None
2
• OSS プロダクトの使い方の話… は、しません • 有名 OSS にコミットする話... は、しません •
「自分の OSS」を開発し世界へ公開することをお話します 3
What Kind of OSS Am I Developing? 4
• つまり、一定規模のアプリケーションやミドルウェアとかではない • 小粒な機能セットの、ライブラリや単発のコンポーネント • 2019 年頃からは Blazor 向けが中心 5
• Blazor の公式ドキュメントにも掲載 https://learn.microsoft.com/aspnet/core/blazor/c omponents/prerender?#prerendering-guidance 6
• Storybook を 100% Blazor で再実装 • 過去のオープンソースカンファレンス Hokkaido でも紹介
• 最近 MCP サーバー機能を追加しました https://github.com/jsakamoto/BlazingStory/ 7
1億超 13 https://www.nuget.org/profiles/jsakamoto 95 8
• すごいと思った? • でも実は裏 (?) があるんです 9
ChromeDriver, 67,325,743 IEDriver, 11,942,413 GeckoDriver, 7,761,313 GeckoDriver Win64, 2,676,651 その他,
29,103,485 “~Driver” だけで 75% 以上 95 パッケージのうち、この4パッケージだけ で4分の3を占める WebDriver バイナリを収録しただけ のパッケージ Selenium の開発に関与している訳 ではない WebDriver バイナリを NuGet パッケージに 仕立てているだけ 10
1年 2年 3年 4年 5年 6年 7年 8年 9年 10年
11年 12年 13年 0 80,000,000 160,000,000 240,000,000 320,000,000 自分 x 95 パッケージ 著名OSS x 1 パッケージ 11
• 少しだけある • 古いですけど NPOI とか • 自分のアイディアを通すのが面倒 • 英語の壁
• そもそものスキルの課題 12
What Motivates Me to Develop? 13
• SNS でいいねをもらうこと • YouTube チャンネルでの紹介 • Microsoft 公式の ASP.NET
Community Standup とか 14
BlazorWasmPreRendering.Build Blazing Story Blazor Gamepad Blazor i18n Text Find Razor
Source File Awesome Blazor Browser 15
ユーザーは @jsakamoto をお だてておけば、ライブラリが手に 入る @jsakamoto は、おだてられた らドーパミンが分泌される 16
• 日本語文化も大事にしたいです • しかしソフトウェア界隈は英語話者の数が圧倒的に多い • たくさん いいね をもらうには、英語で発信したらいいのでは... ! •
幸い、近年の機械翻訳は秀逸 17
• 言い訳 心の安寧 が得られる • 金銭での対価は払っていないが、 OSS コミュニティに貢献してるから、という免罪符 • OSS
は、消費するだけだと枯れてしまいかねない • OSS の “フリーライド” それ自体には罪悪感を感じる必要はない • ただし、Issue 報告して保守してもらうばかりだと作者の心が折れる • 何の解決にもならないが、自分で OSS を開発・公開するようになって、他 OSS への不 具合報告にめっちゃ気を遣うようになった 18
Choosing an OSS License 19
利用者側には制約を求めたくない • ソースコードの開示不要 • 商用利用可 派生物はソース開示を強制したい • Fork されてもオープンソースであることを 堅持したい
• 放棄された OSS を fork しクローズドで配 布するビジネスを許したくない 20
• 利用者側には制約を求めたくない • GPL では いいねがもらえなく 利用者がいなくなってしまう心配 • 派生物はソース開示を強制したい •
そこで LGPL を採用 • LGPL は利用している側のソースコードの開示不要… と理解していた • .NET 向けライブラリなので基本的に動的リンクなので • しかし、利用者側のリバースエンジニアリングを許可する必要があった • 静的リンクしていないことを証明するため、らしい 21
• MIT License • オープンソースであることにこだわらない場合 • それよりも利用しやすさを優先する場合 • The Unlicense
• 独自性・独創性がなさすぎなもの • Selenium WebDriver のパッケージに採用 22
Honestly, Is It Profitable? 23
• お金もらうと責任が大きくなりそう • いいねが欲しいだけで 個人の “楽しみ” としてやっているので • “金払ってるんだから” という理由で態度でかい人が出現しそうで怖い
• でも最近、README に Banner を掲載する系の広告モデルが気 になってはいる 24
• OSS 活動により Microsoft MVP Award を受賞 • Microsoft MVP
Award の特典がなかなかによい 25
Challenges in OSS Development 26
• 調子にのって本数を作りすぎた • 95 パッケージ • 保守が大変 • Issue 登録されても数ヶ月着手できないとか
• 既存のパッケージの改善も遅々として進まず • 新しいものを学んだり作ったりする時間が削られる • 作りたいパッケージのアイディアはまだ湧いてくる 27
構想・リサーチ 7% 本体機能の実装 14% テスト開発 21% README の作成 57% ※体感上のイメージです
28
• README の作成がいちばんしんどい • しかもこだわりで英語で書かなくてはならない縛り • 生成系 AI のおかげでだいぶん楽にはなってきた •
でもここを一番がんばらないと いいねが 使って もらえない • このライブラリで何ができるのか・何を解決するのかを冒頭ではっきりさせる 29
• 「あなたのライブラリを使ったら、エラーになりました」 • ビルド時のエラー? 実行時のエラー? • 何をどう操作したのか? • エラーメッセージとスタックトレースは? •
ブラウザやプラットフォームのバージョンは? • 普通には自分の手元で再現しない • 再現用のサンプルプログラムが添付されていれば、解決が早くなる 30
• 「我が社の製品はあなたのライブラリを使用しています。 あなたのライブラリにセキュリティ上の脆弱性があるかどうか、 1 営業日以内に返答してください。」 • そういう厳格さが求められる界隈があるのはわかる • けれども責任持てないですよ •
多くの OSS およびその利用許諾では、利用者が責任を持つ 31
• 本質的な変更に加えて、あらゆるファイルのコーディングスタイル を変更 • this を付ける/付けないとか、静的メソッドを拡張メソッドにするとか、そういうレベルの 変更を含む • 迂闊に Merge
すると何が紛れ込むか恐ろしい • 個人活動の OSS なので変更内容の把握に時間を割きたくない 32
• スキマ時間で開発してるので、自分の書いたコードや設計を忘れる • 95 パッケージもあるし • バグ修正や機能追加でデグレーションが容易に発生し得る • 自動化テストの整備は必須 •
自動化テストがあるおかげで、安心してコードの変更ができる • コードが腐らない • 継続したソフトウェアの維持発展に欠かせない • テストを書くのも楽しいよ 33
The Rise of AI and the Future of OSS Development
34
• チャットアプリ • ChatGPT • Google Gemini • Claude •
GitHub Copilot Pro+ • よく使うモデルは GPT-4.1 と Claude Sonnet 4 • Agent モードはあまり使った実績がない • コード補完を常用 35
• README を書くのがずいぶんと楽になった • 機能追加部分の書き足しの草稿とか • バージョン移行用のガイドの作成とか • とくに英語で書いてもらえるのがうれしい •
ドキュメントコメントを書くのが劇的に楽になった • おおむね手放しで任せられる感じ 36
• コーディング作業は結局、おおむね今までどおり • コード補完で、若干の作業効率の向上はある • ChatGPT の Web 検索で調べ物の効率は向上した •
コーディングをまるごと任せられる感じがしない • Vibe Coding とか流行っているようではありますが... • 待ち時間ばかりかかって生産性を感じない • コーディングは “楽しみ” なので AI に押しつけたい動機が低い • “自分だけが取り残されるのではないか” の不安から試してはいるけど 37
• 正直、未来のことはわかりません • いまはまだダメな感じにみえるコーディング技能だって、ここ数年の進化をみると、数年 後、数ヶ月後にはどうなっているかわからない • UI コンポーネントライブラリは、AI にCSS生成を任せるヘッドレス タイプが流行るのではという記事を見た覚え
• でも自分の観測範囲では、まだまだ旧態依然としたライブラリが元気な印象 • 何かは変わっていくんでしょうけど、無くなることもなさそう 38
Conclusion 39
• 自分の OSS を開発・公開する、という関わり方もある • 使うだけでもない • 既存の著名 OSS に貢献するのでもない
• 不純な動機でも構わない • 世界のどこかの誰かのためになれば Win-Win • その手段としての OSS 開発活動 • もちろんマネタイズも • いかにして持続可能にするか 40
• 「自分の OSS」作りに挑戦したいあなたに • 実際に歩を進めるきっかけ、または今後の指針の参考になれば幸いです • OSS を使いつつ、様々な製品開発で価値創造しているあなたに • ユーザーへの貢献、ありがとうございます
• いっぽうで OSS を開発・公開している人たちにも励ましの一言を • 不具合報告の際はできれば再現サンプルの提示を 41
Powered by ONLY OFFICE Desktop Editors 42