「経済合理性」と「モノづくり」


「合理性」という言葉が入るとなんとなく良いものだという印象があるかもしれませんが、「経済合理性」と呼んでいるものの実体はほとんど「金儲け優先主義」の正当化のように見えます。

通貨量は借金によって増えます。戦後の成長期の日本では、大中小の企業が銀行から借金をし、設備や社員に投資して、製品を生み出して利益を出してきました。このときの銀行からの借金が通貨量を増やし、借金の利息が銀行の経営に費やされます。それと同時に社員が受け取った給料が消費を生みます。そうやって民間の活動が活発に行われることで、銀行にも企業にも働く人たちにも通貨が流れていました。

企業が銀行から借金をしなくなると、設備や社員への投資が減らされ、銀行は資金を国債に振り向けます。さらに増税が加わって、民間の活発な活動が減り、通貨がどんどん川上に吸い上げられるようになりました。

そういう変化を見てきて、何が合理的なんだろうと思うことが増えました。何のための合理性なんだろうかと。

日本のモノづくりはモノに魂を入れる作業だと言われることがあります。モノは改善され続け、品質が向上し利便性が高くなる。それが日本製の信頼に繋がっていく。そしてその結果としての利益を享受する。モノづくりをする人たちの最大の喜びは「使ってくれた人の喜び」を知ることや「社会の役に立つこと」であり、その結果としての人々の暮らしが豊かで快適なものになる。結果的に人々のための合理性というものが出てくる。「理」に「合う」から合理性ですもんね。「利」じゃないところがミソではないかな。

ギター製作者でありプログラマーでもある自分もこの合理性について考える機会が多いです。

ギターを製作するときは、所謂伝統的なやり方を採用する部分が多い。量産メーカーではないから、同じものをたくさん作る必要がないので、手でやれることは手でやります。

エレキギターのボディを作るとき、鋸、鑿、鉋で作業をします。型を作ってルーターで切削すれば速く終えられる作業かもしれません。同じものを年間10台作るなら合理的かもしれません。そうでなければ、それほど合理的とも思えませんし、使う人の顔を思い浮かべながら、鑿で木を削る方が楽しく作業できます。完全手作業でやって、1ヶ月にエレキギターなら4本製作できます。案外手作業でも速いのです。機械を使って作業時間が短縮された分で他の事をやればいいという考えもありますが、中途半端にやるとあまり良い結果は出ません。やり散らかすだけになりがちで、素人っぽい仕事にしかならない。そうなると使う人の理に合わなくなってしまう。

プログラマーとして見た場合はどうかというと、最近ではFPGA(Field Programmable Gate Array)や高性能なマイクロコントローラー、Linuxが動作するボードコンピューターといったものが個人にも手が届く価格で流通するようになったことで、欲しいものを形にすることが容易になってきました。AI搭載のドローンで農作業を支援するとか、センサーをインターネットに接続して身の回りのものを管理・操作することも難しくなくなりました。経済合理性を追求するのとは違う、使う人の理に合うモノを作りやすくなってきました。

FPGAというのは、論理回路をソフトウェア的に作って、特定用途向けのハードウェアに仕立てられるチップですが、特定用途向けのハードウェアの設計、開発、生産設備の構築という従来の生産プロセスでやるよりも、場合によってはFPGAで作った方がコストがかからない。多様な用途、究極は「私専用」の用途に敵うものを作ろうという場合には優れたものだと思います。

最近、ソフトバンク社がマイクロプロセッサーの仕様をライセンスするビジネスをやっているARM社を買収しました。買収金額は3兆円なんていう目の飛び出るような大きなものです。IoT(モノのインターネット)でたくさん使われる高機能で低消費電力のARMマイクロコントローラーの大元を抑えちゃったわけです。ARM仕様に準拠したプロセッサーは多くの半導体メーカーによって製品化されて市場に流れ、多くの開発者が、身の回りのモノに組み込みます。これが凄い数なんですね。

こういうものを人の理に合わせていくのは我々です。経済合理性で突き進む人たちもたくさんいますが、人のための合理性を追求している人もたくさんいます。

どちらを重視して行くかは人それぞれですが、バランス感覚も必要だと思います。

頑なに従来のやり方を守る人も素晴らしいです。だってモノづくりの技は一朝一夕には身につきませんからね。優れた職人さんの技には感動します。日本にはそういう人がたくさんいます。

そうは思いながらも、社会は変化します。守るだけでは残らないかもしれません。変化に対応するためには新しいものを取り入れた方が良い場合もあるかもしれません。挑戦しないと続けられない場合もあるかもしれません。

人のための合理性を忘れずに日本人のモノづくりやれたらいいなと思います。農業だって林業だって漁業だって、人のための合理性を追求しながら挑戦を続ける余地はたくさんあると思います。そういう努力が知恵となってみんなのものになっていけば、未来は明るくなるのもしれません。

フルスタックのフレームワーク


仕事で企業内のWebアプリケーションを作る機会が多いのですが、最近は運用環境をクラウドにする、Web APIを使って他のアプリケーションと連携するなんていう場合が増えました。

最近やっているのは、Node.jsというJavaScriptのフレームワークのようなものの上に作られたExpressというWebアプリケーションのフレームワークとMongoDBという非SQL型のデータベースを使ったアプリケーションです。REST APIで外部のシステムと連携して動くものです。ブラウザ側はjQueryを主体にいくつかのライブラリが混在する環境で開発します。

ORマッピングのフレームワークがなくても、オブジェクト指向っぽくデータベースがアクセスできて、簡単なものを作るなら楽にやれるMongoDBとExpressで使えるライブラリがあって、JavaScriptもオブジェクト指向的な使い方をする。

JavaScriptの部分がRubyやPythonに変わるだけで、似たような構成で開発する場合もあります。

プロジェクトのフォルダーを見ると「えっ、こんなに?」というくらい多くのJavaScriptライブラリがインストールされます。それぞれが何をやっているのかがよくわからないし、ドキュメントは当然のようにバラバラな書き方なので読みにくい。最初は「これで大規模なアプリケーションが作れるんだろうか?」という疑問を持ちました。

パーシステント層からプレゼンテーション層まで、バラバラに作られた多くライブラリが使われるこういう開発環境。こういう環境で仕事をしてる人の頭脳はとても優れているのかもしれません。

個人的には以前ならWebObjects、今ならAribaWebのようなフルスタックのフレームワークの方が好きです。ビジネスロジックの開発に集中できるとか、再利用可能なコンポーネントを作れるとか、いろいろと理由があってのことです。テスト済みの様々な粒度のコンポーネントを無修正で使い回せるのって凄く嬉しい。

バラバラのライブラリの集まりを自由に組み合わせてアプリケーションを作るのは、自由度という点では有利かもしれませんが、そこそこの規模のアプリケーションを作るとなるの、なかなか大変です。フルスタックのフレームなら、規模に対する恐怖のようなものは少ない。ただし自由度が若干落ちる感じがします。

バラバラのライブラリを使いこなすのも、フルスタックのフレームワークで自由度の高い設計をするのも技術力なのかもしれませんが、使う頭が違うような気がしています。

今回はバラバラな方で頑張ってみましたが、次回はフルスタックの方で自由度を上げる努力をしてみようと思います。