Just for Fun. No, Really. - 面白半分で開発したんです。本当に。 (2022)
(justforfunnoreally.dev)- 「私たちはソフトウェア開発が好きだ」コーディングは問題解決へ向かうジグザグの旅であり、多くの人が考えるほど目的地は重要ではない
- 私たちはしばしば次のような質問を受けます:
- 「なぜこれをやっているのですか?」
- 「このプロジェクトの目的は何ですか?」
- 「このプロジェクトはXより何が優れているのですか?」
シリコンバレーの熾烈さ
- Hacker News やほかのスタートアップ中心のニュースサイトで多くの時間を過ごしていると、誰もが次の数百万ドル規模のスタートアップやイグジット戦略に執着していると信じてしまうかもしれない
- 人々が純粋に楽しみのためにオープンソースコードに取り組んでいることを想像しにくいかもしれない
- ソフトウェア構築の芸術を愛するハッカーたちがいる。彼らは挑戦のために、楽しみのためにそれをやっている。億万長者になろうとしているわけではない
消費者文化
- あるいは、他人のソフトウェアを消費するばかりでほとんど何も作らないなら、「このプロジェクトは自分に何をしてくれるのだろう?」という考えにとらわれるかもしれない。(そして、そのプロジェクトが自分と関係なければ、なぜ存在するのか不思議に思う)
- 自分たちのソフトウェアを他人に消費してもらう必要のないハッカーたちがいる。もちろん、他の人が自分の仕事を楽しんだり、感心したり、感謝してくれたらうれしいが、それは厳密には必要ではない。ただ作ること自体が楽しいのだ。
私たちはただ楽しみのためにやっている。本当に。
- 最後に、日常業務に必要なプログラミング技術だけを学んだ人たちは、常に新しいことを試すプログラマーを理解できないかもしれない
- コードとともに生き、コードを呼吸するハッカーたちがいる
- コードの1行1行がその金銭的価値を証明しなければならないとか、キーボードの前で苦労する1時間1時間を説明しなければならないという考えは、本当に嘆かわしい
- 過程そのものに価値がある。欠陥があったとしても、それ自体に価値がある。最終成果物だけが重要なのではない
- プログラミングについて私が最も好きな引用で締めくくりたい:
プログラマーは詩人のように、純粋な思考の素材からほんの少しだけ離れた場所で仕事をしている。彼は想像力を働かせて、空中に城を築く。これほど柔軟で、これほど容易に磨き上げ再加工でき、壮大な概念構造をこれほど簡単に実現できる創作媒体はほとんどない。しかしプログラム構造は、詩人の言葉とは異なり、構造そのものとは別に目に見える成果物を生み出し、動き、働くという点で現実的である。
— フレッド・ブルックス, The Mythical Man-Month
試してみよう!
- 自分は道に迷ってしまったと思うなら — コーディングは以前は楽しかったのに、今ではただ打刻して給料をもらうためにやるだけの苦行になってしまったのなら、私たちはあなたを再び招待したい!
- あるいは、風変わりなアイデアのプログラミングは専門家や学者だけのものだと思い込まされてきたのなら、このページはあなたのためのものです。あなたにはいじくり回し、その過程を楽しむ権利があります!
- コンピュータの中で作りたいもの、学びたいもの、体験したいものを考えてみてください。そして最初に検索したり調べたりせず、ただ飛び込んでみてください。たぶん少しは楽しく感じられるはずです。本当に。
クラブ
順不同で、ここに「ただ楽しみのために」というタグを誇らしく掲げているいくつかのプロジェクトがあります。
- Natalie - 楽しみのために作られた Ruby コンパイラ
- ZigSelf - 楽しみのために Zig で作られた Self 実装
- php-parser-rs - 楽しみのために Rust で作られた PHP パーサー
- ex6502 - 楽しみのために Elixir で作られた 6502 プロセッサエミュレーター
- Piko-piko OS - 楽しみのために作られた x86 16ビットのおもちゃ OS
- Folders2kt - 楽しみのために作られた難解プログラミング言語
- GCC Rust - 楽しみのために作られた Rust コンパイラ
- Soul - 楽しみのために作られた SQLite REST およびリアルタイムサーバー
- hssp - 楽しみのために作られた HTTP ステータスコード CLI
- PyCraft - 楽しみのために Python で作られたマインクラフトランチャー
- hashsearch - 楽しみのために作られた逆画像検索エンジン
- quackspeak - 楽しみのためにアヒルを使ったテキスト読み上げエンジン
- Quark - 楽しみのために作られた高性能 Lisp 方言
- Whitecat - 楽しみのために作られた PHP 開発向け CLI
- eClient - 楽しみのために Python で作られたマインクラフトランチャー
- CascadeOS - 楽しみのために作られた汎用 OS
- Kiesel - 楽しみのために Zig で作られた JavaScript エンジン
- github-pewpew - 楽しみのためにリポジトリを削除する CLI ツール
- dt - 楽しみのために作られた連結型 AWK 風言語
- grab - 楽しみのために作られた軽量 grep クローン
- math-with-regexps - 楽しみのために正規表現で数学をする
- noro - 楽しみのために作られたウィンドウマネージャー付きテキストエディター
- Vox - 楽しみのために Elixir で作られた静的サイトビルダー
- jimson - 楽しみのために作られた JSON パーサー
- txt2tufte - 楽しみのために作られたタフティ風ウェブサイトビルダー
- Azure Storage ウェブエクスプローラー - 楽しみのために作られた Azure Storage ウェブエクスプローラー
- renam - 楽しみのために作られた非常に高速なファイル名変更ユーティリティ
- Funciton - 楽しみのために作られた箱で構成されたプログラミング言語
GN⁺の意見
- この記事は、プログラマーが単純に楽しさを追求することの価値と重要性について語っている。今日の消費者文化やスタートアップ文化では、すべてが実用的で収益性があるべきだという圧力があるが、それはプログラミングの創造性や革新を妨げる可能性がある。
- オープンソースコミュニティは、この「ただ楽しみのために」という精神を体現した良い例だ。多くの重要なオープンソースプロジェクトは最初、誰かの趣味プロジェクトとして始まり、その過程で新しいアイデアやアプローチが探求されてきた。
- ただし、この姿勢を過度に追求すると、実用性に欠けるプロジェクトが量産される可能性もある。結局のところ、楽しさと実用性のあいだのバランスが重要なのだろう。それでもこの記事は、私たちがしばしば忘れてしまう純粋な楽しさと好奇心の価値を思い出させてくれるという点で意味がある。
- 日々の業務に疲れた開発者にとって、このような趣味プロジェクトは良い刺激とモチベーションになりそうだ。新しい言語や技術を学びたいが時間がないと感じている人にも勧めたい記事だ。
5件のコメント
Python言語自体も、1週間ほどの休暇期間に遊び半分で作られたlanguageだと理解しています。
趣味で開発するのは好きなんですが、最近は退勤するとノックダウンしてしまって、想像もできない気がします。すごい方がたくさんいますね
よく使うオープンソースプロジェクトのイシュートラッカーでトラブルシューティングを手伝ったり、ドキュメントに貢献したりする方法もあります。必ずしも新しいプロジェクトを始めたり、コーディングをしたりする必要はないようです
94年までは単なるコンピューターユーザーだったが、言語を学び、95年に「電算」関連の仕事に就いた。
今にして思えば、私はとても運のいい幸運な人間だった。
Hacker Newsの意見
コードを通じて何かを作ることを楽しんでおり、時には金銭的利益を考えることもあるが、主に楽しみのためにプロジェクトを進めている
面接で個人プロジェクトを説明したが、面接官にどうしてそんなプロジェクトをやったのかと繰り返し聞かれて不快だった
ソフトウェアを作る動機を説明する際、ひとりで浜辺に砂の城を築いて満足感を得るのと同じだとたとえている
大規模言語モデル(LLM)によって、面白いプロジェクトをより簡単に始められるようになった
個人プロジェクトに時間を投資するため、生活費を減らし、契約と契約の間の時間を活用している
楽しみのためのプロジェクト一覧に完成したプロジェクトしか含まれていないのは残念だ
昨日同僚たちとの会話で、大量の作業を通じて技術を伸ばすことが重要だという結論に至った
楽しみで作った製品も、金銭的利益のために作った製品も、どちらも品質が低い可能性はある
ひとりで素晴らしい料理を作るのと同じような内面的な経験だが、それ自体に価値がある
Hacker Newsのようなサイトでは、多くの人が次の大ヒットスタートアップを準備していると思われがちだ