今、ユニケージ開発手法にギークが熱狂するワケ【USP研究所代表&オープンソースOSコミッター対談】
【PR】 スキル
無駄のない美しいコードを書き続けたい。そんなふうに思っても、現実的に「やるべきこと」に阻まれ、気持ちにフタをしてしまっているエンジニアもいるはずだ。そんな人に紹介したい「今、アツい集団」がいる。
「ユニケージ開発手法」を確立した技術者集団、ユニバーサル・シェル・プログラミング研究所(以下、USP研究所)だ。オープンソースOS「FreeBSD」のコミッターとして知られる後藤大地さんは「こんなに面白い会社は見たことがない」と、同研究所に惚れ込んでいる一人。
USP研究所の何がギークなエンジニアを熱狂させるのか? 後藤さんとUSP研究所の代表、當仲寛哲さんに話を聞いた。
システム開発未経験者が作り上げた『ユニケージ開発手法』とは?
後藤「変なことする人がいるもんだって驚きましたよ。だって、データベースを使わずに、UNIXコマンドとシェルスクリプトだけでエンタープライズシステムを作るって言うんですから。でもよくよく話を聞いてみたらすごく理に適っているし、開発アプローチも非常に論理的で合理的。それ以来、もう10年以上ユニケージ推しです」
FreeBSDのコミッターとして知られる後藤大地さんは「ユニケージ開発手法」の存在を知った当時をこう振り返る。
ユニケージ開発手法とは、UNIX系OSにおいてコマンドとシェルスクリプトでシステムを開発する手法。パッケージソフト的アプローチとは全く逆の、ユーザーに合わせてゼロから開発する、徹底したスクラッチ開発の手法である。プレーンテキストとして保存されたデータを、OSの基本機能であるコマンドとシェルスクリプトで処理するUSP研究所独自のソフトウエア開発メソッドだ。
プログラムの移植性や可読性、柔軟性、処理速度などに圧倒的に優れており、開発期間の短縮、ユーザー要件とシステムの乖離の最小化、保守性や拡張性の大幅な向上が実現できる。
後藤「マルチコアプロセッサーに対応したカーネルは、パイプラインで連結したプロセスを条件が揃えばほとんどロスなく並列実行できます。つまりユニケージ開発手法を用いれば、例えばCPUが32コアあれば、32コア分の能力をフルに使ってデータを処理できてしまうわけです。匠が鍛えた名刀でスパスパ斬っている感覚でデータを扱えるわけですから、気持ち良くないわけがありません」
一方、ユニケージ開発手法の生みの親であるUSP研究所の當仲さんは、元々大学で情報工学を学んでいたが、アルバイトに明け暮れるうちにプログラミングへの関心が失われ、就職後しばらくはITとは無縁の生活を送っていたという。
當仲「学生時代には、小遣い稼ぎに麻雀ゲームの開発をしたり、当たるともう1本もらえる自販機のルーレットをプログラミングしたりしていましたが、エンジニアになろうとは思っていませんでした。当時は飲食や呼び込み、清掃のアルバイトに明け暮れていたこともあって、どうせならITとは無関係な業種に進もうと。それでスーパーのダイエーに就職したんです」
しかし入社後、期せずして基幹システムの改革プロジェクトにアサインされることになり、當仲さんの人生は再びITの世界に引き戻される。
當仲「上司の指示で、しばらく遠ざかっていたUNIXを再び触るようになりました。手始めにやったのは、UNIXの開発者の一人であるブライアン・カーニハンが著した『ソフトウェア作法』を読み見直すこと。ページをめくる度に『シンプルな機能を持ったコマンドを組み合わせてプログラムを作れ』とか、『アルゴリズムもデータ構造もシンプルであるべき』『必要なコマンドは自作すればいい』だとか、すごく示唆に富む言葉が目に飛び込んできて、情報工学に対する意欲が再び湧き上がってくるのを感じました」
當仲「当時はシステム開発やデータベースに関する知識も経験も乏しかったですし、周囲に頼れる専門家もいなかったので、ここは素直にUNIXを開発した先生の言葉に素直に従ってみることにしたんです」
企業の基幹システムに用いられるアルゴリズムは、売上や在庫数などの数字を足したり引いたり、つなげたりといったシンプルな動作の集積だと見切った當仲さん。早速、UNIXコマンドを何十本ものパイプラインでつなぎ手元のデータを流してみたという。
當仲「想像した通りうまく動きました。ただ、それを見ていた外部のエンジニアからは『プログラムもソフトウエアもまったく理解していない』と、鼻で笑われてしまいましたが(笑)。でも、フタを開けてみれば、コマンドとシェルスクリプトだけで商品管理や売上管理に必要な機能を作れましたし、最終的にはそれまで大型汎用機上で稼働していた基幹システムを全部スクラップして、安価なUNIXで動くシステムに置き換えることができました」
この経験を生かし2005年に立ち上げたのが、當仲さんが代表を務めるUSP研究所だ。現在、USP研究所の顧客リストには、良品計画、成城石井、東急ハンズ、ロッテリア、三省堂書店、ビームスといった、誰もが知る企業名が並ぶ。
當仲「これまでに作ったコマンドは累計で2,000以上はあると思いますが、使い続けるうちにコマンドの淘汰が進み、今では選りすぐった50個ほどのコマンドで大半の基幹システムを開発できるようになりました。大きく複雑に見える問題も細かく分解していけば、小さな道具(コマンド)を使って速く安く解決できる。それは企業の大規模な基幹システムも例外ではありませんでした」
1/100の投資で10倍の性能を実現。
ユニケージ開発の恐るべきポテンシャル
現在主流のオブジェクト指向言語とデータベースソフトによる開発とは一線を画すユニケージ開発手法。OSとマシンの機能をフル活用するためデータの高速処理を得意とするのは明らかだったが、創業当初はなかなかそのメリットを世の中に受け入れてもらえなかったという。
當仲「ユニケージ開発手法は、細分化したタスクを大勢のエンジニアに振り分け、力業で押し切るタイプの開発手法とはまったく逆の思考。少人数でシンプルなコマンドを組み合わせ、無限の機能を生み出すアプローチです。エンジニア一人一人が熟練した多能工のように振る舞うことが求められるため、人海戦術で開発するほうが経済的でスケールアップしやすいと考えるビジネスサイドの人たちにはなかなか理解されませんでした」
しかし、ビッグデータ時代の到来で、ユニケージ開発手法に対する見方は好意的になったそう。
後藤「ここ数年ビッグデータを扱う機会が急速に増え、ユニケージ開発のポテンシャルを実感してもらいやすい環境になっているからだと思います」
2012年には、マシンレベルでも並列処理したらどれぐらいの性能が出るだろうという興味から、後藤さんと共にユニケージ開発手法をベースにした『uspBOA』というビッグデータ専用のソフトウエアアプライアンスを作った。
當仲「10万円以下で買ってきたごく普通のパソコンを10台並べ100GbpsのInfiniBandでつないだものなのですが、簡単なシェルスクリプトを書くだけで、10億件を超えるデータのソート、セレクト、ジョイン、演算ができ、100億件を越えるデータ検索を難なくこなすことができました。uspBOAの発表以降、皆さんから注がれる視線がずいぶん変わった気がします」
大手ベンダーに頼めば数億円オーダーのハードウエア投資を1/100以下に抑えた上、性能比は10倍以上というスペックを叩き出したのだから驚くほかない。
後藤「Web アプリ開発を例に挙げると、最近はクラウド上に立てたコンテナの中でプログラムを書き、もし性能が足りなければコンテナ数を増やして対処することが一般的です。ただこのやり方だとスケールアップする度に膨大な予算がいるし、OSごと仮想化するのでどうしても動作が遅い。一言で言えば無駄が多いんです。
ユニケージ開発手法なら1台のマシンをフルに使い切れますし、uspBOAが証明したようにマシンを並列につなげば安価で強力な実行環境を構築できます。大量の電力を消費するデータセンターなどよりはるかに環境に優しいのは言うまでもありません。今後ますますユニケージ開発手法のメリットが理解されやすい時代になってくるんじゃないかと思っています」
また、當仲さんはユーザーフレンドリー、開発者フレンドリーな環境を追い求めるあまり、エンジニアは大切なものを見落しているのではないかと感じている。
當仲「人間がちょっとだけ努力して歩み寄るだけで、コンピュータのリソースを100%使い切れるわけです。その方が合理的で経済的だし、後藤さんの言うように環境に優しいのは間違いありません。ただ漫然と楽な方へと流れていると、課題解決の道具に過ぎない開発環境に使われてしまうことになりかねない。もしそれが嫌ならレイヤードされた階層の上部で開発する便利さに安住せず、エンジニアはCPUやOS、アセンブラなど、低レイヤーに属する知識をもっと積極的に学ぶべき。それが私の持論です」
「よく斬れる美しいコマンド」は“ヘンタイ”にしか作れない
USP研究所は今、ユニケージ開発手法を使ったシステム開発に携わるエンジニアに加え、AIやIoT、FinTechなどの分野で需要が高まりつつある高速分散処理を極限まで高めるエンジニアの採用を急いでいる。
當仲「特に後者のエンジニアには、抽象度の高い思考力と想像力が求められます。例えるなら、鍋、釜、包丁が存在しない世界で、まっさらな状態からこれらと同じシンプルで使い勝手のいい道具を発明できるエンジニア。名工のワザと芸術家気質を兼ね備えたエンジニアです。そういう優れた人材を一人でも多く採用してユニケージ開発をより多くのシステムに適用できるように、OSレベルから改善していきたいと考えています」
後藤さんも「よく斬れる美しい」コマンドは“ヘンタイ”にしか生み出せないと言い切る。
後藤「USP研究所には、コマンドの善し悪しや、どのデータをディレクトリのどこに置くべきかで盛り上がるような“ヘン”な会社。ずば抜けて優秀な“ヘンタイ”エンジニアが幅を利かせているという意味では、オープンソース界隈の雰囲気にもよく似ています。だからこそ“よく斬れる美しい道具”が作れるんだと思います」
USP研究所にはウォーターフォール型開発に馴染めないエンジニアや、原理原則や本質を重視するエンジニアのための居場所があると當仲さんは訴える。
當仲「うちはキレキレのエンジニアリングと、商人道にも通じるビジネスマインドが同居しているちょっと変わった会社です。テクノロジーに栄枯盛衰は付き物ですが、USP研究所のエンジニアに求められるのは、低レイヤーに属するテクノロジーに対する深い見識、そしてシンプルな道具で複雑な課題を解決しようというUNIX哲学への共感です。
もし今、売上や利益の名のもと、バズワード的なトレンドに振り回されたり、エンジニアの創造性や論理性をないがしろにするような環境に身を置いていたりするなら、ぜひUSP研究所で力を発揮してほしいですね」
UNIXで世界を変えたいという気概と能力を持ったエンジニアを熱狂させる環境。エンジニアリングの理想を追求したいエンジニアにとって、USP研究所は有力な選択肢になるはずだ。
>>USP研究所(有限会社ユニバーサル・シェル・プログラミング研究所)の中途採用情報はこちら
取材・文/武田敏則(グレタケ) 撮影/吉永和久
RELATED関連記事
RANKING人気記事ランキング
米国優位が揺らぐ?ひろゆき「CPUの進化でGPU神話って崩壊しません?」【AI研究者・今井翔太が回答】
AWS認定資格10種類を一覧で解説! 難易度や費用、おすすめの学習方法も
NEW!
もう「仕事中のとっさの会話」で困りたくないエンジニアへ。コミュニケーションの瞬発力を鍛える三箇条【澤円解説】
社会で成功するゲーマーに、ひろゆきが聞く「現実世界を攻略できないゲーマーに足りないものって何すか?」
表面的なテクニックより「基礎基本の重要性」に気付かされた一冊【Node.js 日本ユーザーグループ代表・古川陽介】
JOB BOARD編集部オススメ求人特集
タグ