ディスカッション (5件)
現在、まだ誰もやったことがない新しい試みに挑戦しています。
別にこれまで誰もやったことがないことをやるべきってわけじゃない。どちらかと言えば「売れるもの」を作らなきゃいけないって感じかな。そうじゃないと法的な問題や競合、市場の独占なんかで詰む可能性があるから。これは個人の問題じゃなくて、今の世の中がそういう仕組みだってことだね。
過去に何が行われてきたのか、あるいは自分が終わる前に何が完成しているのかをすべて把握するのは無理。でも、既にある成功例をただコピーするわけじゃないなら、自分の可能性を試してみることはできるはず。ただやってみるため、その経験を得るため、そして動くものを作るため。自分が便利だと思ったり、素敵だと思ったりする何かのためにやるんだ。
それに、その努力の結果が売れるものにならなかったとしても、プロセスを通じて成長できる。真に新しいことに挑戦したからって、商業的な成功が保証されるわけじゃない。でも、それは必ずしも悪いことじゃないよ。
14年くらい前に https://socketcluster.io/ というかなりマイナーなものを作り始めたんだ。WebSocketベースのオープンソースRPC+Pub/Subライブラリで、バックプレッシャーの監視機能を備えた順序保証付きの非同期ストリーム処理に焦点を当てているよ。
最初はそんな感じじゃなかったんだけどね。最初は単にマルチプロセスへのスケーリングを簡単にするための、よくあるWebSocketライブラリの一つだった。
面白いことに、いまだに「早すぎた技術」だと感じることがあるんだ。クライアントからのRPCやPub/Subメッセージを順序を守りつつ効率的に処理する能力は極めて重要に思えるだろ?それなのに業界を見渡すと、いまだにコールバックベースのイベントハンドラがアプリケーションロジックの主流だし、本来キューを使うべき場所で使われていない。みんな、キューといえばRabbitMQやKafka、STOMP、NSQといった追加のアーキテクチャが必要で、オーバーヘッドの大きい重厚なシステムだと考えがちで、常にExactly-once配送を求めてしまう。アプリのロジックにキューの概念を組み込もうとしないんだ。現代のソフトウェアは、この死角のせいでレースコンディションだらけだよ。それでも、自分のメッセージを伝えるのは難しい。そのメリットを説明するのは本当に大変なんだ。
今まで誰もやったことがないことに飛び込むのは楽しいよね。
でも、本当に楽しいのは何か知ってる?過去に誰かがやって、忘れ去られてしまったようなものを取り上げて、そこに自分のスピリットで磨きをかけることだよ。探索すべき余地は山ほどあるんだ。
だから、もし誰もやったことがないことを本当にやりたいなら、マイナーで、時間がかかって、難しくて、完成させないと分からないような未知の要素があることに取り組めばいい。
これは斬新なことをするための素晴らしいチェックリストだけど、「価値があって」かつ「独創的」なことをするための指針にはなってないよね。
例えば、ペット用としてクズリを育てるための外洋浮遊プラットフォームを作るなんて、誰も試してないだろうし、そのチェックリストを全部満たしてる。他にも、バグパイプ、スライドホイッスル、ジャンベのために作曲された7部構成の交響曲で、偶然性と観客参加要素を取り入れたものとか。あるいは、非常にグルテン豊富なパスタで食べられる服を編む方法を開発するとか。カラスにRobloxをプレイするように訓練するとか。
でも、それらって「価値のある」プロジェクトかな?まあ、確かめる方法は一つしかないだろうけどね。